Search in sources :

Example 1 with INode

use of org.talend.core.model.process.INode in project tdi-studio-se by Talend.

the class PostgresGenerationManager method getHandledTableName.

protected String getHandledTableName(DbMapComponent component, String name, String aliasName, boolean generateSubSql) {
    List<IConnection> inputConnections = (List<IConnection>) component.getIncomingConnections();
    if (inputConnections == null) {
        return name;
    }
    for (IConnection iconn : inputConnections) {
        boolean inputIsELTDBMap = false;
        INode source = iconn.getSource();
        String schemaStr = "";
        String tableNameStr = "";
        if (source != null) {
            inputIsELTDBMap = isELTDBMap(source);
            if (inputIsELTDBMap) {
                tableNameStr = iconn.getName();
            } else {
                IElementParameter schema = source.getElementParameter("ELT_SCHEMA_NAME");
                IElementParameter tableName = source.getElementParameter("ELT_TABLE_NAME");
                if (schema != null && schema.getValue() != null) {
                    schemaStr = TalendTextUtils.removeQuotes(schema.getValue().toString());
                }
                if (tableName != null && tableName.getValue() != null) {
                    tableNameStr = TalendTextUtils.removeQuotes(tableName.getValue().toString());
                }
            }
        }
        String tableName = schemaStr;
        if ("".equals(tableName)) {
            tableName = tableNameStr;
        } else {
            if (!"".equals(tableNameStr)) {
                tableName = tableName + "." + tableNameStr;
            }
        }
        if (tableName.equals(name)) {
            StringBuffer sb = new StringBuffer();
            if (inputIsELTDBMap && generateSubSql) {
                DbMapComponent externalNode = null;
                if (source instanceof DbMapComponent) {
                    externalNode = (DbMapComponent) source;
                } else {
                    externalNode = (DbMapComponent) source.getExternalNode();
                }
                DbGenerationManager genManager = externalNode.getGenerationManager();
                String deliveredTable = genManager.buildSqlSelect(externalNode, iconn.getMetadataTable().getTableName(), //$NON-NLS-1$
                tabSpaceString + "  ");
                int begin = 1;
                int end = deliveredTable.length() - 1;
                if (begin <= end) {
                    //$NON-NLS-1$ //$NON-NLS-2$
                    sb.append("(").append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString).append("  ");
                    sb.append(deliveredTable.substring(begin, end)).append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString).append(//$NON-NLS-1$
                    " ) ");
                }
                if (aliasName != null && !aliasName.trim().isEmpty()) {
                    tableNameStr = aliasName;
                }
            }
            StringBuffer tempExp = getSchemaAndTable(schemaStr, tableNameStr);
            sb.append(tempExp);
            return sb.toString();
        }
    }
    return name;
}
Also used : INode(org.talend.core.model.process.INode) DbMapComponent(org.talend.designer.dbmap.DbMapComponent) DbGenerationManager(org.talend.designer.dbmap.language.generation.DbGenerationManager) IElementParameter(org.talend.core.model.process.IElementParameter) List(java.util.List) IConnection(org.talend.core.model.process.IConnection)

Example 2 with INode

use of org.talend.core.model.process.INode in project tdi-studio-se by Talend.

the class ToolbarInputZone method addPreviewToolItems.

private void addPreviewToolItems() {
    if (PluginChecker.isTraceDebugPluginLoaded() && getMapperManager().isTracesActive()) {
        final RunProcessContext activeContext = RunProcessPlugin.getDefault().getRunProcessContextManager().getActiveContext();
        if (activeContext == null) {
            return;
        }
        new ToolItem(getToolBarActions(), SWT.SEPARATOR);
        previousRow = new ToolItem(getToolBarActions(), SWT.PUSH);
        previousRow.setEnabled(activeContext.isRunning());
        previousRow.setToolTipText("Previous Row");
        previousRow.setImage(ImageProvider.getImage(EImage.LEFT_ICON));
        currentRowLabel = new ToolItem(getToolBarActions(), SWT.PUSH | SWT.BORDER);
        currentRowLabel.setEnabled(false);
        currentRowLabel.setText(getCurrentRowString());
        currentRowLabel.setToolTipText("Current Row");
        currentRowLabel.setWidth(50);
        nextRow = new ToolItem(getToolBarActions(), SWT.PUSH);
        nextRow.setEnabled(!getMapperManager().componentIsReadOnly());
        nextRow.setToolTipText("Next Row");
        nextRow.setImage(ImageProvider.getImage(EImage.RIGHT_ICON));
        nextBreakpoint = new ToolItem(getToolBarActions(), SWT.PUSH);
        nextBreakpoint.setToolTipText("Next Breakpoint");
        nextBreakpoint.setImage(ImageProvider.getImage(EImage.RIGHTX_ICON));
        Boolean bc = activeContext.checkBreakpoint();
        if (!bc) {
            nextBreakpoint.setEnabled(bc);
        } else {
            nextBreakpoint.setEnabled(activeContext.isRunning());
        }
        killBtn = new ToolItem(getToolBarActions(), SWT.PUSH);
        killBtn.setToolTipText("Kill");
        killBtn.setImage(ImageProvider.getImage(ERunprocessImages.KILL_PROCESS_ACTION));
        killBtn.setEnabled(activeContext.isRunning());
        previousRow.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                activeContext.setPreviousRow(true);
            }
        });
        nextRow.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                if (!activeContext.isRunning()) {
                    for (DataMapTableView dataMapTableView : getMapperManager().getUiManager().getOutputsTablesView()) {
                        dataMapTableView.notifyFocusLost();
                    }
                    if (getMapperManager().isDataChanged()) {
                        boolean closeWindow = MessageDialog.openConfirm(getComposite().getShell(), //$NON-NLS-1$
                        "tMap configuration modified", //$NON-NLS-1$
                        "Do you want to apply the modification of the tMap now ?");
                        // save change and regenerate code
                        if (closeWindow) {
                            IExternalNode externalNode = getMapperManager().getAbstractMapComponent().getExternalNode();
                            IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
                            if (externalNode != null && (part instanceof AbstractMultiPageTalendEditor)) {
                                INode node = externalNode.getOriginalNode();
                                if (node != null && node instanceof Node) {
                                    Command cmd = new ExternalNodeChangeCommand((Node) node, externalNode);
                                    CommandStack cmdStack = (CommandStack) part.getAdapter(CommandStack.class);
                                    cmdStack.execute(cmd);
                                }
                            }
                        }
                    }
                    activeContext.setLastIsRow(true);
                    IDebugProcessService service = (IDebugProcessService) GlobalServiceRegister.getDefault().getService(IDebugProcessService.class);
                    service.debugProcess();
                } else {
                    activeContext.setNextRow(true);
                }
            }
        });
        nextBreakpoint.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                activeContext.setNextBreakPoint(true);
            }
        });
        killBtn.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                IDebugProcessService service = (IDebugProcessService) GlobalServiceRegister.getDefault().getService(IDebugProcessService.class);
                service.debugKill();
                killBtn.setEnabled(false);
                previousRow.setEnabled(false);
                nextBreakpoint.setEnabled(false);
            }
        });
        propertyListener = new PropertyChangeListener() {

            public void propertyChange(final PropertyChangeEvent evt) {
                final String propName = evt.getPropertyName();
                ProcessManager.getInstance().getProcessShell().getDisplay().syncExec(new Runnable() {

                    public void run() {
                        if (RunProcessContext.PREVIOUS_ROW.equals(propName)) {
                            boolean enabled = ((Boolean) evt.getNewValue()).booleanValue();
                            if (!previousRow.isDisposed() && enabled != previousRow.isEnabled()) {
                                previousRow.setEnabled(enabled);
                            }
                        } else if (RunProcessContext.PROP_RUNNING.equals(propName)) {
                            boolean enabled = ((Boolean) evt.getNewValue()).booleanValue();
                            if (!previousRow.isDisposed() && enabled != previousRow.isEnabled()) {
                                previousRow.setEnabled(enabled);
                            }
                            if (!nextBreakpoint.isDisposed() && enabled != nextBreakpoint.isEnabled()) {
                                Boolean bc = activeContext.checkBreakpoint();
                                if (!bc) {
                                    nextBreakpoint.setEnabled(bc);
                                } else {
                                    nextBreakpoint.setEnabled(enabled);
                                }
                            }
                            if (!killBtn.isDisposed() && enabled != killBtn.isEnabled()) {
                                killBtn.setEnabled(enabled);
                            }
                            if (!nextRow.isDisposed()) {
                                nextRow.setEnabled(true);
                            }
                        } else if (RunProcessContext.NEXTBREAKPOINT.equals(propName)) {
                            boolean running = ((Boolean) evt.getNewValue()).booleanValue();
                            if (!nextBreakpoint.isDisposed()) {
                                nextBreakpoint.setEnabled(running);
                            }
                            if (!nextRow.isDisposed()) {
                                nextRow.setEnabled(true);
                            }
                        } else if (RunProcessContext.BREAKPOINT_BAR.equals(propName)) {
                            boolean enable = ((Boolean) evt.getNewValue()).booleanValue();
                            if (!enable) {
                                if (!previousRow.isDisposed()) {
                                    previousRow.setEnabled(false);
                                }
                                if (!nextRow.isDisposed()) {
                                    nextRow.setEnabled(false);
                                }
                                if (!nextBreakpoint.isDisposed()) {
                                    nextBreakpoint.setEnabled(false);
                                }
                            }
                        }
                    }
                });
            }
        };
        activeContext.addPropertyChangeListener(propertyListener);
    }
}
Also used : CommandStack(org.eclipse.gef.commands.CommandStack) RunProcessContext(org.talend.designer.runprocess.RunProcessContext) INode(org.talend.core.model.process.INode) PropertyChangeEvent(java.beans.PropertyChangeEvent) PropertyChangeListener(java.beans.PropertyChangeListener) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) AbstractMultiPageTalendEditor(org.talend.designer.core.ui.AbstractMultiPageTalendEditor) Node(org.talend.designer.core.ui.editor.nodes.Node) IExternalNode(org.talend.core.model.process.IExternalNode) INode(org.talend.core.model.process.INode) DataMapTableView(org.talend.designer.mapper.ui.visualmap.table.DataMapTableView) ExternalNodeChangeCommand(org.talend.designer.core.ui.editor.cmd.ExternalNodeChangeCommand) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) ExternalNodeChangeCommand(org.talend.designer.core.ui.editor.cmd.ExternalNodeChangeCommand) Command(org.eclipse.gef.commands.Command) SelectionEvent(org.eclipse.swt.events.SelectionEvent) IDebugProcessService(org.talend.core.model.runprocess.IDebugProcessService) ToolItem(org.eclipse.swt.widgets.ToolItem) IExternalNode(org.talend.core.model.process.IExternalNode)

Example 3 with INode

use of org.talend.core.model.process.INode in project tdi-studio-se by Talend.

the class ComponentSearcher method search.

/**
     * DOC hcw Comment method "search".
     * 
     * @param monitor
     * @param nodeName
     * @param found
     */
protected void search(IProgressMonitor monitor, String nodeName, List<IRepositoryViewObject> found) {
    IProxyRepositoryFactory factory = DesignerPlugin.getDefault().getProxyRepositoryFactory();
    IDesignerCoreService designerCoreService = CorePlugin.getDefault().getDesignerCoreService();
    try {
        List<IRepositoryViewObject> repositoryObjectList = factory.getAll(ERepositoryObjectType.PROCESS, false);
        repositoryObjectList.addAll(factory.getAll(ERepositoryObjectType.PROCESS_MR, false));
        repositoryObjectList.addAll(factory.getAll(ERepositoryObjectType.valueOf("PROCESS_STORM"), false));
        if (ProjectManager.getInstance().getReferencedProjects(ProjectManager.getInstance().getCurrentProject()).size() > 0) {
            for (Project refProject : ProjectManager.getInstance().getReferencedProjects(ProjectManager.getInstance().getCurrentProject())) {
                repositoryObjectList.addAll(factory.getAll(refProject, ERepositoryObjectType.PROCESS, false));
                repositoryObjectList.addAll(factory.getAll(refProject, ERepositoryObjectType.PROCESS_MR, false));
                repositoryObjectList.addAll(factory.getAll(refProject, ERepositoryObjectType.valueOf("PROCESS_STORM"), false));
            }
        }
        //$NON-NLS-1$
        monitor.beginTask("Searching Component in Jobs ", repositoryObjectList.size());
        for (IRepositoryViewObject rObject : repositoryObjectList) {
            if (monitor.isCanceled()) {
                break;
            }
            //$NON-NLS-1$
            monitor.setTaskName("Search " + rObject.getLabel());
            monitor.worked(1);
            Item item = rObject.getProperty().getItem();
            if (item instanceof ProcessItem) {
                ProcessItem processItem = (ProcessItem) item;
                IProcess process = designerCoreService.getProcessFromProcessItem(processItem);
                List<INode> nodes = (List<INode>) process.getGraphicalNodes();
                for (INode node : nodes) {
                    if (node.getComponent().getName().equals(nodeName)) {
                        found.add(rObject);
                        break;
                    }
                }
            }
        }
        monitor.done();
    } catch (PersistenceException e) {
        ExceptionHandler.process(e);
    }
// JobletEditorInput fileEditorInput = new JobletEditorInput(processItem, true);
// IEditorPart editorPart = page.findEditor(fileEditorInput);
}
Also used : Project(org.talend.core.model.general.Project) ProcessItem(org.talend.core.model.properties.ProcessItem) Item(org.talend.core.model.properties.Item) INode(org.talend.core.model.process.INode) ProcessItem(org.talend.core.model.properties.ProcessItem) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) PersistenceException(org.talend.commons.exception.PersistenceException) ArrayList(java.util.ArrayList) List(java.util.List) IDesignerCoreService(org.talend.designer.core.IDesignerCoreService) IProcess(org.talend.core.model.process.IProcess) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory)

Example 4 with INode

use of org.talend.core.model.process.INode in project tdi-studio-se by Talend.

the class ModifyMergeOrderAction method calculateEnabled.

/*
     * (non-Javadoc)
     * 
     * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
     */
@Override
protected boolean calculateEnabled() {
    if (getSelectedObjects().isEmpty()) {
        return false;
    }
    List parts = getSelectedObjects();
    if (parts.size() != 1) {
        return false;
    }
    Object o = parts.get(0);
    INode node = null;
    if (o instanceof ConnectionPart) {
        ConnectionPart part = (ConnectionPart) o;
        IConnection connection = (IConnection) part.getModel();
        node = connection.getTarget();
    } else if (o instanceof ConnLabelEditPart) {
        ConnectionPart part = (ConnectionPart) ((ConnLabelEditPart) o).getParent();
        Connection connection = (Connection) part.getModel();
        node = connection.getTarget();
    } else if (o instanceof NodePart) {
        node = (Node) ((NodePart) o).getModel();
    }
    if ((node == null) || (!node.getComponent().useMerge())) {
        return false;
    }
    mergeComponent = node;
    setText(TEXT_MERGE_ORDER);
    return true;
}
Also used : INode(org.talend.core.model.process.INode) IConnection(org.talend.core.model.process.IConnection) Connection(org.talend.designer.core.ui.editor.connections.Connection) List(java.util.List) IConnection(org.talend.core.model.process.IConnection) ConnectionPart(org.talend.designer.core.ui.editor.connections.ConnectionPart) NodePart(org.talend.designer.core.ui.editor.nodes.NodePart) ConnLabelEditPart(org.talend.designer.core.ui.editor.connections.ConnLabelEditPart)

Example 5 with INode

use of org.talend.core.model.process.INode in project tdi-studio-se by Talend.

the class ModifyOutputOrderAction method calculateEnabled.

/*
     * (non-Javadoc)
     * 
     * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
     */
@Override
protected boolean calculateEnabled() {
    if (getSelectedObjects().isEmpty()) {
        return false;
    }
    List parts = getSelectedObjects();
    if (parts.size() != 1) {
        return false;
    }
    Object o = parts.get(0);
    EConnectionType tmpConnType = null;
    INode node = null;
    if (o instanceof ConnectionPart) {
        ConnectionPart part = (ConnectionPart) o;
        Connection connection = (Connection) part.getModel();
        node = connection.getSource();
        tmpConnType = connection.getLineStyle();
    } else if (o instanceof ConnLabelEditPart) {
        ConnectionPart part = (ConnectionPart) ((ConnLabelEditPart) o).getParent();
        Connection connection = (Connection) part.getModel();
        node = connection.getSource();
        tmpConnType = connection.getLineStyle();
    } else if (o instanceof NodePart) {
        node = (Node) ((NodePart) o).getModel();
    }
    if (node == null) {
        return false;
    }
    usedConnType = false;
    //$NON-NLS-1$
    String midStr = "output";
    int nb = 0;
    for (Connection connection : (List<Connection>) node.getOutgoingConnections()) {
        if (getConnectionCategory() != null && connection.getLineStyle().hasConnectionCategory(getConnectionCategory())) {
            // avoid the not useful action, on connection.
            if (tmpConnType == null || tmpConnType != null && tmpConnType.hasConnectionCategory(getConnectionCategory())) {
                nb++;
            }
        } else // feature 4505 & 8087
        if (getConnectionType() != null && connection.getLineStyle() == getConnectionType()) {
            midStr = getConnectionType().getDefaultLinkName();
            usedConnType = true;
            // avoid the not useful action, on connection.
            if (tmpConnType == null || tmpConnType != null && tmpConnType == getConnectionType()) {
                nb++;
            }
        }
    }
    if (nb < 2) {
        return false;
    }
    multipleOutputNode = node;
    //$NON-NLS-1$
    setText(Messages.getString("ModifyOutputOrderAction.text", midStr));
    return true;
}
Also used : INode(org.talend.core.model.process.INode) Connection(org.talend.designer.core.ui.editor.connections.Connection) List(java.util.List) ConnectionPart(org.talend.designer.core.ui.editor.connections.ConnectionPart) NodePart(org.talend.designer.core.ui.editor.nodes.NodePart) EConnectionType(org.talend.core.model.process.EConnectionType) ConnLabelEditPart(org.talend.designer.core.ui.editor.connections.ConnLabelEditPart)

Aggregations

INode (org.talend.core.model.process.INode)205 Node (org.talend.designer.core.ui.editor.nodes.Node)80 ArrayList (java.util.ArrayList)74 List (java.util.List)63 IConnection (org.talend.core.model.process.IConnection)56 IElementParameter (org.talend.core.model.process.IElementParameter)53 IMetadataTable (org.talend.core.model.metadata.IMetadataTable)41 IProcess (org.talend.core.model.process.IProcess)35 Process (org.talend.designer.core.ui.editor.process.Process)27 INodeConnector (org.talend.core.model.process.INodeConnector)25 IProcess2 (org.talend.core.model.process.IProcess2)25 Connection (org.talend.designer.core.ui.editor.connections.Connection)24 Map (java.util.Map)22 IComponent (org.talend.core.model.components.IComponent)22 HashMap (java.util.HashMap)21 IMetadataColumn (org.talend.core.model.metadata.IMetadataColumn)21 ProcessItem (org.talend.core.model.properties.ProcessItem)20 Item (org.talend.core.model.properties.Item)19 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)19 Test (org.junit.Test)16