/* * 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.component.commands; import java.io.File; import java.util.ArrayList; import java.util.List; import net.ms.designer.core.MsContext; import net.ms.designer.core.MsElement; import net.ms.designer.core.MsProject; import net.ms.designer.editors.component.models.BizComponent; import net.ms.designer.editors.component.models.CompDiagram; import net.ms.designer.editors.component.models.Component; import net.ms.designer.editors.component.models.EnumComponent; import net.ms.designer.editors.component.tools.WriteToProjectXML; import net.ms.designer.editors.packages.ui.PackageEditor; import org.eclipse.gef.commands.Command; import org.eclipse.jface.dialogs.MessageDialog; 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 DeleteNodeCommand extends Command { private CompDiagram diagram; private Component node; private int index; public void setDiagram(CompDiagram diagram) { this.diagram = diagram; } public void setNode(Component node) { this.node = node; } //------------------------------------------------------------------------ // Overridden from Command public void execute() { PackageEditor editor = (PackageEditor)UIPlugin.getDefault() .getWorkbench().getActiveWorkbenchWindow() .getActivePage().getActiveEditor(); MsProject project = editor.getProject(); MsContext context = editor.getContext(); MsElement currentElement = editor.getCurrentElement(); String type = ""; String tag = ""; if(node instanceof BizComponent) { type = "componentdetail"; tag = "component"; } if(node instanceof EnumComponent) { type = "enumdetail"; tag = "enumeration"; } String path = project.getConfigPath(); path = path + "project.xml"; WriteToProjectXML writor = new WriteToProjectXML(); try { writor.doDelete(path , tag , node.getName() , currentElement.getNodeName()); } catch(Exception e) { e.printStackTrace(); } MsElement child = context.getElement(type + "_" + node.getName()); index=diagram.getNodes().indexOf(node); diagram.removeNode(node); MsElement parent = child.getParent(); parent.removeChild(child); context.removeElement(type + "_" + node.getName()); // delete the xml file File file = new File(project.getConfigPath() + node.getComponentID() + ".xml"); file.delete(); } public String getLabel() { return "Delete Node"; } public void redo() { execute(); } public void undo() { diagram.addNode(node); } }