Revision: 5077 http://sourceforge.net/p/jump-pilot/code/5077 Author: michaudm Date: 2016-10-15 11:18:13 +0000 (Sat, 15 Oct 2016) Log Message: ----------- Fix #436 : make invisible layers not editable.
Modified Paths: -------------- core/trunk/src/com/vividsolutions/jump/workbench/model/AbstractLayerable.java core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/EditablePlugIn.java Modified: core/trunk/src/com/vividsolutions/jump/workbench/model/AbstractLayerable.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/workbench/model/AbstractLayerable.java 2016-10-15 10:35:42 UTC (rev 5076) +++ core/trunk/src/com/vividsolutions/jump/workbench/model/AbstractLayerable.java 2016-10-15 11:18:13 UTC (rev 5077) @@ -131,8 +131,8 @@ if (this.visible == visible) { return; } - this.visible = visible; + editable = visible && editable; fireLayerChanged(LayerEventType.VISIBILITY_CHANGED); } Modified: core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/EditablePlugIn.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/EditablePlugIn.java 2016-10-15 10:35:42 UTC (rev 5076) +++ core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/EditablePlugIn.java 2016-10-15 11:18:13 UTC (rev 5077) @@ -45,10 +45,7 @@ import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory; import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck; import com.vividsolutions.jump.workbench.plugin.PlugInContext; -import com.vividsolutions.jump.workbench.ui.LayerNamePanel; -import com.vividsolutions.jump.workbench.ui.LayerNamePanelProxy; -import com.vividsolutions.jump.workbench.ui.LayerableNamePanel; -import com.vividsolutions.jump.workbench.ui.OKCancelDialog; +import com.vividsolutions.jump.workbench.ui.*; import com.vividsolutions.jump.workbench.ui.cursortool.editing.EditingPlugIn; import com.vividsolutions.jump.workbench.ui.images.IconLoader; @@ -76,16 +73,20 @@ public boolean execute(PlugInContext context) throws Exception { reportNothingToUndoYet(context); + boolean single = PersistentBlackboardPlugIn.get(context.getWorkbenchContext()) + .get(EditOptionsPanel.SINGLE_EDITABLE_LAYER_KEY, true); + Layerable[] layers = getSelectedLayerables(context.getWorkbenchContext()); // assume what to do by status of first selected layer boolean makeEditable = !layers[0].isEditable(); // set states for each for (Layerable layerable : layers) { - if (isWritable(layerable)) { - if (makeEditable) setAllLayersToUneditable(context); + if (isWritable(layerable) && layerable.isVisible()) { + if (single) setAllLayersToUneditable(context); + //if (makeEditable) setAllLayersToUneditable(context); layerable.setEditable(makeEditable); - } else { + } else if (layerable.isVisible()) { String message = "<html><br>" + I18N.getMessage(CONFIRMATION_1, "<i>'"+layerable.getName()+"'</i>"); message += "<br><br>" + I18N.get(CONFIRMATION_2) + "<br></html>"; JLabel label = new JLabel(message); @@ -104,7 +105,8 @@ }); okCancelPanel.setVisible(true); if (okCancelPanel.wasOKPressed()) { - if (makeEditable) setAllLayersToUneditable(context); + if (single) setAllLayersToUneditable(context); + //if (makeEditable) setAllLayersToUneditable(context); layerable.setEditable(makeEditable); if (layerable instanceof Layer) { ((Layer)layerable).setDataSourceQuery(null); ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel