Search in sources :

Example 61 with MessageBox

use of org.eclipse.swt.widgets.MessageBox in project tdi-studio-se by Talend.

the class AddListDialog method okPressed.

@Override
protected void okPressed() {
    boolean falg = false;
    IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
    paramList = selection.toList();
    if (selection.size() == 1) {
        ParameterInfo selPara = getSelectedParaInfo();
        ParameterInfo usePara = null;
        paraUtil = new ParameterInfoUtil();
        int currentindex = -1;
        // if select multi simple type items.
        if (paramList != null && !paramList.isEmpty()) {
        }
        // if selected have branch.
        if (selPara == null) {
            return;
        }
        if (!selPara.getParameterInfos().isEmpty()) {
            MessageBox box = new MessageBox(parentShell, SWT.ICON_ERROR | SWT.OK);
            //$NON-NLS-1$
            box.setText(Messages.getString("AddListDialog.Error"));
            //$NON-NLS-1$
            box.setMessage("Please Select " + selPara.getName() + " branch Item.");
            box.open();
            return;
        }
    } else if (selection.size() > 1) {
        paraUtil = new ParameterInfoUtil();
        List<ParameterInfo> list = selection.toList();
        for (ParameterInfo info : list) {
            if (!info.getParameterInfos().isEmpty()) {
                MessageBox box = new MessageBox(parentShell, SWT.ICON_ERROR | SWT.OK);
                //$NON-NLS-1$
                box.setText(Messages.getString("AddListDialog.Error"));
                //$NON-NLS-1$
                box.setMessage("Please Select " + info.getName() + " branch Item.");
                box.open();
                return;
            }
        }
    }
    // if select a array item.
    // if (selPara.getArraySize() == -1) {
    // AddArrayIndexDialog dlg = new AddArrayIndexDialog(parentShell, selPara);
    // int openCode = dlg.open();
    // if (openCode == AddArrayIndexDialog.OK) {
    // String indexValue = dlg.getIndexText();
    // currentindex = Integer.valueOf(indexValue);
    // } else {
    // return;
    // }
    // paraUtil.setCurrentindex(currentindex);
    // // super.okPressed();
    // }
    // if select item's parent is array.
    // if (arraySize == 0 && selPara.getParent() != null && !getAllArrayFromParents(selPara, null).isEmpty()) {
    // List<ParameterInfo> paraList = paraUtil.getAllParameterInfo(selPara);
    // goout: for (ParameterInfo para : paraList) {
    // if (para.getArraySize() != 0) {
    // falg = true;
    // usePara = para;
    // arraySize = para.getArraySize();
    // break goout;
    // }
    // }
    // }
    // if (falg) {
    // String title = "";
    // if (usePara != null && usePara.getName() != null) {
    // title = usePara.getName() + " index is :";
    // }
    // if (getAllArrayFromParents(selPara, null).size() == 1 && "input".equals(inOrOut) && false) {
    //                InputDialog dlg = new InputDialog(parentShell, title, title, "", new InputIndexValidator()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    // int openCode = dlg.open();
    // if (openCode == InputDialog.OK) {
    // String indexValue = dlg.getValue();
    // currentindex = Integer.valueOf(indexValue);
    // } else if (openCode == InputDialog.CANCEL) {
    // // super.cancelPressed();
    // return;
    // }
    // if (arraySize != -1 && currentindex > arraySize) {
    // currentindex = -1;
    // MessageBox box = new MessageBox(parentShell, SWT.ICON_ERROR | SWT.OK | SWT.CANCEL);
    //                    box.setText(Messages.getString("AddListDialog.Error")); //$NON-NLS-1$
    //                    box.setMessage(Messages.getString("AddListDialog.CHECKSIZE")); //$NON-NLS-1$
    // box.open();
    // return;
    // }
    // paraUtil.setCurrentindex(currentindex);
    // super.okPressed();
    // } else if (getAllArrayFromParents(selPara, null).size() >= 1) {
    //
    // AddArrayIndexForParentsDialog multiDialog = new AddArrayIndexForParentsDialog(parentShell, selPara);
    // int openCode = multiDialog.open();
    // if (openCode == AddArrayIndexForParentsDialog.OK) {
    // List indexList = null;
    // if (multiDialog.getArrayIndexList() != null) {
    // indexList = multiDialog.getArrayIndexList();
    // }
    // paraUtil.setCurrenIndexList(indexList);
    // super.okPressed();
    // } else {
    // return;
    // }
    // }
    //
    // }
    // paraUtil.setCurrentindex(currentindex);
    super.okPressed();
}
Also used : ParameterInfoUtil(org.talend.designer.webservice.ui.ParameterInfoUtil) ArrayList(java.util.ArrayList) List(java.util.List) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ParameterInfo(org.talend.designer.webservice.ws.wsdlinfo.ParameterInfo) MessageBox(org.eclipse.swt.widgets.MessageBox)

Example 62 with MessageBox

use of org.eclipse.swt.widgets.MessageBox in project tdi-studio-se by Talend.

the class ExternalController method createCommand.

/*
     * (non-Javadoc)
     * 
     * @see
     * org.talend.designer.core.ui.editor.properties2.editors.AbstractElementPropertySectionController#createCommand()
     */
private Command createCommand() {
    Node node = (Node) elem;
    IExternalNode externalNode = ExternalUtilities.getExternalNodeReadyToOpen(node);
    if (externalNode == null) {
        MessageBox mBox = new MessageBox(composite.getShell(), SWT.ICON_ERROR);
        //$NON-NLS-1$
        mBox.setText("Error");
        //$NON-NLS-1$
        mBox.setMessage("Component plugin not found: " + node.getComponent().getPluginExtension());
        mBox.open();
    } else {
        if (externalNode.open(composite.getShell()) == SWT.OK) {
            return new ExternalNodeChangeCommand(node, externalNode);
        } else {
            externalNode.setExternalData(node.getExternalData());
        }
    }
    return null;
}
Also used : ExternalNodeChangeCommand(org.talend.designer.core.ui.editor.cmd.ExternalNodeChangeCommand) Node(org.talend.designer.core.ui.editor.nodes.Node) IExternalNode(org.talend.core.model.process.IExternalNode) IExternalNode(org.talend.core.model.process.IExternalNode) MessageBox(org.eclipse.swt.widgets.MessageBox)

Example 63 with MessageBox

use of org.eclipse.swt.widgets.MessageBox in project tdi-studio-se by Talend.

the class FOXMain method createUI.

/**
     * create UI".
     * 
     * @param parent
     * @return
     */
public void createUI(Composite parent) {
    if (!connector.istWriteXMLField() && !connector.istMDMOutput()) {
        IConnection inConn = null;
        List<? extends IConnection> incomeConnections = connector.getIncomingConnections();
        if (connector.istFileOutputMSXML() && incomeConnections.size() < 1) {
            MessageBox message = new MessageBox(parent.getShell(), SWT.APPLICATION_MODAL | SWT.OK);
            //$NON-NLS-1$
            message.setText(Messages.getString("FOXMain.inputlinkError"));
            //$NON-NLS-1$
            message.setMessage(Messages.getString("FOXMain.noInputLink"));
            if (message.open() == SWT.OK) {
                ((Shell) parent).close();
                return;
            }
            for (IConnection conn : incomeConnections) {
                if ((conn.getLineStyle().equals(EConnectionType.FLOW_MAIN)) || (conn.getLineStyle().equals(EConnectionType.FLOW_REF))) {
                    inConn = conn;
                    break;
                }
            }
            if (inConn != null) {
                if (!inConn.getMetadataTable().sameMetadataAs(connector.getMetadataList().get(0))) {
                    MessageBox messageBox = new MessageBox(parent.getShell(), SWT.APPLICATION_MODAL | SWT.OK);
                    //$NON-NLS-1$
                    messageBox.setText(Messages.getString("FOXMain.0"));
                    //$NON-NLS-1$
                    messageBox.setMessage(Messages.getString("FOXMain.1"));
                    if (messageBox.open() == SWT.OK) {
                        ((Shell) parent).close();
                        return;
                    }
                }
            }
        }
    }
    // add by wzhang. for component tFileOutputMSXML
    if (connector.istFileOutputMSXML()) {
        generatorUI = new FOXMultiSchemaUI(parent, foxManager);
    } else {
        generatorUI = new FOXUI(parent, foxManager);
    }
    generatorUI.init();
}
Also used : Shell(org.eclipse.swt.widgets.Shell) FOXMultiSchemaUI(org.talend.designer.fileoutputxml.ui.FOXMultiSchemaUI) IConnection(org.talend.core.model.process.IConnection) FOXUI(org.talend.designer.fileoutputxml.ui.FOXUI) MessageBox(org.eclipse.swt.widgets.MessageBox)

Example 64 with MessageBox

use of org.eclipse.swt.widgets.MessageBox in project tdi-studio-se by Talend.

the class TNSEditorController method createCommand.

public Command createCommand(Button button) {
    IElementParameter elementParameter = this.curParameter.getElement().getElementParameter("TNS_FILE");
    Command command = null;
    if (elementParameter != null) {
        String filePath = new Path(PathExtractor.extractPath(elementParameter.getValue().toString())).toOSString();
        if (filePath != null && new File(filePath).exists()) {
            boolean flag = false;
            try {
                TnsParser tnsparser = new TnsParser(new File(filePath));
                if (tnsparser.getTree().getChildren().size() == 0) {
                    flag = true;
                }
            } catch (Exception e) {
                flag = true;
            }
            if (flag) {
                Display.getDefault().syncExec(new Runnable() {

                    @Override
                    public void run() {
                        MessageDialog.openInformation(composite.getShell(), "WARNING", "this file is invalid,please recheck!");
                    }
                });
            } else {
                TnsEditorDialog tnsDialog = new TnsEditorDialog(composite.getShell(), new File(filePath));
                if (tnsDialog.open() == Window.OK) {
                    TnsInfo tnsInfo = tnsDialog.getTnsInfo();
                    command = new TnsPropertyCommand(tnsInfo, this.elem);
                }
            }
        } else {
            MessageBox mBox = new MessageBox(composite.getShell(), SWT.ICON_ERROR);
            //$NON-NLS-1$
            mBox.setText("Error");
            //$NON-NLS-1$
            mBox.setMessage("TNS File Not Found");
            mBox.open();
        }
    }
    return command;
}
Also used : Path(org.eclipse.core.runtime.Path) TnsPropertyCommand(org.talend.designer.core.ui.editor.properties.controllers.uidialog.tns.TnsPropertyCommand) TnsEditorDialog(org.talend.designer.core.ui.editor.properties.controllers.uidialog.tns.TnsEditorDialog) TnsParser(org.talend.designer.core.ui.editor.properties.controllers.uidialog.tns.TnsParser) MessageBox(org.eclipse.swt.widgets.MessageBox) TnsInfo(org.talend.designer.core.ui.editor.properties.controllers.uidialog.tns.TnsInfo) TnsPropertyCommand(org.talend.designer.core.ui.editor.properties.controllers.uidialog.tns.TnsPropertyCommand) Command(org.eclipse.gef.commands.Command) IElementParameter(org.talend.core.model.process.IElementParameter) File(java.io.File)

Example 65 with MessageBox

use of org.eclipse.swt.widgets.MessageBox in project tdi-studio-se by Talend.

the class NodesMoveCommond method createNodeContainerList.

@SuppressWarnings("unchecked")
private void createNodeContainerList() {
    int firstIndex = 0;
    int index = 0;
    nodeContainerList = new ArrayList<NodeContainer>();
    connections = new ArrayList<IConnection>();
    createdNames = new ArrayList<String>();
    Map<String, String> oldNameTonewNameMap = new HashMap<String, String>();
    Map<String, String> oldMetaToNewMeta = new HashMap<String, String>();
    // see bug 0004882: Subjob title is not copied when copying/pasting subjobs from one job to another
    Map<INode, SubjobContainer> mapping = new HashMap<INode, SubjobContainer>();
    IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(IJobletProviderService.class);
    // create the nodes
    for (INode copiedNode : nodes) {
        // IGraphicalNode copiedNode = (IGraphicalNode) copiedNodePart.getModel();
        if (!containNodeInProcess(copiedNode)) {
            continue;
        }
        IComponent component = ComponentsFactoryProvider.getInstance().get(copiedNode.getComponent().getName(), copiedNode.getProcess().getComponentsType());
        if (component == null) {
            component = copiedNode.getComponent();
        }
        IGraphicalNode pastedNode = new Node(component, process);
        if (isJobletRefactor()) {
            // keep original for joblet refactor.
            process.removeUniqueNodeName(pastedNode.getUniqueName());
            pastedNode.setPropertyValue(EParameterName.UNIQUE_NAME.getName(), copiedNode.getUniqueName());
            process.addUniqueNodeName(copiedNode.getUniqueName());
        }
        if (service != null) {
            if (service.isJobletInOutComponent(pastedNode)) {
                process.removeUniqueNodeName(pastedNode.getUniqueName());
                pastedNode.setPropertyValue(EParameterName.UNIQUE_NAME.getName(), copiedNode.getUniqueName());
                process.addUniqueNodeName(copiedNode.getUniqueName());
            }
        }
        // for bug 0004882: Subjob title is not copied when copying/pasting subjobs from one job to another
        makeCopyNodeAndSubjobMapping(copiedNode, pastedNode, mapping);
        Point location = null;
        if (getCursorLocation() == null) {
            location = (Point) ((Node) copiedNode).getLocation();
        } else {
            location = getCursorLocation();
            index = nodes.indexOf(copiedNode);
        }
        if (process.isGridEnabled()) {
            // replace the component to set it on the grid if it's enabled
            int tempVar = location.x / TalendEditor.GRID_SIZE;
            location.x = tempVar * TalendEditor.GRID_SIZE;
            tempVar = location.y / TalendEditor.GRID_SIZE;
            location.y = tempVar * TalendEditor.GRID_SIZE;
        }
        pastedNode.setLocation(findLocationForNode(location, (Dimension) ((Node) copiedNode).getSize(), index, firstIndex, ((Node) copiedNode)));
        pastedNode.setSize(((Node) copiedNode).getSize());
        INodeConnector mainConnector;
        if (pastedNode.isELTComponent()) {
            mainConnector = pastedNode.getConnectorFromType(EConnectionType.TABLE);
        } else {
            mainConnector = pastedNode.getConnectorFromType(EConnectionType.FLOW_MAIN);
        }
        if (!mainConnector.isMultiSchema()) {
            if (copiedNode.getMetadataList().size() != 0) {
                pastedNode.getMetadataList().clear();
                for (IMetadataTable metaTable : copiedNode.getMetadataList()) {
                    IMetadataTable newMetaTable = metaTable.clone();
                    if (metaTable.getTableName().equals(copiedNode.getUniqueName())) {
                        newMetaTable.setTableName(pastedNode.getUniqueName());
                    }
                    for (IMetadataColumn column : metaTable.getListColumns()) {
                        if (column.isCustom()) {
                            IMetadataColumn newColumn = newMetaTable.getColumn(column.getLabel());
                            newColumn.setReadOnly(column.isReadOnly());
                            newColumn.setCustom(column.isCustom());
                        }
                    }
                    pastedNode.getMetadataList().add(newMetaTable);
                }
            }
        } else {
            List<IMetadataTable> copyOfMetadataList = new ArrayList<IMetadataTable>();
            for (IMetadataTable metaTable : copiedNode.getMetadataList()) {
                IMetadataTable newTable = metaTable.clone();
                if (copiedNode.isELTComponent()) {
                    newTable.setTableName(createNewConnectionName(metaTable.getTableName(), IProcess.DEFAULT_TABLE_CONNECTION_NAME));
                } else {
                    newTable.setTableName(createNewConnectionName(metaTable.getTableName(), null));
                }
                //$NON-NLS-1$
                oldMetaToNewMeta.put(pastedNode.getUniqueName() + ":" + metaTable.getTableName(), newTable.getTableName());
                for (IMetadataColumn column : metaTable.getListColumns()) {
                    if (column.isCustom()) {
                        IMetadataColumn newColumn = newTable.getColumn(column.getLabel());
                        newColumn.setReadOnly(column.isReadOnly());
                        newColumn.setCustom(column.isCustom());
                    }
                }
                newTable.sortCustomColumns();
                copyOfMetadataList.add(newTable);
            }
            pastedNode.setMetadataList(copyOfMetadataList);
            IExternalNode externalNode = pastedNode.getExternalNode();
            if (externalNode != null) {
                if (copiedNode.getExternalData() != null) {
                    try {
                        externalNode.setExternalData(copiedNode.getExternalData().clone());
                    } catch (CloneNotSupportedException e) {
                        ExceptionHandler.process(e);
                    }
                    ((Node) pastedNode).setExternalData(externalNode.getExternalData());
                }
                for (IMetadataTable metaTable : copiedNode.getMetadataList()) {
                    String oldName = metaTable.getTableName();
                    //$NON-NLS-1$
                    String newName = oldMetaToNewMeta.get(pastedNode.getUniqueName() + ":" + metaTable.getTableName());
                    externalNode.renameOutputConnection(oldName, newName);
                    CorePlugin.getDefault().getMapperService().renameJoinTable(process, externalNode.getExternalData(), createdNames);
                }
                // when copy a external node, should also copy screeshot
                if (copiedNode.getExternalNode() != null) {
                    ImageDescriptor screenshot = copiedNode.getExternalNode().getScreenshot();
                    if (screenshot != null) {
                        externalNode.setScreenshot(screenshot);
                    }
                }
            }
        }
        ((Node) pastedNode).getNodeLabel().setOffset(new Point(((Node) copiedNode).getNodeLabel().getOffset()));
        oldNameTonewNameMap.put(copiedNode.getUniqueName(), pastedNode.getUniqueName());
        if (copiedNode.getElementParametersWithChildrens() != null) {
            for (ElementParameter param : (List<ElementParameter>) copiedNode.getElementParametersWithChildrens()) {
                if (!EParameterName.UNIQUE_NAME.getName().equals(param.getName())) {
                    IElementParameter elementParameter = pastedNode.getElementParameter(param.getName());
                    if (param.getFieldType() == EParameterFieldType.TABLE) {
                        List<Map<String, Object>> tableValues = (List<Map<String, Object>>) param.getValue();
                        ArrayList newValues = new ArrayList();
                        for (Map<String, Object> map : tableValues) {
                            Map<String, Object> newMap = new HashMap<String, Object>();
                            newMap.putAll(map);
                            // rename schemas
                            if (EParameterName.SCHEMAS.name().equals(param.getName()) && !oldMetaToNewMeta.isEmpty()) {
                                String newSchemaName = oldMetaToNewMeta.get(pastedNode.getUniqueName() + ":" + map.get(EParameterName.SCHEMA.getName()));
                                if (newSchemaName != null) {
                                    newMap.put(EParameterName.SCHEMA.getName(), newSchemaName);
                                }
                            }
                            newValues.add(newMap);
                        }
                        elementParameter.setValue(newValues);
                    } else {
                        if (param.getParentParameter() != null) {
                            String parentName = param.getParentParameter().getName();
                            //$NON-NLS-1$
                            pastedNode.setPropertyValue(parentName + ":" + param.getName(), param.getValue());
                        } else {
                            pastedNode.setPropertyValue(param.getName(), param.getValue());
                            // See Bug 0005722: the pasted component don't keep the same read-only mode and didn;t
                            // hide
                            // the password.
                            elementParameter.setReadOnly(param.getOriginalityReadOnly());
                            elementParameter.setRepositoryValueUsed(param.isRepositoryValueUsed());
                        }
                    }
                }
            }
        }
        NodeContainer nc = ((Process) pastedNode.getProcess()).loadNodeContainer((Node) pastedNode, false);
        ;
        nodeContainerList.add(nc);
    }
    ((Process) process).setCopyPasteSubjobMappings(mapping);
    Map<String, String> oldToNewConnVarMap = new HashMap<String, String>();
    // add the connections
    for (INode copiedNode : nodes) {
        // INode copiedNode = (INode) copiedNodePart.getModel();
        for (IConnection connection : (List<IConnection>) copiedNode.getOutgoingConnections()) {
            INode pastedTargetNode = null, pastedSourceNode = null;
            String nodeSource = oldNameTonewNameMap.get(copiedNode.getUniqueName());
            for (NodeContainer nodeContainer : nodeContainerList) {
                INode node = nodeContainer.getNode();
                if (node.getUniqueName().equals(nodeSource)) {
                    pastedSourceNode = node;
                }
            }
            INode targetNode = connection.getTarget();
            // test if the target is in the nodes to paste to add the
            // connection
            // if the targeted node is not in the nodes to paste, then the
            // string will be null
            String nodeToConnect = oldNameTonewNameMap.get(targetNode.getUniqueName());
            if (nodeToConnect != null) {
                for (NodeContainer nodeContainer : nodeContainerList) {
                    INode node = nodeContainer.getNode();
                    if (node.getUniqueName().equals(nodeToConnect)) {
                        pastedTargetNode = node;
                    }
                }
            }
            if ((pastedSourceNode != null) && (pastedTargetNode != null)) {
                String newConnectionName;
                String metaTableName;
                if (connection.getLineStyle().hasConnectionCategory(IConnectionCategory.UNIQUE_NAME) && connection.getLineStyle().hasConnectionCategory(IConnectionCategory.FLOW)) {
                    String newNameBuiltIn = oldMetaToNewMeta.get(//$NON-NLS-1$
                    pastedSourceNode.getUniqueName() + ":" + connection.getMetaName());
                    if (newNameBuiltIn == null) {
                        IElementParameter formatParam = pastedSourceNode.getElementParameter(EParameterName.CONNECTION_FORMAT.getName());
                        String baseName = IProcess.DEFAULT_ROW_CONNECTION_NAME;
                        if (formatParam != null) {
                            String value = (String) formatParam.getValue();
                            if (value != null && !"".equals(value)) {
                                //$NON-NLS-1$
                                baseName = value;
                            }
                        }
                        if (process.checkValidConnectionName(connection.getName(), true)) {
                            // keep the name, bug 5086
                            baseName = null;
                        }
                        newConnectionName = createNewConnectionName(connection.getName(), baseName);
                    } else {
                        newConnectionName = newNameBuiltIn;
                    }
                } else {
                    newConnectionName = connection.getName();
                }
                //$NON-NLS-1$
                String meta = oldMetaToNewMeta.get(pastedSourceNode.getUniqueName() + ":" + connection.getMetaName());
                if (meta != null) {
                    if (pastedSourceNode.getConnectorFromType(connection.getLineStyle()).isMultiSchema() && !connection.getLineStyle().equals(EConnectionType.TABLE)) {
                        newConnectionName = meta;
                    }
                    metaTableName = meta;
                } else {
                    if (pastedSourceNode.getConnectorFromType(connection.getLineStyle()).isMultiSchema()) {
                        metaTableName = pastedSourceNode.getMetadataList().get(0).getTableName();
                    } else {
                        // connection.getMetaName();
                        metaTableName = pastedSourceNode.getUniqueName();
                    }
                }
                IConnection pastedConnection;
                if (!pastedTargetNode.isELTComponent()) {
                    pastedConnection = new Connection(pastedSourceNode, pastedTargetNode, connection.getLineStyle(), connection.getConnectorName(), metaTableName, newConnectionName, connection.isMonitorConnection());
                } else {
                    pastedConnection = new Connection(pastedSourceNode, pastedTargetNode, connection.getLineStyle(), connection.getConnectorName(), metaTableName, newConnectionName, metaTableName, connection.isMonitorConnection());
                }
                connections.add(pastedConnection);
                oldNameTonewNameMap.put(connection.getUniqueName(), pastedConnection.getUniqueName());
                // pastedConnection.setActivate(pastedSourceNode.isActivate());
                for (ElementParameter param : (List<ElementParameter>) connection.getElementParameters()) {
                    // pastedConnection.getElementParameter(param.getName())
                    // .setValue(param.getValue());
                    pastedConnection.setPropertyValue(param.getName(), param.getValue());
                }
                // reset unique name param
                IElementParameter uniqueNameParam = pastedConnection.getElementParameter(EParameterName.UNIQUE_NAME.getName());
                String newName = oldNameTonewNameMap.get(connection.getUniqueName());
                if (uniqueNameParam != null && newName != null) {
                    if (!newName.equals(uniqueNameParam.getValue())) {
                        pastedConnection.setPropertyValue(EParameterName.UNIQUE_NAME.getName(), newName);
                    }
                }
                // // keep the label (bug 3778)
                // if (pastedConnection != null) {
                // if (pastedConnection.getSourceNodeConnector().isBuiltIn()
                // && pastedConnection.getLineStyle().hasConnectionCategory(EConnectionType.FLOW)) {
                // pastedConnection.setPropertyValue(EParameterName.LABEL.getName(), connection.getName());
                // } else {
                // pastedConnection.setPropertyValue(EParameterName.LABEL.getName(), newConnectionName);
                // }
                // }
                ((Connection) pastedConnection).getConnectionLabel().setOffset(new Point(((Connection) connection).getConnectionLabel().getOffset()));
                INodeConnector connector = pastedConnection.getSourceNodeConnector();
                connector.setCurLinkNbOutput(connector.getCurLinkNbOutput() + 1);
                connector = pastedConnection.getTargetNodeConnector();
                connector.setCurLinkNbInput(connector.getCurLinkNbInput() + 1);
                IExternalNode externalNode = pastedTargetNode.getExternalNode();
                if (externalNode != null) {
                    externalNode.renameInputConnection(connection.getName(), newConnectionName);
                }
                // (feature 2962)
                if (pastedConnection.getMetadataTable() == null) {
                    continue;
                }
                for (IMetadataColumn column : pastedConnection.getMetadataTable().getListColumns()) {
                    //$NON-NLS-1$
                    String oldConnVar = connection.getName() + "." + column.getLabel();
                    //$NON-NLS-1$
                    String newConnVar = newConnectionName + "." + column.getLabel();
                    // String newConnVar = newConnectionName;
                    if (!oldToNewConnVarMap.containsKey(oldConnVar)) {
                        oldToNewConnVarMap.put(oldConnVar, newConnVar);
                    }
                }
            }
        }
    }
    // rename the connection data for node parameters. (feature 2962)
    for (NodeContainer nodeContainer : nodeContainerList) {
        Node node = nodeContainer.getNode();
        for (String oldConnVar : oldToNewConnVarMap.keySet()) {
            String newConnVar = oldToNewConnVarMap.get(oldConnVar);
            if (newConnVar != null) {
                node.renameData(oldConnVar, newConnVar);
            }
        }
    }
    // check if the new components use the old components name.
    Map<String, Set<String>> usedDataMap = new HashMap<String, Set<String>>();
    for (NodeContainer nodeContainer : nodeContainerList) {
        Node currentNode = nodeContainer.getNode();
        String uniqueName = currentNode.getUniqueName();
        for (String oldName : oldNameTonewNameMap.keySet()) {
            if (!oldName.equals(oldNameTonewNameMap.get(oldName)) && currentNode.useData(oldName)) {
                Set<String> oldNameSet = usedDataMap.get(uniqueName);
                if (oldNameSet == null) {
                    oldNameSet = new HashSet<String>();
                    usedDataMap.put(uniqueName, oldNameSet);
                }
                oldNameSet.add(oldName);
            }
        }
    }
    // check if the new connections use the old components name.
    Map<String, Set<String>> usedDataMapForConnections = new HashMap<String, Set<String>>();
    for (IConnection connection : connections) {
        String uniqueName = connection.getUniqueName();
        for (String oldName : oldNameTonewNameMap.keySet()) {
            if (oldName != null && !oldName.equals(oldNameTonewNameMap.get(oldName)) && UpgradeElementHelper.isUseData(connection, oldName)) {
                Set<String> oldNameSet = usedDataMapForConnections.get(uniqueName);
                if (oldNameSet == null) {
                    oldNameSet = new HashSet<String>();
                    usedDataMapForConnections.put(uniqueName, oldNameSet);
                }
                oldNameSet.add(oldName);
            }
        }
    }
    if (!usedDataMap.isEmpty() || !usedDataMapForConnections.isEmpty()) {
        MessageBox msgBox = new MessageBox(PlatformUI.getWorkbench().getDisplay().getActiveShell(), SWT.YES | SWT.NO | SWT.ICON_WARNING);
        //$NON-NLS-1$
        msgBox.setMessage(Messages.getString("NodesPasteCommand.renameMessages"));
        if (msgBox.open() == SWT.YES) {
            for (NodeContainer nodeContainer : nodeContainerList) {
                Node currentNode = nodeContainer.getNode();
                Set<String> oldNameSet = usedDataMap.get(currentNode.getUniqueName());
                if (oldNameSet != null && !oldNameSet.isEmpty()) {
                    for (String oldName : oldNameSet) {
                        currentNode.renameData(oldName, oldNameTonewNameMap.get(oldName));
                    }
                }
            }
            // Rename connections
            for (IConnection connection : connections) {
                Set<String> oldNameSet = usedDataMapForConnections.get(connection.getUniqueName());
                if (oldNameSet != null && !oldNameSet.isEmpty()) {
                    for (String oldName : oldNameSet) {
                        UpgradeElementHelper.renameData(connection, oldName, oldNameTonewNameMap.get(oldName));
                    }
                }
            }
        }
    }
}
Also used : INode(org.talend.core.model.process.INode) Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) IComponent(org.talend.core.model.components.IComponent) Node(org.talend.designer.core.ui.editor.nodes.Node) IExternalNode(org.talend.core.model.process.IExternalNode) INode(org.talend.core.model.process.INode) IGraphicalNode(org.talend.core.ui.process.IGraphicalNode) ArrayList(java.util.ArrayList) NodeContainer(org.talend.designer.core.ui.editor.nodecontainer.NodeContainer) IConnection(org.talend.core.model.process.IConnection) IProcess(org.talend.core.model.process.IProcess) Process(org.talend.designer.core.ui.editor.process.Process) INodeConnector(org.talend.core.model.process.INodeConnector) IElementParameter(org.talend.core.model.process.IElementParameter) ElementParameter(org.talend.designer.core.model.components.ElementParameter) SubjobContainer(org.talend.designer.core.ui.editor.subjobcontainer.SubjobContainer) IElementParameter(org.talend.core.model.process.IElementParameter) ImageDescriptor(org.eclipse.jface.resource.ImageDescriptor) List(java.util.List) ArrayList(java.util.ArrayList) IExternalNode(org.talend.core.model.process.IExternalNode) IGraphicalNode(org.talend.core.ui.process.IGraphicalNode) Connection(org.talend.designer.core.ui.editor.connections.Connection) IConnection(org.talend.core.model.process.IConnection) Point(org.eclipse.draw2d.geometry.Point) Dimension(org.eclipse.draw2d.geometry.Dimension) IMetadataColumn(org.talend.core.model.metadata.IMetadataColumn) Point(org.eclipse.draw2d.geometry.Point) MessageBox(org.eclipse.swt.widgets.MessageBox) IJobletProviderService(org.talend.core.ui.IJobletProviderService) IMetadataTable(org.talend.core.model.metadata.IMetadataTable) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

MessageBox (org.eclipse.swt.widgets.MessageBox)99 Shell (org.eclipse.swt.widgets.Shell)17 ArrayList (java.util.ArrayList)13 File (java.io.File)11 IOException (java.io.IOException)10 SelectionEvent (org.eclipse.swt.events.SelectionEvent)10 GridData (org.eclipse.swt.layout.GridData)9 GridLayout (org.eclipse.swt.layout.GridLayout)9 WorkflowManager (org.knime.core.node.workflow.WorkflowManager)9 Point (org.eclipse.swt.graphics.Point)8 Button (org.eclipse.swt.widgets.Button)8 Display (org.eclipse.swt.widgets.Display)8 Composite (org.eclipse.swt.widgets.Composite)7 FileDialog (org.eclipse.swt.widgets.FileDialog)7 Label (org.eclipse.swt.widgets.Label)7 List (java.util.List)6 SWTError (org.eclipse.swt.SWTError)6 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)6 SelectionListener (org.eclipse.swt.events.SelectionListener)6 SWT (org.eclipse.swt.SWT)5