@Override @Before public void setupTreeModel() { super.setupTreeModel(); layerUpAction = new MoveLayerUpAction(); }
void moveUp(Layer layer) { if (canMove(layer)) { final Layer parentLayer = layer.getParent(); final int layerIndex = layer.getParent().getChildIndex(layer.getId()); parentLayer.getChildren().remove(layer); parentLayer.getChildren().add(layerIndex - 1, layer); } }
MoveLayerUpAction() { super("Move Layer Up", UIUtils.loadImageIcon("icons/Up24.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) { moveUp(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 testMoveLayer1Up() { layerUpAction.moveUp(layer1); // Not possible it's already the first node Assert.assertEquals(4, layer0.getChildren().size()); Assert.assertEquals(0, layer0.getChildIndex("layer1")); }
@Test public void testMoveLayer5Up() { layerUpAction.moveUp(layer5); Assert.assertEquals(2, layer3.getChildren().size()); Assert.assertEquals(0, layer3.getChildIndex("layer5")); Assert.assertEquals(1, layer3.getChildIndex("layer4")); }
AbstractButton zoomButton = ToolButtonFactory.createButton(zoomToLayerAction, false); moveLayerUpAction = new MoveLayerUpAction(); AbstractButton upButton = ToolButtonFactory.createButton(moveLayerUpAction, false);
@Test public void testMoveLayer3Up() { layerUpAction.moveUp(layer3); Assert.assertEquals(2, layer3.getChildren().size()); Assert.assertEquals(4, layer0.getChildren().size()); Assert.assertEquals(0, layer0.getChildIndex("layer1")); Assert.assertEquals(1, layer0.getChildIndex("layer3")); Assert.assertEquals(2, layer0.getChildIndex("layer2")); }
@Test public void testMoveLayer6Up() { layerUpAction.moveUp(layer6); Assert.assertEquals(4, layer0.getChildren().size()); Assert.assertEquals(0, layer0.getChildIndex("layer1")); Assert.assertEquals(1, layer0.getChildIndex("layer2")); Assert.assertEquals(2, layer0.getChildIndex("layer6")); Assert.assertEquals(3, layer0.getChildIndex("layer3")); }