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

Reply via email to