Package org.jbpm.ui.orgfunctions

Source Code of org.jbpm.ui.orgfunctions.SwimlaneADElement

package org.jbpm.ui.orgfunctions;

import java.util.ArrayList;
import java.util.Map;

import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.jbpm.ui.DesignerLogger;
import org.jbpm.ui.dialog.ChooseItemDialog;
import org.jbpm.ui.resource.Messages;
import org.jbpm.ui.sync.SyncUIHelper;

public class SwimlaneADElement extends SwimlaneElement {
  private Hyperlink chooseExecutorLink;
  private Text selectionText;
 
  public SwimlaneADElement() {
    setOrgFunctionDefinitionName("ExecutorByNameFunction");
  }

    @Override
    public void createGUI(Composite parent) {
        Composite clientArea = createSection(parent, 1);
       
        SyncUIHelper.createHeader(clientArea, LDAPExecutorsImporter.getInstance());

        Composite content = new Composite(clientArea, SWT.NONE);
        content.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        content.setLayout(new GridLayout(2, false));
        selectionText = new Text(content, SWT.READ_ONLY | SWT.BORDER);
        selectionText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        chooseExecutorLink = createLink(content, Messages.getString("button.choose"));
        chooseExecutorLink.addHyperlinkListener(new HyperlinkAdapter() {

            @Override
            public void linkActivated(HyperlinkEvent e) {
                try {
                    ChooseItemDialog dialog = new ChooseItemDialog(Messages.getString("ADDialog.Text"), null, true);
                    Map<String, Boolean> executors = (Map<String, Boolean>) LDAPExecutorsImporter.getInstance().loadCachedData();
                    dialog.setItems(new ArrayList<String>(executors.keySet()));
                    dialog.setLabelProvider(new LabelProvider());
                    if (dialog.open() == IDialogConstants.OK_ID) {
                        selectionText.setText((String) dialog.getSelectedItem());
                        OrgFunctionDefinition definition = createNew();
                        definition.getParameters().get(0).setValue(selectionText.getText());
                        fireCompletedEvent(definition);
                    }
                } catch (Exception ex) {
                    DesignerLogger.logError("Unable load cached executors", ex);
                }
            }
        });
       
    }

    @Override
  public void open(String path, String swimlaneName, OrgFunctionDefinition definition) {
    super.open(path, swimlaneName, definition);
    String value = "";
    if (currentDefinition != null && currentDefinition.getParameters().size() > 0) {
      value = currentDefinition.getParameters().get(0).getValue();
    }
    selectionText.setText(value);
  }

}
TOP

Related Classes of org.jbpm.ui.orgfunctions.SwimlaneADElement

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.