package org.aperteworkflow.editor.processeditor.tab.other; import static org.aperteworkflow.util.vaadin.VaadinUtility.styled; import static pl.net.bluesoft.util.lang.cquery.CQuery.from; import com.vaadin.ui.Label; import com.vaadin.ui.Select; import com.vaadin.ui.TextField; import com.vaadin.ui.VerticalLayout; import org.aperteworkflow.editor.domain.ProcessConfig; import org.aperteworkflow.editor.processeditor.ProcessEditorApplication; import org.aperteworkflow.editor.vaadin.DataHandler; import pl.net.bluesoft.rnd.processtool.plugins.ProcessToolRegistry; import pl.net.bluesoft.rnd.util.i18n.I18NSource; import java.util.Collection; public class OtherTab extends VerticalLayout implements DataHandler { private ProcessConfig processConfig; private ProcessLogoEditor processLogoEditor; private Label taskItemClassLabel; private Select taskItemClassField; public OtherTab() { processLogoEditor = new ProcessLogoEditor(); initComponents(); setMargin(true); addComponent(processLogoEditor); addComponent(taskItemClassLabel); addComponent(taskItemClassField); } private void initComponents(){ I18NSource messages = I18NSource.ThreadUtil.getThreadI18nSource(); taskItemClassLabel = styled(new Label(messages.getMessage("process.definition.taskItemClass")), "h2"); taskItemClassField = new Select(); taskItemClassField.setNewItemsAllowed(true); taskItemClassField.setWidth("100%"); } public void setProcessConfig(ProcessConfig processConfig) { processLogoEditor.setProcessConfig(processConfig); this.processConfig=processConfig; } @Override public void loadData() { processLogoEditor.loadData(); ProcessToolRegistry registry = ((ProcessEditorApplication)ProcessEditorApplication.getCurrent()).getRegistry(); for (String taskItemClass : from(registry.getAvailableTaskItemProviders().keySet()).ordered()) { taskItemClassField.addItem(taskItemClass); } taskItemClassField.setValue(processConfig.getTaskItemClass()); } @Override public void saveData() { processLogoEditor.saveData(); processConfig.setTaskItemClass((String)taskItemClassField.getValue()); } @Override public Collection<String> validateData() { return processLogoEditor.validateData(); } }