// ============================================================================ // // Copyright (C) 2006-2012 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.designer.core.ui.editor.cmd; import org.eclipse.gef.commands.Command; import org.talend.designer.core.i18n.Messages; import org.talend.designer.core.ui.editor.nodes.Node; import org.talend.designer.core.ui.editor.process.Process; /** * Command that will set or remove the start status on a node. <br/> * * $Id: ChangeActivateStatusNodeCommand.java 3351 2007-05-04 12:14:00 +0000 (ven., 04 mai 2007) plegall $ * */ public class ChangeActivateStatusSubjobCommand extends Command { private Node node; private boolean value; private boolean oneComponent; /** * Gives the node where the status will be set or removed. * * @param newStartNode */ public ChangeActivateStatusSubjobCommand(Node node, boolean oneComponent) { this.node = node; this.oneComponent = oneComponent; if (node.isStart()) { if (!oneComponent) { if (node.isActivate()) { value = false; setLabel(Messages.getString("ChangeActivateStatusSubjobCommand.Label.DeactiveComplete")); //$NON-NLS-1$ } else { value = true; setLabel(Messages.getString("ChangeActivateStatusSubjobCommand.Label.ActiveComplete")); //$NON-NLS-1$ } } else { if (node.isActivate()) { value = false; setLabel(Messages.getString("ChangeActivateStatusSubjobCommand.Label.DeactivePart")); //$NON-NLS-1$ } else { value = true; setLabel(Messages.getString("ChangeActivateStatusSubjobCommand.Label.ActivePart")); //$NON-NLS-1$ } } } else { if (node.isActivate()) { value = false; setLabel(Messages.getString("ChangeActivateStatusSubjobCommand.Label.DeactivePart")); //$NON-NLS-1$ } else { value = true; setLabel(Messages.getString("ChangeActivateStatusSubjobCommand.Label.ActivePart")); //$NON-NLS-1$ } } } private void refreshPropertyView() { // IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); // IViewPart view = page.findView("org.eclipse.ui.views.PropertySheet"); //$NON-NLS-1$ // PropertySheet sheet = (PropertySheet) view; // if (sheet.getCurrentPage() instanceof TabbedPropertySheetPage) { // TabbedPropertySheetPage tabbedPropertySheetPage = (TabbedPropertySheetPage) sheet.getCurrentPage(); // if (tabbedPropertySheetPage.getCurrentTab() != null) { // tabbedPropertySheetPage.refresh(); // } // } } public void execute() { Process process = (Process) node.getProcess(); process.setActivateSubjob(node, value, oneComponent); process.checkStartNodes(); process.checkProcess(); refreshPropertyView(); } public void undo() { Process process = (Process) node.getProcess(); process.setActivateSubjob(node, !value, oneComponent); process.checkStartNodes(); process.checkProcess(); refreshPropertyView(); } public void redo() { this.execute(); } }