@Override @Before public void setupTreeModel() { super.setupTreeModel(); layerDownAction = new MoveLayerDownAction(); }
void moveDown(Layer layer) { if (canMove(layer)) { final Layer parentLayer = layer.getParent(); final int layerIndex = parentLayer.getChildIndex(layer.getId()); parentLayer.getChildren().remove(layer); parentLayer.getChildren().add(layerIndex + 1, layer); } }
MoveLayerDownAction() { super("Move Layer Down", UIUtils.loadImageIcon("icons/Down24.gif")); putValue(Action.ACTION_COMMAND_KEY, getClass().getName()); }
@Override public void actionPerformed(ActionEvent e) { Layer selectedLayer = SnapApp.getDefault().getSelectedProductSceneView().getSelectedLayer(); Layer rootLayer = SnapApp.getDefault().getSelectedProductSceneView().getRootLayer(); if (selectedLayer != null && rootLayer != selectedLayer) { moveDown(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 testMoveLayer4Down() { layerDownAction.moveDown(layer4); Assert.assertEquals(2, layer3.getChildren().size()); Assert.assertEquals(0, layer3.getChildIndex("layer5")); Assert.assertEquals(1, layer3.getChildIndex("layer4")); }
@Test public void testMoveLayer6Down() { // Not possible it's already the last node layerDownAction.moveDown(layer6); 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")); }
AbstractButton upButton = ToolButtonFactory.createButton(moveLayerUpAction, false); moveLayerDownAction = new MoveLayerDownAction(); AbstractButton downButton = ToolButtonFactory.createButton(moveLayerDownAction, false);
@Test public void testMoveLayer2Down() { layerDownAction.moveDown(layer2); Assert.assertEquals(4, layer0.getChildren().size()); Assert.assertEquals(0, layer0.getChildIndex("layer1")); Assert.assertEquals(1, layer0.getChildIndex("layer3")); Assert.assertEquals(2, layer0.getChildIndex("layer2")); Assert.assertEquals(3, layer0.getChildIndex("layer6")); }