void moveRight(Layer layer) { if (canMove(layer)) { final Layer parentLayer = layer.getParent(); final int layerIndex = parentLayer.getChildIndex(layer.getId()); final Layer targetLayer = parentLayer.getChildren().get(layerIndex - 1); parentLayer.getChildren().remove(layer); targetLayer.getChildren().add(layer); } }
MoveLayerRightAction() { super("Move Layer Right", UIUtils.loadImageIcon("icons/Right24.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) { moveRight(selectedLayer); } }
@Override @Before public void setupTreeModel() { super.setupTreeModel(); layerRightAction = new MoveLayerRightAction(); }
@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 testMoveLayer1Right() { layerRightAction.moveRight(layer1); // Not possible; no place to move to Assert.assertEquals(4, layer0.getChildren().size()); Assert.assertEquals(0, layer0.getChildIndex("layer1")); }
AbstractButton leftButton = ToolButtonFactory.createButton(moveLayerLeftAction, false); moveLayerRightAction = new MoveLayerRightAction(); AbstractButton rightButton = ToolButtonFactory.createButton(moveLayerRightAction, false);
@Test public void testMoveLayer2Right() { layerRightAction.moveRight(layer2); // Not possible; no place to move to Assert.assertEquals(3, layer0.getChildren().size()); Assert.assertEquals(0, layer1.getChildIndex("layer2")); }
@Test public void testMoveLayer4Right() { layerRightAction.moveRight(layer4); // Not possible; no place to move to Assert.assertEquals(4, layer0.getChildren().size()); Assert.assertEquals(2, layer3.getChildren().size()); Assert.assertEquals(2, layer0.getChildIndex("layer3")); }
@Test public void testMoveLayer3Right() { layerRightAction.moveRight(layer3); Assert.assertEquals(3, layer0.getChildren().size()); Assert.assertSame(layer1, layer0.getChildren().get(0)); Assert.assertSame(layer2, layer0.getChildren().get(1)); Assert.assertSame(layer6, layer0.getChildren().get(2)); Assert.assertEquals(1, layer2.getChildren().size()); Assert.assertSame(layer3, layer2.getChildren().get(0)); Assert.assertEquals(0, layer2.getChildIndex("layer3")); Assert.assertSame(layer7, layer6.getChildren().get(0)); }
@Test public void testMoveLayer6Right() { layerRightAction.moveRight(layer6); Assert.assertEquals(3, layer0.getChildren().size()); Assert.assertEquals(3, layer3.getChildren().size()); Assert.assertEquals(0, layer3.getChildIndex("layer4")); Assert.assertEquals(1, layer3.getChildIndex("layer5")); Assert.assertEquals(2, layer3.getChildIndex("layer6")); }