use of org.csstudio.swt.widgets.figures.TabFigure in project yamcs-studio by yamcs.
the class TabEditPart method doCreateFigure.
@Override
protected IFigure doCreateFigure() {
TabFigure tabFigure = new TabFigure();
tabFigure.setHorizontal(getWidgetModel().isHorizontal());
tabFigure.setMinimumTabHeight(getWidgetModel().getMinimumTabHeight());
tabFigure.addTabListener(new ITabListener() {
@Override
public void activeTabIndexChanged(int oldIndex, int newIndex) {
for (AbstractWidgetModel child : getWidgetModel().getChildren()) child.setPropertyValue(AbstractWidgetModel.PROP_VISIBLE, false);
getWidgetModel().getChildren().get(newIndex).setPropertyValue(AbstractWidgetModel.PROP_VISIBLE, true);
// if (getExecutionMode() == ExecutionMode.RUN_MODE)
// setPropertyValue(TabModel.PROP_ACTIVE_TAB, newIndex);
}
});
return tabFigure;
}
use of org.csstudio.swt.widgets.figures.TabFigure 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()));
}
use of org.csstudio.swt.widgets.figures.TabFigure in project yamcs-studio by yamcs.
the class TabEditPart method registerPropertyChangeHandlers.
@Override
protected void registerPropertyChangeHandlers() {
// init tabs
var i = 0;
for (var child : getWidgetModel().getChildren()) {
if (child instanceof GroupingContainerModel) {
child.setPropertyValue(PROP_VISIBLE, true);
child.setPropertyValue(PROP_VISIBLE, false);
getTabFigure().addTab((String) getWidgetModel().getPropertyValue(TabModel.makeTabPropID(TabProperty.TITLE.propIDPre, i)));
tabItemList.add(i, new TabItem(getWidgetModel(), i, (GroupingContainerModel) child));
for (var tabProperty : TabProperty.values()) {
setTabProperty(i, tabProperty, getWidgetModel().getPropertyValue(TabModel.makeTabPropID(tabProperty.propIDPre, i)));
}
i++;
}
}
IWidgetPropertyChangeHandler relocContainerHandler = (oldValue, newValue, figure) -> {
updateTabAreaSize();
refreshVisuals();
return false;
};
setPropertyChangeHandler(PROP_WIDTH, relocContainerHandler);
setPropertyChangeHandler(PROP_HEIGHT, relocContainerHandler);
setPropertyChangeHandler(PROP_HORIZONTAL_TABS, (oldValue, newValue, figure) -> {
((TabFigure) figure).setHorizontal((Boolean) newValue);
updateTabAreaSize();
refreshVisuals();
return false;
});
setPropertyChangeHandler(PROP_ACTIVE_TAB, (oldValue, newValue, figure) -> {
((TabFigure) figure).setActiveTabIndex((Integer) newValue);
updateTabAreaSize();
refreshVisuals();
return false;
});
setPropertyChangeHandler(PROP_MINIMUM_TAB_HEIGHT, (oldValue, newValue, figure) -> {
((TabFigure) figure).setMinimumTabHeight((Integer) newValue);
return false;
});
setPropertyChangeHandler(PROP_BORDER_WIDTH, (oldValue, newValue, figure) -> {
updateTabAreaSize();
return false;
});
registerTabPropertyChangeHandlers();
registerTabsAmountChangeHandler();
}
Aggregations