Search in sources :

Example 26 with Command

use of org.eclipse.gef.commands.Command in project tdi-studio-se by Talend.

the class JSONFileMetadataEmfToolbarEditor method createRemovePushButton.

@Override
protected RemovePushButton createRemovePushButton() {
    return new RemovePushButtonForExtendedTable(toolbar, extendedTableViewer) {

        @Override
        protected void beforeCommandExecution() {
            List beanList = this.getExtendedTableViewer().getExtendedTableModel().getBeansList();
            for (int index : this.getExtendedTableViewer().getTable().getSelectionIndices()) {
                MetadataColumn column = (MetadataColumn) beanList.get(index);
                needUpdateInRelationMap.add(column);
            }
        }

        @Override
        protected void afterCommandExecution(Command executedCommand) {
            linker.getBackgroundRefresher().refreshBackground();
        }
    };
}
Also used : MetadataColumn(org.talend.core.model.metadata.builder.connection.MetadataColumn) RemovePushButtonForExtendedTable(org.talend.commons.ui.swt.advanced.dataeditor.button.RemovePushButtonForExtendedTable) MetadataEmfPasteCommand(org.talend.core.ui.metadata.extended.command.MetadataEmfPasteCommand) Command(org.eclipse.gef.commands.Command) ArrayList(java.util.ArrayList) List(java.util.List)

Example 27 with Command

use of org.eclipse.gef.commands.Command in project tdi-studio-se by Talend.

the class ConnLabelEditPart method createEditPolicies.

/*
     * (non-Javadoc)
     * 
     * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
     */
@Override
public void createEditPolicies() {
    installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new ConnTextMovePolicy());
    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ConnTextEditPolicy());
    installEditPolicy(EditPolicy.COMPONENT_ROLE, new ConnectionEditPolicy() {

        @Override
        protected Command getDeleteCommand(GroupRequest request) {
            if (((Connection) getHost().getParent().getModel()).isReadOnly()) {
                return null;
            }
            List<Connection> connectionList = new ArrayList<Connection>();
            for (int i = 0; i < request.getEditParts().size(); i++) {
                if (request.getEditParts().get(i) instanceof ConnLabelEditPart) {
                    connectionList.add(((ConnectionLabel) ((ConnLabelEditPart) request.getEditParts().get(i)).getModel()).getConnection());
                }
            }
            return new ConnectionDeleteCommand(connectionList);
        }
    });
}
Also used : ConnectionEditPolicy(org.eclipse.gef.editpolicies.ConnectionEditPolicy) ConnectionDeleteCommand(org.talend.designer.core.ui.editor.cmd.ConnectionDeleteCommand) Command(org.eclipse.gef.commands.Command) GroupRequest(org.eclipse.gef.requests.GroupRequest) PolylineConnection(org.eclipse.draw2d.PolylineConnection) ConnectionDeleteCommand(org.talend.designer.core.ui.editor.cmd.ConnectionDeleteCommand) ArrayList(java.util.ArrayList) List(java.util.List)

Example 28 with Command

use of org.eclipse.gef.commands.Command in project tdi-studio-se by Talend.

the class ConnectionPart method createEditPolicies.

/*
     * (non-Javadoc)
     * 
     * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
     */
@Override
protected void createEditPolicies() {
    // Selection handle edit policy.
    // Makes the connection show a feedback, when selected by the user.
    installEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE, new ConnectionEndpointEditPolicy());
    // Allows the removal of the connection model element
    installEditPolicy(EditPolicy.CONNECTION_ROLE, new ConnectionEditPolicy() {

        @Override
        protected Command getDeleteCommand(GroupRequest request) {
            if (((Connection) getModel()).isReadOnly()) {
                return null;
            }
            List<Connection> connectionList = new ArrayList<Connection>();
            for (int i = 0; i < request.getEditParts().size(); i++) {
                if (request.getEditParts().get(i) instanceof ConnectionPart) {
                    connectionList.add(((Connection) ((ConnectionPart) request.getEditParts().get(i)).getModel()));
                }
            }
            return new ConnectionDeleteCommand(connectionList);
        }
    });
}
Also used : ConnectionEndpointEditPolicy(org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy) ConnectionEditPolicy(org.eclipse.gef.editpolicies.ConnectionEditPolicy) ConnectionDeleteCommand(org.talend.designer.core.ui.editor.cmd.ConnectionDeleteCommand) Command(org.eclipse.gef.commands.Command) GroupRequest(org.eclipse.gef.requests.GroupRequest) IConnection(org.talend.core.model.process.IConnection) ConnectionDeleteCommand(org.talend.designer.core.ui.editor.cmd.ConnectionDeleteCommand) ArrayList(java.util.ArrayList) List(java.util.List)

Example 29 with Command

use of org.eclipse.gef.commands.Command in project tdi-studio-se by Talend.

the class AbstractElementPropertySectionController method addDragAndDropTarget.

/**
     * Accept Text and StyledText control.
     *
     * @param labelText
     */
public void addDragAndDropTarget(final Control textControl) {
    DropTargetListener dropTargetListener = new DropTargetListener() {

        String propertyName = null;

        @Override
        public void dragEnter(final DropTargetEvent event) {
        }

        @Override
        public void dragLeave(final DropTargetEvent event) {
        }

        @Override
        public void dragOperationChanged(final DropTargetEvent event) {
        }

        @Override
        public void dragOver(final DropTargetEvent event) {
            if (TextTransfer.getInstance().isSupportedType(event.currentDataType)) {
                propertyName = getParameterName(textControl);
                for (int i = 0; i < elem.getElementParameters().size(); i++) {
                    IElementParameter param = elem.getElementParameters().get(i);
                    if (param.getName().equals(propertyName)) {
                        if (param.isReadOnly()) {
                            event.detail = DND.ERROR_INVALID_DATA;
                        }
                    }
                }
            }
        }

        @Override
        public void drop(final DropTargetEvent event) {
            if (propertyName != null) {
                String text;
                if (textControl instanceof StyledText) {
                    text = ((StyledText) textControl).getText() + (String) event.data;
                    ((StyledText) textControl).setText(text);
                } else {
                    text = ((Text) textControl).getText() + (String) event.data;
                    ((Text) textControl).setText(text);
                }
                Command cmd = new PropertyChangeCommand(elem, propertyName, text);
                // getCommandStack().execute(cmd);
                executeCommand(cmd);
            }
        }

        @Override
        public void dropAccept(final DropTargetEvent event) {
        }
    };
    DropTarget target = new DropTarget(textControl, DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT);
    Transfer[] transfers = new Transfer[] { TextTransfer.getInstance() };
    target.setTransfer(transfers);
    target.addDropListener(dropTargetListener);
}
Also used : StyledText(org.eclipse.swt.custom.StyledText) ReconcilerStyledText(org.talend.designer.core.ui.viewer.ReconcilerStyledText) PropertyChangeCommand(org.talend.designer.core.ui.editor.cmd.PropertyChangeCommand) DropTargetListener(org.eclipse.swt.dnd.DropTargetListener) PropertyChangeCommand(org.talend.designer.core.ui.editor.cmd.PropertyChangeCommand) Command(org.eclipse.gef.commands.Command) Transfer(org.eclipse.swt.dnd.Transfer) TextTransfer(org.eclipse.swt.dnd.TextTransfer) IElementParameter(org.talend.core.model.process.IElementParameter) DropTargetEvent(org.eclipse.swt.dnd.DropTargetEvent) StyledText(org.eclipse.swt.custom.StyledText) Text(org.eclipse.swt.widgets.Text) ReconcilerStyledText(org.talend.designer.core.ui.viewer.ReconcilerStyledText) DropTarget(org.eclipse.swt.dnd.DropTarget)

Example 30 with Command

use of org.eclipse.gef.commands.Command in project tdi-studio-se by Talend.

the class UIManager method closeMapper.

/**
     * DOC amaumont Comment method "closeMapperDialog".
     * 
     * @param ok
     */
public void closeMapper(int response) {
    boolean save = true;
    for (DataMapTableView dataMapTableView : getInputsTablesView()) {
        dataMapTableView.notifyFocusLost();
    }
    for (DataMapTableView dataMapTableView : getOutputsTablesView()) {
        dataMapTableView.notifyFocusLost();
    }
    for (DataMapTableView dataMapTableView : getVarsTablesView()) {
        dataMapTableView.notifyFocusLost();
    }
    if ((response == SWT.OK || response == SWT.APPLICATION_MODAL) && mapperManager.getProblemsManager().checkProblemsForAllEntriesOfAllTables(false)) {
        save = MessageDialog.openConfirm(getMapperContainer().getShell(), //$NON-NLS-1$
        Messages.getString("UIManager.SaveDespiteErrors.Title"), //$NON-NLS-1$
        Messages.getString("UIManager.SaveDespiteErrors.Message"));
    }
    if (save) {
        Composite parent = mapperUI.getMapperUIParent();
        prepareClosing(response);
        if (parent instanceof Shell) {
            if (response == SWT.OK || response == SWT.CANCEL) {
                ((Shell) parent).close();
            } else {
                IExternalNode externalNode = mapperManager.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);
                    }
                }
            }
        }
    }
}
Also used : ExternalNodeChangeCommand(org.talend.designer.core.ui.editor.cmd.ExternalNodeChangeCommand) CommandStack(org.eclipse.gef.commands.CommandStack) Shell(org.eclipse.swt.widgets.Shell) INode(org.talend.core.model.process.INode) Composite(org.eclipse.swt.widgets.Composite) ScrolledComposite(org.eclipse.swt.custom.ScrolledComposite) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) ExternalNodeChangeCommand(org.talend.designer.core.ui.editor.cmd.ExternalNodeChangeCommand) Command(org.eclipse.gef.commands.Command) DataMapTableViewSelectedCommand(org.talend.designer.mapper.ui.commands.DataMapTableViewSelectedCommand) AbstractMultiPageTalendEditor(org.talend.designer.core.ui.AbstractMultiPageTalendEditor) INode(org.talend.core.model.process.INode) Node(org.talend.designer.core.ui.editor.nodes.Node) IExternalNode(org.talend.core.model.process.IExternalNode) InputDataMapTableView(org.talend.designer.mapper.ui.visualmap.table.InputDataMapTableView) OutputDataMapTableView(org.talend.designer.mapper.ui.visualmap.table.OutputDataMapTableView) VarsDataMapTableView(org.talend.designer.mapper.ui.visualmap.table.VarsDataMapTableView) DataMapTableView(org.talend.designer.mapper.ui.visualmap.table.DataMapTableView) IExternalNode(org.talend.core.model.process.IExternalNode)

Aggregations

Command (org.eclipse.gef.commands.Command)100 ArrayList (java.util.ArrayList)38 List (java.util.List)35 PropertyChangeCommand (org.talend.designer.core.ui.editor.cmd.PropertyChangeCommand)35 CompoundCommand (org.eclipse.gef.commands.CompoundCommand)28 IElementParameter (org.talend.core.model.process.IElementParameter)22 Node (org.talend.designer.core.ui.editor.nodes.Node)20 INode (org.talend.core.model.process.INode)17 EditPart (org.eclipse.gef.EditPart)15 CommandStack (org.eclipse.gef.commands.CommandStack)15 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)15 GraphicalEditPart (org.eclipse.gef.GraphicalEditPart)14 IGraphicalEditPart (org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart)14 IMetadataTable (org.talend.core.model.metadata.IMetadataTable)13 RepositoryNode (org.talend.repository.model.RepositoryNode)13 RepositoryChangeMetadataCommand (org.talend.designer.core.ui.editor.cmd.RepositoryChangeMetadataCommand)12 Request (org.eclipse.gef.Request)11 NonResizableEditPolicy (org.eclipse.gef.editpolicies.NonResizableEditPolicy)11 DirectEditRequest (org.eclipse.gef.requests.DirectEditRequest)11 LabelDirectEditPolicy (org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy)11