1 27 28 package org.nightlabs.editor2d.command; 29 30 import org.eclipse.gef.commands.Command; 31 32 import org.nightlabs.editor2d.DrawComponent; 33 import org.nightlabs.editor2d.DrawComponentContainer; 34 import org.nightlabs.editor2d.EditorPlugin; 35 36 37 public class DrawComponentReorderCommand 38 extends Command 39 { 40 private int oldIndex; 41 private int newIndex; 42 private DrawComponent child; 43 private DrawComponentContainer parent; 44 private DrawComponentContainer oldParent; 45 46 public DrawComponentReorderCommand(DrawComponent child, DrawComponentContainer parent, int newIndex ) 47 { 48 super(EditorPlugin.getResourceString("command.reorder.drawcomponent")); 49 this.child = child; 50 this.parent = parent; 51 this.newIndex = newIndex; 52 } 53 54 public void execute() 55 { 56 if (parent.equals(child.getParent())) { 58 oldIndex = parent.getDrawComponents().indexOf(child); 59 parent.removeDrawComponent(child); 62 parent.addDrawComponent(child, newIndex); 63 } 64 else { 65 oldParent = child.getParent(); 66 oldIndex = oldParent.getDrawComponents().indexOf(child); 67 oldParent.removeDrawComponent(child); 70 parent.addDrawComponent(child, newIndex); 71 } 72 } 73 74 public void undo() 75 { 76 if (oldParent == null) { 77 parent.removeDrawComponent(child); 80 parent.addDrawComponent(child, oldIndex); 81 } 82 else { 83 parent.removeDrawComponent(child); 86 oldParent.addDrawComponent(child, oldIndex); 87 } 88 } 89 90 public void redo() 91 { 92 execute(); 93 } 94 } 95 | Popular Tags |