/* * Created on 2006-09-06 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package net.ms.designer.editors.packages.commands; import net.ms.designer.core.MsContext; import net.ms.designer.editors.packages.dialog.PropertyDialog; import net.ms.designer.editors.packages.models.Package; import net.ms.designer.editors.packages.models.PackageDiagram; import net.ms.designer.editors.packages.ui.PackageEditor; import org.eclipse.draw2d.geometry.Point; import org.eclipse.gef.commands.Command; import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.internal.UIPlugin; /** * @author mashuai * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class CreateNodeCommand extends Command { protected PackageDiagram diagram; protected Package node; protected Point location; protected Shell shell; protected PackageEditor editor; // setters public CreateNodeCommand(Shell shell) { super(); this.shell = shell; this.editor = (PackageEditor)UIPlugin.getDefault() .getWorkbench().getActiveWorkbenchWindow() .getActivePage().getActiveEditor(); } public void setDiagram(PackageDiagram diagram) { this.diagram = diagram; } public void setNode(Package node) { this.node = node; } public void setLocation(Point location) { this.location = location; } public void execute() { if (this.location != null) { this.node.setLocation(this.location); } PropertyDialog dialog = new PropertyDialog(shell,node,diagram); dialog.status = 0; int flag = dialog.open(); if(Window.OK == flag) { this.diagram.addNode(this.node); MsContext context = editor.getContext(); context.updateContext(node , "component"); } else if(Window.CANCEL == flag) return; } public String getLabel() { return "Create Node"; } public void redo() { this.execute(); } public void undo() { diagram.removeNode(node); } }