Search in sources :

Example 1 with UseDynamicJobSelectionDialog

use of org.talend.repository.ui.dialog.UseDynamicJobSelectionDialog in project tdi-studio-se by Talend.

the class ProcessController method createButtonCommand.

/**
     * DOC nrousseau Comment method "createButtonCommand".
     * 
     * @param source
     * @return
     */
protected Command createButtonCommand(Button button) {
    String procssId = null;
    if (elem != null && elem instanceof Node) {
        Node runJobNode = (Node) elem;
        procssId = runJobNode.getProcess().getId();
    }
    // feature 19312
    boolean isSelectUseDynamic = false;
    IElementParameter useDynamicJobParameter = elem.getElementParameter(EParameterName.USE_DYNAMIC_JOB.getName());
    if (useDynamicJobParameter != null && useDynamicJobParameter instanceof IElementParameter) {
        Object useDynamicJobValue = useDynamicJobParameter.getValue();
        if (useDynamicJobValue != null && useDynamicJobValue instanceof Boolean) {
            isSelectUseDynamic = (Boolean) useDynamicJobValue;
        }
    }
    if (isSelectUseDynamic) {
        UseDynamicJobSelectionDialog usedialog = new UseDynamicJobSelectionDialog((button).getShell(), ERepositoryObjectType.PROCESS, procssId, isSelectUseDynamic);
        // open the tree dialog and selected job if Checked
        selectJobNodeIfChecked(button, usedialog);
        if (usedialog.open() == UseDynamicJobSelectionDialog.OK) {
            List<RepositoryNode> repositoryNodeList = usedialog.getRepositoryNodes();
            StringBuffer ids = new StringBuffer();
            String paramName = (String) button.getData(PARAMETER_NAME);
            if (repositoryNodeList != null && repositoryNodeList.size() > 0) {
                for (int i = 0; i < repositoryNodeList.size(); i++) {
                    RepositoryNode node = repositoryNodeList.get(i);
                    IRepositoryViewObject repositoryViewObject = node.getObject();
                    final Item item = repositoryViewObject.getProperty().getItem();
                    String id = item.getProperty().getId();
                    if (i > 0) {
                        ids.append(ProcessController.COMMA);
                    }
                    ids.append(id);
                }
            }
            if (repositoryNodeList.size() > 1) {
                MessageDialog.openInformation(button.getShell(), "Message", Messages.getString("ProcessController.UseDynamicJobSelectionDialog.message", repositoryNodeList.get(0).getLabel()));
            }
            return new PropertyChangeCommand(elem, paramName, ids.toString());
        }
        return null;
    } else {
        List<ERepositoryObjectType> repObjectTypes = new ArrayList<ERepositoryObjectType>();
        repObjectTypes.add(ERepositoryObjectType.PROCESS);
        repObjectTypes.add(ERepositoryObjectType.PROCESS_STORM);
        repObjectTypes.add(ERepositoryObjectType.PROCESS_MR);
        RepositoryReviewDialog dialog = new RepositoryReviewDialog((button).getShell(), repObjectTypes, procssId);
        // see feature 0003664: tRunJob: When opening the tree dialog to select the job target, it could be useful
        // to
        // open it on previous selected job if exists
        selectJobNodeIfExists(button, dialog);
        if (dialog.open() == RepositoryReviewDialog.OK) {
            IRepositoryViewObject repositoryObject = dialog.getResult().getObject();
            final Item item = repositoryObject.getProperty().getItem();
            String id = item.getProperty().getId();
            String paramName = (String) button.getData(PARAMETER_NAME);
            return new PropertyChangeCommand(elem, paramName, id);
        }
        return null;
    }
}
Also used : Node(org.talend.designer.core.ui.editor.nodes.Node) RepositoryNode(org.talend.repository.model.RepositoryNode) ArrayList(java.util.ArrayList) UseDynamicJobSelectionDialog(org.talend.repository.ui.dialog.UseDynamicJobSelectionDialog) RepositoryNode(org.talend.repository.model.RepositoryNode) RepositoryReviewDialog(org.talend.repository.ui.dialog.RepositoryReviewDialog) Point(org.eclipse.swt.graphics.Point) Item(org.talend.core.model.properties.Item) ProcessItem(org.talend.core.model.properties.ProcessItem) PropertyChangeCommand(org.talend.designer.core.ui.editor.cmd.PropertyChangeCommand) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) IElementParameter(org.talend.core.model.process.IElementParameter) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType)

Aggregations

ArrayList (java.util.ArrayList)1 Point (org.eclipse.swt.graphics.Point)1 IElementParameter (org.talend.core.model.process.IElementParameter)1 Item (org.talend.core.model.properties.Item)1 ProcessItem (org.talend.core.model.properties.ProcessItem)1 ERepositoryObjectType (org.talend.core.model.repository.ERepositoryObjectType)1 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)1 PropertyChangeCommand (org.talend.designer.core.ui.editor.cmd.PropertyChangeCommand)1 Node (org.talend.designer.core.ui.editor.nodes.Node)1 RepositoryNode (org.talend.repository.model.RepositoryNode)1 RepositoryReviewDialog (org.talend.repository.ui.dialog.RepositoryReviewDialog)1 UseDynamicJobSelectionDialog (org.talend.repository.ui.dialog.UseDynamicJobSelectionDialog)1