package org.jboss.tools.bpmn2.reddeer; import org.eclipse.gef.EditPart; import org.jboss.tools.bpmn2.reddeer.editor.graphiti.PropertiesGraphitiEditPart; import org.jboss.tools.bpmn2.reddeer.properties.setup.SetUpAble; public abstract class PropertiesHandler { private WaitingPropertiesView propertiesView; private PropertiesGraphitiEditPart graphitiProperties; private boolean useGraphitiProperties; public PropertiesHandler(EditPart editPart, boolean useGraphitiProperties) { propertiesView = new WaitingPropertiesView(); graphitiProperties = new PropertiesGraphitiEditPart(editPart); this.useGraphitiProperties = useGraphitiProperties; propertiesView.open(); } public void setUp(SetUpAble... properties) { if (useGraphitiProperties) { graphitiProperties.setUpTabs(properties); } else { for (SetUpAble property : properties) { focusElement(); propertiesView.selectTab(property.getTabLabel()); property.setUpCTab(); } } } public void setUpNormal(SetUpAble setUpAble) { propertiesView.selectTab(setUpAble.getTabLabel()); setUpAble.setUpCTab(); } public void setUpGraphiti(SetUpAble setUpAble) { graphitiProperties.setUpTabs(setUpAble); } public void activatePropertiesView() { propertiesView.activate(); } public void activateGraphitiPropertiesView() { graphitiProperties.getContextButton("Show Properties").click(); } public void selectTabInPropertiesView(String tabLabel) { focusElement(); propertiesView.selectTab(tabLabel); } public String getTitleOfPropertiesView() { return propertiesView.getTitle(); } public abstract void focusElement(); }