mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 17:22:09 +10:00
Show and hide each individual layer
This commit is contained in:
@@ -22,10 +22,12 @@ public class LayersMenuPlugin implements IPlugIn {
|
||||
|
||||
private IPlugInPort plugInPort;
|
||||
private Map<Layer, Action> lockActionMap;
|
||||
private Map<Layer, Action> visibleActionMap;
|
||||
private Map<Integer, Action> selectAllActionMap;
|
||||
|
||||
public LayersMenuPlugin(ISwingUI swingUI) {
|
||||
lockActionMap = new HashMap<Layer, Action>();
|
||||
visibleActionMap = new HashMap<Layer, Action>();
|
||||
selectAllActionMap = new HashMap<Integer, Action>();
|
||||
for (Layer layer : Layer.values()) {
|
||||
final int zOrder = layer.getZOrder();
|
||||
@@ -36,11 +38,24 @@ public class LayersMenuPlugin implements IPlugIn {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
LayersMenuPlugin.this.plugInPort.setLayerLocked(zOrder, (Boolean) getValue(Action.SELECTED_KEY));
|
||||
selectAllActionMap.get(zOrder).setEnabled(!(Boolean) getValue(Action.SELECTED_KEY));
|
||||
// selectAllActionMap.get(zOrder).setEnabled(!(Boolean) getValue(Action.SELECTED_KEY));
|
||||
}
|
||||
};
|
||||
lockAction.putValue(IView.CHECK_BOX_MENU_ITEM, true);
|
||||
lockActionMap.put(layer, lockAction);
|
||||
|
||||
AbstractAction visibleAction = new AbstractAction("Visible") {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
LayersMenuPlugin.this.plugInPort.setLayerVisibility(zOrder, getValue(Action.SELECTED_KEY) == null ? true : (Boolean) getValue(Action.SELECTED_KEY));
|
||||
// selectAllActionMap.get(zOrder).setEnabled(!(Boolean) getValue(Action.SELECTED_KEY));
|
||||
}
|
||||
};
|
||||
visibleAction.putValue(IView.CHECK_BOX_MENU_ITEM, true);
|
||||
visibleActionMap.put(layer, visibleAction);
|
||||
|
||||
AbstractAction selectAllAction = new AbstractAction("Select All") {
|
||||
|
||||
@@ -54,6 +69,7 @@ public class LayersMenuPlugin implements IPlugIn {
|
||||
selectAllActionMap.put(zOrder, selectAllAction);
|
||||
|
||||
swingUI.injectSubmenu(layer.title, null, LOCK_LAYERS_TITLE);
|
||||
swingUI.injectMenuAction(visibleAction, layer.title);
|
||||
swingUI.injectMenuAction(lockAction, layer.title);
|
||||
swingUI.injectMenuAction(selectAllAction, layer.title);
|
||||
}
|
||||
@@ -66,7 +82,7 @@ public class LayersMenuPlugin implements IPlugIn {
|
||||
|
||||
@Override
|
||||
public EnumSet<EventType> getSubscribedEventTypes() {
|
||||
return EnumSet.of(EventType.LAYER_STATE_CHANGED);
|
||||
return EnumSet.of(EventType.LAYER_STATE_CHANGED, EventType.LAYER_VISIBILITY_CHANGED);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -77,7 +93,12 @@ public class LayersMenuPlugin implements IPlugIn {
|
||||
for (Layer layer : Layer.values()) {
|
||||
lockActionMap.get(layer).putValue(Action.SELECTED_KEY, lockedLayers.contains(layer.getZOrder()));
|
||||
}
|
||||
}
|
||||
} else if (eventType == EventType.LAYER_VISIBILITY_CHANGED) {
|
||||
Set<Integer> hiddenLayers = (Set<Integer>) params[0];
|
||||
for (Layer layer : Layer.values()) {
|
||||
visibleActionMap.get(layer).putValue(Action.SELECTED_KEY, !hiddenLayers.contains(layer.getZOrder()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static enum Layer {
|
||||
|
||||
@@ -1701,7 +1701,11 @@
|
||||
</versionNumber>
|
||||
<releaseDate>2017-04-20 20:00:00.000 CET</releaseDate>
|
||||
<name></name>
|
||||
<changes>
|
||||
<changes>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Show and hide each individual layer</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Red ticks on both rulers mark selection bounds, blue tick tracks cursor position</description>
|
||||
|
||||
Reference in New Issue
Block a user