@Override @Before public void setupTreeModel() { super.setupTreeModel(); layerLeftAction = new MoveLayerLeftAction(); }
void moveLeft(Layer layer) { if (canMove(layer)) { Layer parentLayer = layer.getParent(); final Layer parentsParentLayer = parentLayer.getParent(); parentLayer.getChildren().remove(layer); final int parentIndex = parentsParentLayer.getChildIndex(parentLayer.getId()); if (parentIndex < parentsParentLayer.getChildren().size() - 1) { parentsParentLayer.getChildren().add(parentIndex + 1, layer); } else { parentsParentLayer.getChildren().add(layer); } } }
MoveLayerLeftAction() { super("Move Layer Left", UIUtils.loadImageIcon("icons/Left24.gif")); putValue(Action.ACTION_COMMAND_KEY, getClass().getName()); }
@Override public void actionPerformed(ActionEvent e) { final Layer selectedLayer = SnapApp.getDefault().getSelectedProductSceneView().getSelectedLayer(); Layer rootLayer = SnapApp.getDefault().getSelectedProductSceneView().getRootLayer(); if (selectedLayer != null && rootLayer != selectedLayer) { moveLeft(selectedLayer); } }
@Override public void updateFormControl() { Layer selectedLayer = getSelectedLayer(); updateLayerStyleUI(selectedLayer); updateLayerTreeSelection(selectedLayer); boolean isLayerSelected = selectedLayer != null; removeLayerAction.setEnabled(isLayerSelected && !isLayerProtected(selectedLayer)); openLayerEditorAction.setEnabled(isLayerSelected); moveLayerUpAction.setEnabled(isLayerSelected && moveLayerUpAction.canMove(selectedLayer)); moveLayerDownAction.setEnabled(isLayerSelected && moveLayerDownAction.canMove(selectedLayer)); moveLayerLeftAction.setEnabled(isLayerSelected && moveLayerLeftAction.canMove(selectedLayer)); moveLayerRightAction.setEnabled(isLayerSelected && moveLayerRightAction.canMove(selectedLayer)); zoomToLayerAction.setEnabled(isLayerSelected); }
@Test public void testMoveLayer2Left() { layerLeftAction.moveLeft(layer2); // Not possible; no parent to move to Assert.assertEquals(4, layer0.getChildren().size()); Assert.assertEquals(0, layer0.getChildIndex("layer1")); Assert.assertEquals(1, layer0.getChildIndex("layer2")); Assert.assertEquals(2, layer0.getChildIndex("layer3")); Assert.assertEquals(3, layer0.getChildIndex("layer6")); }
@Test public void testMoveLayer7Left() { layerLeftAction.moveLeft(layer7); Assert.assertEquals(5, layer0.getChildren().size()); Assert.assertEquals(0, layer0.getChildIndex("layer1")); Assert.assertEquals(1, layer0.getChildIndex("layer2")); Assert.assertEquals(2, layer0.getChildIndex("layer3")); Assert.assertEquals(3, layer0.getChildIndex("layer6")); Assert.assertEquals(4, layer0.getChildIndex("layer7")); }
AbstractButton downButton = ToolButtonFactory.createButton(moveLayerDownAction, false); moveLayerLeftAction = new MoveLayerLeftAction(); AbstractButton leftButton = ToolButtonFactory.createButton(moveLayerLeftAction, false);
@Test public void testMoveLayer4Left() { layerLeftAction.moveLeft(layer4); Assert.assertEquals(5, layer0.getChildren().size()); Assert.assertEquals(0, layer0.getChildIndex("layer1")); Assert.assertEquals(1, layer0.getChildIndex("layer2")); Assert.assertEquals(2, layer0.getChildIndex("layer3")); Assert.assertEquals(3, layer0.getChildIndex("layer4")); Assert.assertEquals(4, layer0.getChildIndex("layer6")); }