Revision: 5832
          http://sourceforge.net/p/jump-pilot/code/5832
Author:   ma15569
Date:     2018-06-04 12:41:21 +0000 (Mon, 04 Jun 2018)
Log Message:
-----------
Following Feature request  #243 Layer selection in plugins and expanding raster 
layer selection to (also) AbstractDialog combobox instead to (only) layerable 
selection on the tree, a check is required to enable/disable Sextante plugins 
on the menu

Modified Paths:
--------------
    
core/trunk/src/com/vividsolutions/jump/workbench/plugin/EnableCheckFactory.java

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/plugin/EnableCheckFactory.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/plugin/EnableCheckFactory.java 
    2018-06-04 06:40:20 UTC (rev 5831)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/plugin/EnableCheckFactory.java 
    2018-06-04 12:41:21 UTC (rev 5832)
@@ -1,4 +1,3 @@
-
 /*
  * The Unified Mapping Platform (JUMP) is an extensible, interactive GUI 
  * for visualizing and manipulating spatial features with geometry and 
attributes.
@@ -36,9 +35,7 @@
 import static com.vividsolutions.jump.I18N.get;
 import static com.vividsolutions.jump.I18N.getMessage;
 
-import java.util.Arrays;
 import java.util.Collection;
-import java.util.Iterator;
 
 import javax.swing.JComponent;
 import javax.swing.JInternalFrame;
@@ -67,11 +64,12 @@
 
 /**
  * Creates basic EnableChecks.
+ * 
  * @see EnableCheck
  */
 public class EnableCheckFactory {
 
-    private WorkbenchContext workbenchContext;
+    private final WorkbenchContext workbenchContext;
     private static EnableCheckFactory instance = null;
 
     public EnableCheckFactory(WorkbenchContext workbenchContext) {
@@ -79,39 +77,46 @@
         this.workbenchContext = workbenchContext;
     }
 
-    public static EnableCheckFactory getInstance(){
-      if (instance==null)
-        instance = new 
EnableCheckFactory(JUMPWorkbench.getInstance().getContext());
-      return instance;
+    public static EnableCheckFactory getInstance() {
+        if (instance == null) {
+            instance = new EnableCheckFactory(JUMPWorkbench.getInstance()
+                    .getContext());
+        }
+        return instance;
     }
 
-    //<<TODO:WORKAROUND>> I came across a bug in the JBuilder 4 compiler 
(bcj.exe)
-    //that occurs when using the Java ternary operator ( ? : ). For it to
-    //happen, [1] the middle operand must be null and [2] an inner class
-    //must be nearby. For example, try using JBuilder to compile the following 
code:
+    // <<TODO:WORKAROUND>> I came across a bug in the JBuilder 4 compiler
+    // (bcj.exe)
+    // that occurs when using the Java ternary operator ( ? : ). For it to
+    // happen, [1] the middle operand must be null and [2] an inner class
+    // must be nearby. For example, try using JBuilder to compile the following
+    // code:
     //
-    //  import java.awt.event.WindowAdapter;
-    //  public class TestClass {
-    //    static public void main(String[] args) {
-    //      System.out.println(true ? null : "FALSE");
-    //      WindowAdapter w = new WindowAdapter() { };
-    //    }
-    //  }
+    // import java.awt.event.WindowAdapter;
+    // public class TestClass {
+    // static public void main(String[] args) {
+    // System.out.println(true ? null : "FALSE");
+    // WindowAdapter w = new WindowAdapter() { };
+    // }
+    // }
     //
-    //You'd expect it to print out "null", but "FALSE" is printed! And if you 
comment
-    //out the line with the anonymous inner class (WindowAdapter w), it prints 
out
-    //"null" as expected! I've submitted a bug report to Borland (case number 
488569).
+    // You'd expect it to print out "null", but "FALSE" is printed! And if you
+    // comment
+    // out the line with the anonymous inner class (WindowAdapter w), it prints
+    // out
+    // "null" as expected! I've submitted a bug report to Borland (case number
+    // 488569).
     //
-    //So, if you're using JBuilder, don't use ?: if the middle operand could 
be null!
-    //[Jon Aquino]
+    // So, if you're using JBuilder, don't use ?: if the middle operand could 
be
+    // null!
+    // [Jon Aquino]
     public EnableCheck createTaskWindowMustBeActiveCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                return (
-                    
!(workbenchContext.getWorkbench().getFrame().getActiveInternalFrame()
-                        instanceof TaskFrame))
-                    ? 
get("com.vividsolutions.jump.workbench.plugin.A-Task-Window-must-be-active")
-                    : null;
+                return (!(workbenchContext.getWorkbench().getFrame()
+                        .getActiveInternalFrame() instanceof TaskFrame)) ? 
get("com.vividsolutions.jump.workbench.plugin.A-Task-Window-must-be-active")
+                        : null;
             }
         };
     }
@@ -118,12 +123,11 @@
 
     public EnableCheck createWindowWithSelectionManagerMustBeActiveCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                return (
-                    
!(workbenchContext.getWorkbench().getFrame().getActiveInternalFrame()
-                        instanceof SelectionManagerProxy))
-                    ? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-a-selection-manager-must-be-active")
-                    : null;
+                return (!(workbenchContext.getWorkbench().getFrame()
+                        .getActiveInternalFrame() instanceof 
SelectionManagerProxy)) ? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-a-selection-manager-must-be-active")
+                        : null;
             }
         };
     }
@@ -130,12 +134,11 @@
 
     public EnableCheck createWindowWithLayerManagerMustBeActiveCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                return (
-                    
!(workbenchContext.getWorkbench().getFrame().getActiveInternalFrame()
-                        instanceof LayerManagerProxy))
-                    ? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-a-layer-manager-must-be-active")
-                    : null;
+                return (!(workbenchContext.getWorkbench().getFrame()
+                        .getActiveInternalFrame() instanceof 
LayerManagerProxy)) ? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-a-layer-manager-must-be-active")
+                        : null;
             }
         };
     }
@@ -142,12 +145,11 @@
 
     public EnableCheck createWindowWithAssociatedTaskFrameMustBeActiveCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                return (
-                    
!(workbenchContext.getWorkbench().getFrame().getActiveInternalFrame()
-                        instanceof TaskFrameProxy))
-                    ? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-an-associated-task-frame-must-be-active")
-                    : null;
+                return (!(workbenchContext.getWorkbench().getFrame()
+                        .getActiveInternalFrame() instanceof TaskFrameProxy)) 
? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-an-associated-task-frame-must-be-active")
+                        : null;
             }
         };
     }
@@ -154,12 +156,11 @@
 
     public EnableCheck createWindowWithLayerNamePanelMustBeActiveCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                return (
-                    
!(workbenchContext.getWorkbench().getFrame().getActiveInternalFrame()
-                        instanceof LayerNamePanelProxy))
-                    ? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-a-layer-name-panel-must-be-active")
-                    : null;
+                return (!(workbenchContext.getWorkbench().getFrame()
+                        .getActiveInternalFrame() instanceof 
LayerNamePanelProxy)) ? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-a-layer-name-panel-must-be-active")
+                        : null;
             }
         };
     }
@@ -166,12 +167,11 @@
 
     public EnableCheck createWindowWithLayerViewPanelMustBeActiveCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                return (
-                    
!(workbenchContext.getWorkbench().getFrame().getActiveInternalFrame()
-                        instanceof LayerViewPanelProxy))
-                    ? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-a-layer-view-panel-must-be-active")
-                    : null;
+                return (!(workbenchContext.getWorkbench().getFrame()
+                        .getActiveInternalFrame() instanceof 
LayerViewPanelProxy)) ? 
get("com.vividsolutions.jump.workbench.plugin.A-window-with-a-layer-view-panel-must-be-active")
+                        : null;
             }
         };
     }
@@ -178,19 +178,15 @@
 
     public EnableCheck createOnlyOneLayerMayHaveSelectedFeaturesCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                Collection layersWithSelectedFeatures =
-                    ((SelectionManagerProxy) workbenchContext
-                        .getWorkbench()
-                        .getFrame()
-                        .getActiveInternalFrame())
-                        .getSelectionManager()
-                        .getFeatureSelection()
+                final Collection layersWithSelectedFeatures = 
((SelectionManagerProxy) workbenchContext
+                        .getWorkbench().getFrame().getActiveInternalFrame())
+                        .getSelectionManager().getFeatureSelection()
                         .getLayersWithSelectedItems();
 
-                return (layersWithSelectedFeatures.size() > 1)
-                    ? 
get("com.vividsolutions.jump.workbench.plugin.Only-one-layer-may-have-selected-features")
-                    : null;
+                return (layersWithSelectedFeatures.size() > 1) ? 
get("com.vividsolutions.jump.workbench.plugin.Only-one-layer-may-have-selected-features")
+                        : null;
             }
         };
     }
@@ -197,17 +193,13 @@
 
     public EnableCheck createOnlyOneLayerMayHaveSelectedItemsCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                Collection layersWithSelectedItems =
-                    ((SelectionManagerProxy) workbenchContext
-                        .getWorkbench()
-                        .getFrame()
-                        .getActiveInternalFrame())
-                        .getSelectionManager()
-                        .getLayersWithSelectedItems();
-                return (layersWithSelectedItems.size() > 1)
-                    ? 
get("com.vividsolutions.jump.workbench.plugin.Only-one-layer-may-have-selected-items")
-                    : null;
+                final Collection layersWithSelectedItems = 
((SelectionManagerProxy) workbenchContext
+                        .getWorkbench().getFrame().getActiveInternalFrame())
+                        .getSelectionManager().getLayersWithSelectedItems();
+                return (layersWithSelectedItems.size() > 1) ? 
get("com.vividsolutions.jump.workbench.plugin.Only-one-layer-may-have-selected-items")
+                        : null;
             }
         };
     }
@@ -214,13 +206,11 @@
 
     public EnableCheck createSelectedItemsLayersMustBeEditableCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                for (Layer layer : ((SelectionManagerProxy)workbenchContext
-                        .getWorkbench()
-                        .getFrame()
-                        .getActiveInternalFrame())
-                        .getSelectionManager()
-                        .getLayersWithSelectedItems()) {
+                for (final Layer layer : ((SelectionManagerProxy) 
workbenchContext
+                        .getWorkbench().getFrame().getActiveInternalFrame())
+                        .getSelectionManager().getLayersWithSelectedItems()) {
                     if (!layer.isEditable()) {
                         return getMessage(
                                 
"com.vividsolutions.jump.workbench.plugin.Selected-items-layers-must-be-editable",
@@ -235,6 +225,7 @@
 
     public EnableCheck createExactlyNCategoriesMustBeSelectedCheck(final int 
n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -250,16 +241,18 @@
         };
     }
 
-    public EnableCheck createExactlyNLayerablesMustBeSelectedCheck(
-        final int n,
-        final Class layerableClass) {
+    public EnableCheck createExactlyNLayerablesMustBeSelectedCheck(final int n,
+            final Class layerableClass) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                LayerNamePanel lnp = workbenchContext.getLayerableNamePanel();
+                final LayerNamePanel lnp = workbenchContext
+                        .getLayerableNamePanel();
                 if (lnp instanceof LayerNamePanel
-                    && n == lnp.selectedNodes(layerableClass).size())
-                  return null;
-                
+                        && n == lnp.selectedNodes(layerableClass).size()) {
+                    return null;
+                }
+
                 String msg;
                 if (n == 1) {
                     msg = 
get("com.vividsolutions.jump.workbench.plugin.Exactly-one-layer-must-be-selected");
@@ -268,7 +261,7 @@
                             
"com.vividsolutions.jump.workbench.plugin.Exactly-n-layers-must-be-selected",
                             n);
                 }
-                
+
                 return msg;
             }
         };
@@ -280,6 +273,7 @@
 
     public EnableCheck createAtLeastNCategoriesMustBeSelectedCheck(final int 
n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -295,12 +289,12 @@
         };
     }
 
-    public EnableCheck createAtLeastNLayerablesMustBeSelectedCheck(
-        final int n,
-        final Class layerableClass) {
+    public EnableCheck createAtLeastNLayerablesMustBeSelectedCheck(final int n,
+            final Class layerableClass) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                LayerNamePanel layerNamePanel = workbenchContext
+                final LayerNamePanel layerNamePanel = workbenchContext
                         .getLayerableNamePanel();
                 String msg;
                 if (n == 1) {
@@ -323,6 +317,7 @@
 
     public EnableCheck createAtLeastNLayersMustBeEditableCheck(final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -340,8 +335,10 @@
 
     public EnableCheck createAtLeastOneVisibleLayersMustBeEditableCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                for (Layer layer : 
workbenchContext.getLayerManager().getLayers()) {
+                for (final Layer layer : workbenchContext.getLayerManager()
+                        .getLayers()) {
                     if (layer.isVisible() && layer.isEditable()) {
                         return null;
                     }
@@ -350,15 +347,19 @@
             }
         };
     }
-    
+
     public EnableCheck createExactlyOneSelectedLayerMustBeEditableCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                String msg = 
get("com.vividsolutions.jump.workbench.plugin.Exactly-one-selected-layer-must-be-editable");
-                Layer[] layers = 
workbenchContext.getLayerableNamePanel().getSelectedLayers();
+                final String msg = 
get("com.vividsolutions.jump.workbench.plugin.Exactly-one-selected-layer-must-be-editable");
+                final Layer[] layers = workbenchContext.getLayerableNamePanel()
+                        .getSelectedLayers();
                 int countSelectedEditable = 0;
-                for (int i = 0 ; i < layers.length ; i++) {
-                    if (layers[i].isEditable()) countSelectedEditable++;
+                for (final Layer layer : layers) {
+                    if (layer.isEditable()) {
+                        countSelectedEditable++;
+                    }
                 }
                 return 1 != countSelectedEditable ? msg : null;
             }
@@ -367,8 +368,10 @@
 
     public EnableCheck createAtLeastNLayerablesMustExistCheck(final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                LayerManager layerManager = workbenchContext.getLayerManager();
+                final LayerManager layerManager = workbenchContext
+                        .getLayerManager();
                 String msg;
                 if (n == 1) {
                     msg = 
get("com.vividsolutions.jump.workbench.plugin.At-least-one-layerables-must-exist");
@@ -377,8 +380,8 @@
                             
"com.vividsolutions.jump.workbench.plugin.At-least-n-layerables-must-exist",
                             n);
                 }
-                return (layerManager == null || n > 
layerManager.getLayerables(Layerable.class).size()) ? msg
-                        : null;
+                return (layerManager == null || n > layerManager.getLayerables(
+                        Layerable.class).size()) ? msg : null;
             }
         };
     }
@@ -385,8 +388,10 @@
 
     public EnableCheck createAtLeastNLayersMustExistCheck(final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                LayerManager layerManager = workbenchContext.getLayerManager();
+                final LayerManager layerManager = workbenchContext
+                        .getLayerManager();
                 String msg;
                 if (n == 1) {
                     msg = 
get("com.vividsolutions.jump.workbench.plugin.At-least-one-layer-must-exist");
@@ -403,6 +408,7 @@
 
     public EnableCheck createAtMostNLayersMustExistCheck(final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -420,6 +426,7 @@
 
     public EnableCheck createExactlyNVectorsMustBeDrawnCheck(final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -438,6 +445,7 @@
     // [Jon Aquino]
     public EnableCheck createAtLeastNVectorsMustBeDrawnCheck(final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -453,46 +461,52 @@
     }
 
     public EnableCheck createAtLeastNFeaturesMustBeSelectedCheck(final int n) {
-      return new EnableCheck() {
-        public String check(JComponent component) {
-          String msg;
-          if (n == 1) {
-            msg = 
get("com.vividsolutions.jump.workbench.plugin.At-least-one-feature-must-be-selected");
-          } else {
-            msg = getMessage(
-                
"com.vividsolutions.jump.workbench.plugin.At-least-n-features-must-be-selected",
-                n);
-          }
-  
-          JInternalFrame f = workbenchContext.getWorkbench().getFrame()
-              .getActiveInternalFrame();
-  
-          return (f != null && f instanceof SelectionManagerProxy && n > 
((SelectionManagerProxy) f)
-              .getSelectionManager().getFeaturesWithSelectedItemsCount()) ? msg
-              : null;
-        }
-      };
+        return new EnableCheck() {
+            @Override
+            public String check(JComponent component) {
+                String msg;
+                if (n == 1) {
+                    msg = 
get("com.vividsolutions.jump.workbench.plugin.At-least-one-feature-must-be-selected");
+                } else {
+                    msg = getMessage(
+                            
"com.vividsolutions.jump.workbench.plugin.At-least-n-features-must-be-selected",
+                            n);
+                }
+
+                final JInternalFrame f = workbenchContext.getWorkbench()
+                        .getFrame().getActiveInternalFrame();
+
+                return (f != null && f instanceof SelectionManagerProxy && n > 
((SelectionManagerProxy) f)
+                        .getSelectionManager()
+                        .getFeaturesWithSelectedItemsCount()) ? msg : null;
+            }
+        };
     }
 
     public EnableCheck createAtLeastNItemsMustBeSelectedCheck(final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                JInternalFrame iFrame = workbenchContext.getWorkbench()
-                       .getFrame().getActiveInternalFrame();
+                final JInternalFrame iFrame = workbenchContext.getWorkbench()
+                        .getFrame().getActiveInternalFrame();
                 int selected = 0;
-                try{
-                    // Modified bu sstein [13. Aug. 2006], [13. Mar. 2008] 
mmichaud [11. Dec. 2011]
-                    // It should now works homogeneously for ViewPnale, 
ViewAttributes and InfoPanel
-                    selected = 
((SelectionManagerProxy)iFrame).getSelectionManager().getSelectedItems().size();
+                try {
+                    // Modified bu sstein [13. Aug. 2006], [13. Mar. 2008]
+                    // mmichaud [11. Dec. 2011]
+                    // It should now works homogeneously for ViewPnale,
+                    // ViewAttributes and InfoPanel
+                    selected = ((SelectionManagerProxy) iFrame)
+                            .getSelectionManager().getSelectedItems().size();
+                } catch (final Exception e) {
+                    // -- sstein:
+                    // == eat exception ==
+                    System.out
+                            .println("eat exception @ 
EnableCheckFactory.createAtLeastNItemsMustBeSelectedCheck(i) if a non 
taskframe(or child) is selected");
+                    // necessary if iFrame is OutputFrame or something
+                    // and i dont know how to test for alle iFrames which exist
+                    // or rather i do not know
+                    // which are the ones accessible to the SelectionManager
                 }
-                catch(Exception e){
-                       //-- sstein:
-                       //== eat exception ==
-                       System.out.println("eat exception @ 
EnableCheckFactory.createAtLeastNItemsMustBeSelectedCheck(i) if a non 
taskframe(or child) is selected");                    
-                       //necessary if iFrame is OutputFrame or something 
-                       //and i dont know how to test for alle iFrames which 
exist or rather i do not know
-                       //which are the ones accessible to the SelectionManager
-                }
                 String retVal;
                 String msg;
                 if (n == 1) {
@@ -514,6 +528,7 @@
 
     public EnableCheck createExactlyNFeaturesMustBeSelectedCheck(final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -533,6 +548,7 @@
 
     public EnableCheck createExactlyNItemsMustBeSelectedCheck(final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -550,8 +566,10 @@
         };
     }
 
-    public EnableCheck createExactlyNLayersMustHaveSelectedItemsCheck(final 
int n) {
+    public EnableCheck createExactlyNLayersMustHaveSelectedItemsCheck(
+            final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -568,9 +586,11 @@
             }
         };
     }
-    
-    public EnableCheck createExactlyNFeaturesMustHaveSelectedItemsCheck(final 
int n) {
+
+    public EnableCheck createExactlyNFeaturesMustHaveSelectedItemsCheck(
+            final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -586,12 +606,14 @@
                         .getFeaturesWithSelectedItemsCount()) ? msg : null;
             }
         };
-    }    
+    }
 
     public EnableCheck createSelectedLayersMustBeEditableCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                for (Layer layer : 
workbenchContext.getLayerableNamePanel().getSelectedLayers()) {
+                for (final Layer layer : workbenchContext
+                        .getLayerableNamePanel().getSelectedLayers()) {
                     if (!layer.isEditable()) {
                         return getMessage(
                                 
"com.vividsolutions.jump.workbench.plugin.Selected-layers-must-be-editable",
@@ -605,36 +627,40 @@
 
     public EnableCheck createFenceMustBeDrawnCheck() {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                LayerViewPanel layerViewPanel = 
workbenchContext.getLayerViewPanel();  
-                return ( layerViewPanel == null || //[UT] 20.10.2005 not quite 
the error mesg
-                                null == layerViewPanel.getFence())
-                    ? 
get("com.vividsolutions.jump.workbench.plugin.A-fence-must-be-drawn")
+                final LayerViewPanel layerViewPanel = workbenchContext
+                        .getLayerViewPanel();
+                return (layerViewPanel == null || // [UT] 20.10.2005 not quite
+                                                  // the error mesg
+                null == layerViewPanel.getFence()) ? 
get("com.vividsolutions.jump.workbench.plugin.A-fence-must-be-drawn")
                         : null;
             }
         };
     }
 
-    public EnableCheck createBetweenNAndMVectorsMustBeDrawnCheck(final int 
min, final int max) {
+    public EnableCheck createBetweenNAndMVectorsMustBeDrawnCheck(final int min,
+            final int max) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
-                return ((vectorCount() > max) || (vectorCount() < min))
-                    ? getMessage(
+                return ((vectorCount() > max) || (vectorCount() < min)) ? 
getMessage(
                         
"com.vividsolutions.jump.workbench.plugin.Between-and-vectors-must-be-drawn",
                         min, max)
-                    : null;
+                        : null;
             }
         };
     }
 
     int vectorCount() {
-        return new 
WarpingVectorLayerFinder(workbenchContext).getVectors().size();
+        return new WarpingVectorLayerFinder(workbenchContext).getVectors()
+                .size();
     }
 
-
     public EnableCheck createAtLeastNFeaturesMustHaveSelectedItemsCheck(
             final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
                 String msg;
                 if (n == 1) {
@@ -653,116 +679,124 @@
     }
 
     /**
-     * Check the current selection in layernamepanel against 2 lists of 
layerable
-     * classes. Returns an error message if at least one layerable is not an
-     * instance of the first class array or if at least one layerable is an
-     * instance of the second class array.
+     * Check the current selection in layernamepanel against 2 lists of
+     * layerable classes. Returns an error message if at least one layerable is
+     * not an instance of the first class array or if at least one layerable is
+     * an instance of the second class array.
      * 
-     * @param classes layerables must all be instances of one of these classes
-     * @param excluded no layerable must be an instances of one of these 
classes
+     * @param classes
+     *            layerables must all be instances of one of these classes
+     * @param excluded
+     *            no layerable must be an instances of one of these classes
      * @return error message or null
      */
-    public EnableCheck createSelectedLayerablesMustBeEither(final Class[] 
classes, final Class[] excluded) {
-      return new EnableCheck() {
-        public String check(JComponent component) {
-            StringBuilder types = new StringBuilder("[");
-            for (Class clz : classes) {
-              String clzName = get(clz.getCanonicalName());
-              types.append(types.length() > 1 ? ", " + clzName : clzName);
-            }
-            types.append("]");
-            StringBuilder exclusion = new StringBuilder("[");
-            for (Class clz : excluded) {
-                String clzName = get(clz.getCanonicalName());
-                exclusion.append(exclusion.length() > 1 ? ", " + clzName : 
clzName);
-            }
-            exclusion.append("]");
-  
-            String msg = getMessage(
-                "plugin.EnableCheckFactory.selected-layers-must-be-of-type",
-                   types, exclusion);
-  
-            // fetch layer(ables)
-            LayerNamePanel lnp = workbenchContext.getLayerNamePanel();
-            Layerable[] layerables;
-            if (lnp instanceof LayerableNamePanel)
-                layerables = ((LayerableNamePanel) 
lnp).getSelectedLayerables().toArray(
-                  new Layerable[0]);
-            else
-                layerables = lnp.getSelectedLayers();
-  
-          for (Layerable layerable : layerables) {
-            boolean ok = false;
-            for (Class clz : classes) {
-                if (clz.isAssignableFrom(layerable.getClass())) {
-                    ok = true;
-                    for (Class exc : excluded) {
-                        if (exc.isAssignableFrom(layerable.getClass())) {
-                            ok = false;
+    public EnableCheck createSelectedLayerablesMustBeEither(
+            final Class[] classes, final Class[] excluded) {
+        return new EnableCheck() {
+            @Override
+            public String check(JComponent component) {
+                final StringBuilder types = new StringBuilder("[");
+                for (final Class clz : classes) {
+                    final String clzName = get(clz.getCanonicalName());
+                    types.append(types.length() > 1 ? ", " + clzName : 
clzName);
+                }
+                types.append("]");
+                final StringBuilder exclusion = new StringBuilder("[");
+                for (final Class clz : excluded) {
+                    final String clzName = get(clz.getCanonicalName());
+                    exclusion.append(exclusion.length() > 1 ? ", " + clzName
+                            : clzName);
+                }
+                exclusion.append("]");
+
+                final String msg = getMessage(
+                        
"plugin.EnableCheckFactory.selected-layers-must-be-of-type",
+                        types, exclusion);
+
+                // fetch layer(ables)
+                final LayerNamePanel lnp = 
workbenchContext.getLayerNamePanel();
+                Layerable[] layerables;
+                if (lnp instanceof LayerableNamePanel) {
+                    layerables = ((LayerableNamePanel) lnp)
+                            .getSelectedLayerables().toArray(new Layerable[0]);
+                } else {
+                    layerables = lnp.getSelectedLayers();
+                }
+
+                for (final Layerable layerable : layerables) {
+                    boolean ok = false;
+                    for (final Class clz : classes) {
+                        if (clz.isAssignableFrom(layerable.getClass())) {
+                            ok = true;
+                            for (final Class exc : excluded) {
+                                if 
(exc.isAssignableFrom(layerable.getClass())) {
+                                    ok = false;
+                                    break;
+                                }
+                            }
+                        }
+                        if (ok) {
                             break;
                         }
                     }
+                    if (!ok) {
+                        return msg;
+                    }
                 }
-                if (ok) {
-                    break;
-                }
+                return null;
             }
-            if (!ok)
-              return msg;
-          }
-          return null;
-        }
-      };
+        };
     }
 
-    public EnableCheck createSelectedLayerablesMustBeEither(final Class[] 
classes) {
-      return createSelectedLayerablesMustBeEither(new Class[] { Layer.class },
-          new Class[0]);
+    public EnableCheck createSelectedLayerablesMustBeEither(
+            final Class[] classes) {
+        return createSelectedLayerablesMustBeEither(
+                new Class[] { Layer.class }, new Class[0]);
     }
 
-  /**
-   * checks if selected layerables are vector layers. unfortunately
-   * {@link ReferencedImagesLayer}s are derived from OJ vector {@link Layer}.
-   * hence this method internally includes {@link Layer} but excludes
-   * {@link ReferencedImagesLayer}.
-   * 
-   * @see EnableCheckFactory#createSelectedLayerablesMustBeEither(Class[],
-   *      Class[])
-   * @return error message or null
-   */
+    /**
+     * checks if selected layerables are vector layers. unfortunately
+     * {@link ReferencedImagesLayer}s are derived from OJ vector {@link Layer}.
+     * hence this method internally includes {@link Layer} but excludes
+     * {@link ReferencedImagesLayer}.
+     * 
+     * @see EnableCheckFactory#createSelectedLayerablesMustBeEither(Class[],
+     *      Class[])
+     * @return error message or null
+     */
     public EnableCheck createSelectedLayerablesMustBeVectorLayers() {
-      return createSelectedLayerablesMustBeEither(new Class[] { Layer.class },
-          new Class[] { ReferencedImagesLayer.class });
+        return createSelectedLayerablesMustBeEither(
+                new Class[] { Layer.class },
+                new Class[] { ReferencedImagesLayer.class });
     }
-  
+
     public EnableCheck createSelectedLayerablesMustBeWMSLayers() {
-      return createSelectedLayerablesMustBeEither(new Class[] { WMSLayer.class 
});
+        return createSelectedLayerablesMustBeEither(new Class[] { 
WMSLayer.class });
     }
-  
+
     public EnableCheck createSelectedLayerablesMustBeRasterImageLayers() {
-      return createSelectedLayerablesMustBeEither(new Class[] { 
RasterImageLayer.class });
+        return createSelectedLayerablesMustBeEither(new Class[] { 
RasterImageLayer.class });
     }
-  
+
     public EnableCheck createSelectedLayerablesMustBeReferencedImagesLayers() {
-      return createSelectedLayerablesMustBeEither(new Class[] { 
ReferencedImagesLayer.class });
+        return createSelectedLayerablesMustBeEither(new Class[] { 
ReferencedImagesLayer.class });
     }
 
-    
     /**
-     * Giuseppe Aruta - 2015-01-13
-     * RasterImageLayer.class
-     * checks how many bands a Raster Image Layer (Sextante) has
+     * Giuseppe Aruta - 2015-01-13 RasterImageLayer.class checks how many bands
+     * a Raster Image Layer (Sextante) has
      */
     public EnableCheck createRasterImageLayerExactlyNBandsMustExistCheck(
             final int n) {
         return new EnableCheck() {
+            @Override
             public String check(JComponent component) {
 
-                RasterImageLayer rLayer = (RasterImageLayer) LayerTools
+                final RasterImageLayer rLayer = (RasterImageLayer) LayerTools
                         .getSelectedLayerable(workbenchContext.getWorkbench()
                                 .getContext(), RasterImageLayer.class);
 
-                int numbands = rLayer.getNumBands();
+                final int numbands = rLayer.getNumBands();
 
                 String msg;
                 if (n == 1) {
@@ -773,9 +807,42 @@
                             n);
                 }
                 return (n != numbands) ? msg : null;
-               }
+            }
         };
     }
-    
-    
+
+    /**
+     * Check that at least n RasterImageLayer.class layers have been loaded
+     * 
+     * @param number
+     *            of RasterImageLayer.class layers
+     * @return error message or null
+     */
+    public EnableCheck createAtLeastNRasterImageLayersMustExistCheck(final int 
n) {
+        return new EnableCheck() {
+            @Override
+            public String check(JComponent component) {
+                final LayerManager layerManager = workbenchContext
+                        .getLayerManager();
+                String msg;
+                if (n == 1) {
+                    msg = 
get("com.vividsolutions.jump.workbench.plugin.At-least-one-layerables-must-exist")
+                            + " ("
+                            + 
get("org.openjump.core.rasterimage.AddRasterImageLayerWizard.Sextante-Raster-Image")
+                            + ")";
+                } else {
+                    msg = getMessage(
+                            
"com.vividsolutions.jump.workbench.plugin.At-least-n-layerables-must-exist",
+                            new Object[] { n })
+                            + " ("
+                            + 
get("org.openjump.core.rasterimage.AddRasterImageLayerWizard.Sextante-Raster-Image")
+                            + ")";
+                    ;
+                }
+                return (layerManager == null || n > layerManager
+                        .getRasterImageLayers().size()) ? msg : 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