/** * Moves a layer from a position to another. Will fire a MapLayerListEvent * * @param sourcePosition the layer current position * @param destPosition the layer new position */ public void moveLayer(int sourcePosition, int destPosition) { super.moveLayer(sourcePosition, destPosition); }
/** * Handle a ListDataEvent signallying a drag-reordering of the map layers. The event is * published by the list model after the layers have been reordered there. * * @param ev the event */ private void onReorderLayers(ListDataEvent ev) { ((JComponent) mapPane).setIgnoreRepaint(true); for (int pos = ev.getIndex0(); pos <= ev.getIndex1(); pos++) { Layer layer = listModel.getElementAt(pos); /* * MapLayerTable stores layers in the reverse order to * the MapContent layer list */ int newContextPos = listModel.getSize() - pos - 1; int curContextPos = mapPane.getMapContent().layers().indexOf(layer); if (curContextPos != newContextPos) { mapPane.getMapContent().moveLayer(curContextPos, newContextPos); } } ((JComponent) mapPane).setIgnoreRepaint(false); ((JComponent) mapPane).repaint(); }
/** * Moves a layer from a position to another. Will fire a MapLayerListEvent * * @param sourcePosition * the layer current position * @param destPosition * the layer new position */ public void moveLayer(int sourcePosition, int destPosition) { super.moveLayer(sourcePosition, destPosition); }
@Test public void moveLayerAndGetEvent() { Layer layer0 = new MockLayer(WORLD); Layer layer1 = new MockLayer(WORLD); mapContent.addLayer(layer0); mapContent.addLayer(layer1); listener.setExpected(WaitingMapListener.Type.MOVED); mapContent.moveLayer(0, 1); assertTrue(listener.await(WaitingMapListener.Type.MOVED, LISTENER_TIMEOUT)); }
/** * Handle a ListDataEvent signallying a drag-reordering of the map layers. * The event is published by the list model after the layers have been * reordered there. * * @param ev the event */ private void onReorderLayers(ListDataEvent ev) { ((JComponent) mapPane).setIgnoreRepaint(true); for (int pos = ev.getIndex0(); pos <= ev.getIndex1(); pos++) { Layer layer = listModel.getElementAt(pos); /* * MapLayerTable stores layers in the reverse order to * the MapContent layer list */ int newContextPos = listModel.getSize() - pos - 1; int curContextPos = mapPane.getMapContent().layers().indexOf(layer); if (curContextPos != newContextPos) { mapPane.getMapContent().moveLayer(curContextPos, newContextPos); } } ((JComponent) mapPane).setIgnoreRepaint(false); ((JComponent) mapPane).repaint(); }