1 27 28 package org.nightlabs.editor2d.command; 29 30 import org.apache.log4j.Logger; 31 32 import org.nightlabs.editor2d.Editor2DFactory; 33 import org.nightlabs.editor2d.EditorPlugin; 34 import org.nightlabs.editor2d.Layer; 35 import org.nightlabs.editor2d.MultiLayerDrawComponent; 36 37 38 public class CreateLayerCommand 39 extends CreateDrawComponentCommand 40 { 41 public static final Logger LOGGER = Logger.getLogger(CreateLayerCommand.class); 42 43 private static final String LAYER_DEFAULT_NAME = EditorPlugin.getResourceString("layer_default_name"); 44 45 private int layerCount = 0; 46 protected int nextLayerCount() { 47 return layerCount++; 48 } 49 50 public CreateLayerCommand(MultiLayerDrawComponent parent) 51 { 52 if (parent == null) { 53 throw new IllegalArgumentException ("Param parent (MultiLayerDrawComponent) must not be null!"); 54 } 55 56 this.parent = parent; 57 setLabel(EditorPlugin.getResourceString("command.create.layer")); 58 } 59 60 63 public void execute() 64 { 65 drawComponent = Editor2DFactory.eINSTANCE.createLayer(); 66 67 getLayer().setParent(getMultiLayerDrawComponent()); 68 drawOrderIndex = getMultiLayerDrawComponent().getDrawComponents().indexOf( 69 getMultiLayerDrawComponent().getCurrentLayer()) + 1; 70 getMultiLayerDrawComponent().addDrawComponent(getLayer(), drawOrderIndex); 71 shapeAdded = true; 72 if (layerCount == 0) { 73 layerCount = getMultiLayerDrawComponent().getDrawComponents().size(); 74 } 75 getMultiLayerDrawComponent().setCurrentLayer(getLayer()); 76 } 79 80 83 public void redo() 84 { 85 super.redo(); 86 getMultiLayerDrawComponent().setCurrentLayer(getLayer()); 87 } 88 89 92 public void undo() 93 { 94 super.undo(); 95 layerCount--; 96 } 97 98 protected MultiLayerDrawComponent getMultiLayerDrawComponent() { 99 return (MultiLayerDrawComponent) parent; 100 } 101 102 protected Layer getLayer() { 103 return (Layer) drawComponent; 104 } 105 } 106 | Popular Tags |