Search in sources :

Example 1 with PROP_TAB_COUNT

use of org.csstudio.opibuilder.widgets.model.TabModel.PROP_TAB_COUNT in project yamcs-studio by yamcs.

the class TabEditPart method registerTabsAmountChangeHandler.

private void registerTabsAmountChangeHandler() {
    IWidgetPropertyChangeHandler handler = (oldValue, newValue, refreshableFigure) -> {
        var model = getWidgetModel();
        var figure = (TabFigure) refreshableFigure;
        var currentTabAmount = figure.getTabAmount();
        // add tabs
        if ((Integer) newValue > currentTabAmount) {
            for (var i1 = 0; i1 < (Integer) newValue - currentTabAmount; i1++) {
                for (var tabProperty1 : TabProperty.values()) {
                    var propID1 = TabModel.makeTabPropID(tabProperty1.propIDPre, i1 + currentTabAmount);
                    model.setPropertyVisible(propID1, true);
                }
                addTab();
            }
        } else if ((Integer) newValue < currentTabAmount) {
            // remove tabs
            for (var i2 = currentTabAmount - 1; i2 >= (Integer) newValue; i2--) {
                for (var tabProperty2 : TabProperty.values()) {
                    var propID2 = TabModel.makeTabPropID(tabProperty2.propIDPre, i2);
                    model.setPropertyVisible(propID2, false);
                }
                removeTab();
            }
            setActiveTabIndex(0);
        }
        return true;
    };
    getWidgetModel().getProperty(PROP_TAB_COUNT).addPropertyChangeListener(evt -> handler.handleChange(evt.getOldValue(), evt.getNewValue(), getFigure()));
}
Also used : PROP_BORDER_WIDTH(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_WIDTH) Dimension(org.eclipse.draw2d.geometry.Dimension) PROP_HEIGHT(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_HEIGHT) CustomMediaFactory(org.csstudio.ui.util.CustomMediaFactory) IFigure(org.eclipse.draw2d.IFigure) Level(java.util.logging.Level) TabFigure(org.csstudio.swt.widgets.figures.TabFigure) PROP_HORIZONTAL_TABS(org.csstudio.opibuilder.widgets.model.TabModel.PROP_HORIZONTAL_TABS) UIBundlingThread(org.csstudio.ui.util.thread.UIBundlingThread) PROP_ACTIVE_TAB(org.csstudio.opibuilder.widgets.model.TabModel.PROP_ACTIVE_TAB) OPIColor(org.csstudio.opibuilder.util.OPIColor) GroupingContainerModel(org.csstudio.opibuilder.widgets.model.GroupingContainerModel) LinkedList(java.util.LinkedList) PROP_VISIBLE(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_VISIBLE) OPIBuilderPlugin(org.csstudio.opibuilder.OPIBuilderPlugin) TabProperty(org.csstudio.opibuilder.widgets.model.TabModel.TabProperty) PROP_TAB_COUNT(org.csstudio.opibuilder.widgets.model.TabModel.PROP_TAB_COUNT) AbstractBaseEditPart(org.csstudio.opibuilder.editparts.AbstractBaseEditPart) PROP_TRANSPARENT(org.csstudio.opibuilder.widgets.model.GroupingContainerModel.PROP_TRANSPARENT) PROP_MINIMUM_TAB_HEIGHT(org.csstudio.opibuilder.widgets.model.TabModel.PROP_MINIMUM_TAB_HEIGHT) TabModel(org.csstudio.opibuilder.widgets.model.TabModel) AbstractContainerEditpart(org.csstudio.opibuilder.editparts.AbstractContainerEditpart) Path(org.eclipse.core.runtime.Path) OPIFont(org.csstudio.opibuilder.util.OPIFont) ITabItemHandler(org.csstudio.opibuilder.widgets.model.TabModel.ITabItemHandler) Label(org.eclipse.draw2d.Label) EditPolicy(org.eclipse.gef.EditPolicy) BorderStyle(org.csstudio.opibuilder.visualparts.BorderStyle) EditPart(org.eclipse.gef.EditPart) PROP_WIDTH(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_WIDTH) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler)

Aggregations

LinkedList (java.util.LinkedList)1 Level (java.util.logging.Level)1 OPIBuilderPlugin (org.csstudio.opibuilder.OPIBuilderPlugin)1 AbstractBaseEditPart (org.csstudio.opibuilder.editparts.AbstractBaseEditPart)1 AbstractContainerEditpart (org.csstudio.opibuilder.editparts.AbstractContainerEditpart)1 PROP_BORDER_WIDTH (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_WIDTH)1 PROP_HEIGHT (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_HEIGHT)1 PROP_VISIBLE (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_VISIBLE)1 PROP_WIDTH (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_WIDTH)1 IWidgetPropertyChangeHandler (org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler)1 OPIColor (org.csstudio.opibuilder.util.OPIColor)1 OPIFont (org.csstudio.opibuilder.util.OPIFont)1 BorderStyle (org.csstudio.opibuilder.visualparts.BorderStyle)1 GroupingContainerModel (org.csstudio.opibuilder.widgets.model.GroupingContainerModel)1 PROP_TRANSPARENT (org.csstudio.opibuilder.widgets.model.GroupingContainerModel.PROP_TRANSPARENT)1 TabModel (org.csstudio.opibuilder.widgets.model.TabModel)1 ITabItemHandler (org.csstudio.opibuilder.widgets.model.TabModel.ITabItemHandler)1 PROP_ACTIVE_TAB (org.csstudio.opibuilder.widgets.model.TabModel.PROP_ACTIVE_TAB)1 PROP_HORIZONTAL_TABS (org.csstudio.opibuilder.widgets.model.TabModel.PROP_HORIZONTAL_TABS)1 PROP_MINIMUM_TAB_HEIGHT (org.csstudio.opibuilder.widgets.model.TabModel.PROP_MINIMUM_TAB_HEIGHT)1