Package org.aperteworkflow.editor.processeditor

Source Code of org.aperteworkflow.editor.processeditor.ProcessEditorPanel

package org.aperteworkflow.editor.processeditor;

import com.vaadin.ui.*;
import org.aperteworkflow.editor.domain.ProcessConfig;
import org.aperteworkflow.editor.processeditor.tab.definition.ProcessDefinitionTab;
import org.aperteworkflow.editor.processeditor.tab.dict.DictionaryTab;
import org.aperteworkflow.editor.processeditor.tab.message.MessageTab;
import org.aperteworkflow.editor.processeditor.tab.other.OtherTab;
import org.aperteworkflow.editor.processeditor.tab.permission.ProcessPermissionTab;
import org.aperteworkflow.editor.processeditor.tab.queue.QueueTab;
import org.aperteworkflow.editor.vaadin.DataHandler;
import org.aperteworkflow.util.vaadin.VaadinUtility;
import pl.net.bluesoft.rnd.util.i18n.I18NSource;

import java.util.Collection;
import java.util.Iterator;

/**
* Main panel for process editor application
*/
public class ProcessEditorPanel extends GridLayout implements DataHandler {

    private TabSheet tabSheet;

    private OtherTab otherTab;
    private QueueTab queueTab;
    private ProcessPermissionTab permissionTab;
    private MessageTab messageTab;
    private DictionaryTab dictionaryTab;
    private ProcessDefinitionTab processDefinitionTab;

    private Label titleLabel;
    private Button saveButton;

    public ProcessEditorPanel() {
        super(2, 2);
        initComponents();
        initLayout();
    }

    private void initLayout() {
        setSpacing(true);
        setWidth("100%");

        addComponent(titleLabel, 0, 0);
        addComponent(saveButton, 1, 0);
        addComponent(tabSheet, 0, 1, 1, 1);

        setComponentAlignment(titleLabel, Alignment.MIDDLE_LEFT);
        setComponentAlignment(saveButton, Alignment.MIDDLE_RIGHT);
       
        setColumnExpandRatio(0, 1);
        setColumnExpandRatio(1, 0);
    }

    private void initComponents() {
        I18NSource messages = I18NSource.ThreadUtil.getThreadI18nSource();

        tabSheet = new TabSheet();
        tabSheet.setSizeFull();
        tabSheet.addTab(permissionTab = new ProcessPermissionTab(), messages.getMessage("process.editor.process.permissions"));
        tabSheet.addTab(processDefinitionTab = new ProcessDefinitionTab(), messages.getMessage("process.editor.process.definition"));
        tabSheet.addTab(queueTab = new QueueTab(), messages.getMessage("process.editor.queues"));
        tabSheet.addTab(messageTab = new MessageTab(), messages.getMessage("process.editor.messages"));
        tabSheet.addTab(dictionaryTab = new DictionaryTab(), messages.getMessage("process.editor.dictionary"));
        tabSheet.addTab(otherTab = new OtherTab(), messages.getMessage("process.editor.other"));

        saveButton = VaadinUtility.button(messages.getMessage("process.editor.save"), new Runnable() {
            @Override
            public void run() {
                ((ProcessEditorApplication) ProcessEditorApplication.getCurrent()).saveAndCallback();
            }
        });
       
        titleLabel = new Label(messages.getMessage("process.editor.title"));
        titleLabel.addStyleName("h1");
    }

    @Override
    public void loadData() {
        Iterator<Component> it = tabSheet.getComponentIterator();
        while (it.hasNext()) {
            Component c = it.next();
            if (c instanceof DataHandler) {
                ((DataHandler) c).loadData();
            }
        }
    }

    @Override
    public void saveData() {
        Iterator<Component> it = tabSheet.getComponentIterator();
        while (it.hasNext()) {
            Component c = it.next();
            if (c instanceof DataHandler) {
                ((DataHandler) c).saveData();
            }
        }
    }

    @Override
    public Collection<String> validateData() {
        return null;
    }

    public void setProcessConfig(ProcessConfig processConfig) {
        permissionTab.setProcessConfig(processConfig);
        queueTab.setProcessConfig(processConfig);
        messageTab.setProcessConfig(processConfig);
        dictionaryTab.setProcessConfig(processConfig);
        otherTab.setProcessConfig(processConfig);
        processDefinitionTab.setProcessConfig(processConfig);
    }
}
TOP

Related Classes of org.aperteworkflow.editor.processeditor.ProcessEditorPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.