Revision: 6376
          http://sourceforge.net/p/jump-pilot/code/6376
Author:   ma15569
Date:     2020-08-17 05:19:44 +0000 (Mon, 17 Aug 2020)
Log Message:
-----------
Try  to solve error found by Ede:  [JPP-Devel] bsh sextante NPE in latest 
checkout. 2020-08-04.  Tecnically SextanteGUI.initialize() will be enough to 
load GUI.  Pratically some aspects of GUI are substituted, like "Raster 
Calculator" buttons and input areas, with the standard interface.

Modified Paths:
--------------
    
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteToolboxPlugin.java

Modified: 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteToolboxPlugin.java
===================================================================
--- 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteToolboxPlugin.java
 2020-08-16 16:48:26 UTC (rev 6375)
+++ 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteToolboxPlugin.java
 2020-08-17 05:19:44 UTC (rev 6376)
@@ -28,167 +28,176 @@
 import es.unex.sextante.openjump.language.I18NPlug;
 
 public class SextanteToolboxPlugin implements PlugIn {
-    //   static WorkbenchFrame wFrame = JUMPWorkbench.getInstance().getFrame();
+       //   static WorkbenchFrame wFrame = 
JUMPWorkbench.getInstance().getFrame();
 
-    @Override
-    public boolean execute(final PlugInContext context) throws Exception {
-        // [Giuseppe Aruta 2018-04-08] open as OJ internal frame
-        // Deactivated to further tests as algorithms are not correctly 
selected
-        // in the JInternalFrame
+       @Override
+       public boolean execute(final PlugInContext context) throws Exception {
+               // [Giuseppe Aruta 2018-04-08] open as OJ internal frame
+               // Deactivated to further tests as algorithms are not correctly 
selected
+               // in the JInternalFrame
 
-        // JFrame frame = context.getWorkbenchFrame();
-        // for (JInternalFrame iFrame : wFrame.getInternalFrames()) {
-        // if (iFrame instanceof ToolboxFrame) {
-        //
-        // iFrame.toFront();
-        // return false;
-        //
-        // }
-        // }
-        // ToolboxFrame tframe = new ToolboxFrame(frame);
-        // wFrame.addInternalFrame(tframe, true, true);
-        // SextanteGUI.getInputFactory().clearDataObjects();
+               // JFrame frame = context.getWorkbenchFrame();
+               // for (JInternalFrame iFrame : wFrame.getInternalFrames()) {
+               // if (iFrame instanceof ToolboxFrame) {
+               //
+               // iFrame.toFront();
+               // return false;
+               //
+               // }
+               // }
+               // ToolboxFrame tframe = new ToolboxFrame(frame);
+               // wFrame.addInternalFrame(tframe, true, true);
+               // SextanteGUI.getInputFactory().clearDataObjects();
 
-        SextanteGUI.getGUIFactory().showToolBoxDialog();
+               SextanteGUI.getGUIFactory().showToolBoxDialog();
 
-        return true;
+               return true;
 
-    }
+       }
 
-    @Override
-    public String getName() {
+       @Override
+       public String getName() {
 
-        return I18NPlug
-                
.getI18N("es.unex.sextante.kosmo.extensions.SextanteToolboxPlugin.Sextante-toolbox");
+               return I18NPlug
+                               
.getI18N("es.unex.sextante.kosmo.extensions.SextanteToolboxPlugin.Sextante-toolbox");
 
-    }
+       }
 
-    public void initialize_old(final PlugInContext context) throws Exception {
+       public void initialize_old(final PlugInContext context) throws 
Exception {
 
-        context.getFeatureInstaller().addMainMenuPlugin(this,
-                new String[] { "Sextante" }, getName(), false, getIcon(), 
null);
+               context.getFeatureInstaller().addMainMenuPlugin(this,
+                               new String[] { "Sextante" }, getName(), false, 
getIcon(), null);
 
-    }
+       }
 
-    @Override
-    public void initialize(PlugInContext context) throws Exception {
-        final String sextantePath = getJarsFolder();
-        Sextante.initialize(sextantePath);
-        SextanteGUI.setSextantePath(sextantePath);
+       @Override
+       public void initialize(PlugInContext context) throws Exception {
+               final String sextantePath = getJarsFolder();
+               Sextante.initialize(sextantePath);
+               SextanteGUI.setSextantePath(sextantePath);
 
-        final List<IAlgorithmProvider> algorithmProviders = 
getAlgorithmProvidersFromFolder(sextantePath);
-        for (final IAlgorithmProvider provider : algorithmProviders) {
-            if (!containsProvider(provider)) {
-                SextanteGUI.addAlgorithmProvider(provider);
-            }
-        }
-        SextanteGUI.initialize(sextantePath);
-        SextanteGUI.setMainFrame(context.getWorkbenchFrame());
-        SextanteGUI.setOutputFactory(new OpenJUMPOutputFactory(context
-                .getWorkbenchContext()));
-        SextanteGUI.setGUIFactory(new OpenJUMPGUIFactory());
-        SextanteGUI.setInputFactory(new OpenJUMPInputFactory(context
-                .getWorkbenchContext()));
-        SextanteGUI
-                .setPostProcessTaskFactory(new 
OpenJUMPPostProcessTaskFactory());
-        Logger.info("Sextante help file in folder: "
-                + getJarsFolder().concat(File.separator).concat("help"));
+               final List<IAlgorithmProvider> algorithmProviders = 
getAlgorithmProvidersFromFolder(sextantePath);
+               for (final IAlgorithmProvider provider : algorithmProviders) {
+                       if (!containsProvider(provider)) {
+                               SextanteGUI.addAlgorithmProvider(provider);
+                       }
+               }
+               // [Giuseppe Aruta 2020-08-18] Try  to solve error found by Ede
+               // [JPP-Devel] bsh sextante NPE in latest checkout. 2020-08-04
+               // Tecnically SextanteGUI.initialize() will be enough to load 
GUI
+               // Pratically some aspects of GUI are substitued, like "Raster 
Calculator"
+               // buttons and input areas, with standard interface.
 
-        context.getFeatureInstaller().addMainMenuPlugin(this,
-                new String[] { "Sextante" }, getName(), false, getIcon(), 
null);
+               SextanteGUI.initialize();
+               SextanteGUI.initialize(sextantePath);
+               SextanteGUI.setMainFrame(context.getWorkbenchFrame());
+               SextanteGUI.setOutputFactory(new OpenJUMPOutputFactory(context
+                               .getWorkbenchContext()));
+               SextanteGUI.setGUIFactory(new OpenJUMPGUIFactory());
+               SextanteGUI.setInputFactory(new OpenJUMPInputFactory(context
+                               .getWorkbenchContext()));
+               SextanteGUI
+               .setPostProcessTaskFactory(new 
OpenJUMPPostProcessTaskFactory());
 
-    }
 
-    private String getJarsFolder() {
-        final String path = JUMPWorkbench.getInstance().getPlugInManager()
-                .getPlugInDirectory().getAbsolutePath();
-        final String sPath = path.concat(File.separator).concat("sextante");
-        //   LOGGER.info("Sextante jar folder: " + sPath);
-        return sPath;
-    }
+               Logger.info("Sextante help file in folder: "
+                               + 
getJarsFolder().concat(File.separator).concat("help"));
 
-    // [Giuseppe Aruta 2018-04-08] Activated connection to external providers 
(Grass, Saga, R...)
-    private boolean containsProvider(IAlgorithmProvider provider) {
-        final List<IAlgorithmProvider> algorithmProviders = SextanteGUI
-                .getAlgorithmProviders();
-        for (final IAlgorithmProvider iAlgorithmProvider : algorithmProviders) 
{
-            if (iAlgorithmProvider.getClass().isAssignableFrom(
-                    provider.getClass())) {
-                return true;
-            }
-        }
-        return false;
-    }
+               context.getFeatureInstaller().addMainMenuPlugin(this,
+                               new String[] { "Sextante" }, getName(), false, 
getIcon(), null);
 
-    public ImageIcon getIcon() {
-        return new ImageIcon(SextanteGUI.class.getClassLoader().getResource(
-                "images/module2.png"));
+       }
 
-    }
+       private String getJarsFolder() {
+               final String path = 
JUMPWorkbench.getInstance().getPlugInManager()
+                               .getPlugInDirectory().getAbsolutePath();
+               final String sPath = 
path.concat(File.separator).concat("sextante");
+               //   LOGGER.info("Sextante jar folder: " + sPath);
+               return sPath;
+       }
 
-    private List<IAlgorithmProvider> getAlgorithmProvidersFromFolder(
-            String sFolder) {
-        final Set<String> algorithmProviderNames = new TreeSet<String>();
-        final List<IAlgorithmProvider> providers = new 
ArrayList<IAlgorithmProvider>();
+       // [Giuseppe Aruta 2018-04-08] Activated connection to external 
providers (Grass, Saga, R...)
+       private boolean containsProvider(IAlgorithmProvider provider) {
+               final List<IAlgorithmProvider> algorithmProviders = SextanteGUI
+                               .getAlgorithmProviders();
+               for (final IAlgorithmProvider iAlgorithmProvider : 
algorithmProviders) {
+                       if (iAlgorithmProvider.getClass().isAssignableFrom(
+                                       provider.getClass())) {
+                               return true;
+                       }
+               }
+               return false;
+       }
 
-        final File folder = new File(sFolder);
-        final File[] directoryFiles = folder.listFiles();
-        for (int i = 0; i < directoryFiles.length; i++) {
-            if (!directoryFiles[i].isDirectory()) {
-                final String sFilename = directoryFiles[i].getName();
-                if (sFilename.endsWith(".jar")) {
-                    algorithmProviderNames
-                            
.addAll(addAlgorithmProvidersFromFolder(directoryFiles[i]
-                                    .getAbsolutePath()));
-                }
-            }
-        }
-        for (final String algProviderName : algorithmProviderNames) {
-            try {
-                final Class<?> clazz = Class.forName(algProviderName);
-                if (!clazz.isInterface()) {
-                    final Object obj = clazz.newInstance();
-                    if ((obj instanceof IAlgorithmProvider)) {
-                        providers.add((IAlgorithmProvider) obj);
-                    }
-                }
-            } catch (final Exception ex) {
-                Logger.error("Error on loading Sextante algorithm provider: ", 
ex);
-            }
-        }
-        return providers;
-    }
+       public ImageIcon getIcon() {
+               return new 
ImageIcon(SextanteGUI.class.getClassLoader().getResource(
+                               "images/module2.png"));
 
-    private List<String> addAlgorithmProvidersFromFolder(String sFilename) {
-        final ArrayList<String> algorithmProviders = new ArrayList<String>();
-        ZipFile zip = null;
-        try {
-            zip = new ZipFile(sFilename);
-            final Enumeration<? extends ZipEntry> entries = zip.entries();
-            while (entries.hasMoreElements()) {
-                final ZipEntry entry = entries.nextElement();
-                final String sName = entry.getName();
-                if ((!entry.isDirectory())
-                        && (sName.toLowerCase()
-                                .endsWith("algorithmprovider.class"))) {
-                    final String sClassName = sName.substring(0,
-                            sName.lastIndexOf('.')).replace('/', '.');
+       }
 
-                    algorithmProviders.add(sClassName);
-                }
-            }
-            return algorithmProviders;
-        } catch (final Exception e) {
-            Logger.error("Error on adding Sextante algorithm provider: ", e);
-        } finally {
-            if (zip != null) {
-                try {
-                    zip.close();
-                } catch (final IOException e) {
-                }
-            }
-        }
-        return algorithmProviders;
-    }
+       private List<IAlgorithmProvider> getAlgorithmProvidersFromFolder(
+                       String sFolder) {
+               final Set<String> algorithmProviderNames = new 
TreeSet<String>();
+               final List<IAlgorithmProvider> providers = new 
ArrayList<IAlgorithmProvider>();
 
+               final File folder = new File(sFolder);
+               final File[] directoryFiles = folder.listFiles();
+               for (int i = 0; i < directoryFiles.length; i++) {
+                       if (!directoryFiles[i].isDirectory()) {
+                               final String sFilename = 
directoryFiles[i].getName();
+                               if (sFilename.endsWith(".jar")) {
+                                       algorithmProviderNames
+                                       
.addAll(addAlgorithmProvidersFromFolder(directoryFiles[i]
+                                                       .getAbsolutePath()));
+                               }
+                       }
+               }
+               for (final String algProviderName : algorithmProviderNames) {
+                       try {
+                               final Class<?> clazz = 
Class.forName(algProviderName);
+                               if (!clazz.isInterface()) {
+                                       final Object obj = clazz.newInstance();
+                                       if ((obj instanceof 
IAlgorithmProvider)) {
+                                               
providers.add((IAlgorithmProvider) obj);
+                                       }
+                               }
+                       } catch (final Exception ex) {
+                               Logger.error("Error on loading Sextante 
algorithm provider: ", ex);
+                       }
+               }
+               return providers;
+       }
+
+       private List<String> addAlgorithmProvidersFromFolder(String sFilename) {
+               final ArrayList<String> algorithmProviders = new 
ArrayList<String>();
+               ZipFile zip = null;
+               try {
+                       zip = new ZipFile(sFilename);
+                       final Enumeration<? extends ZipEntry> entries = 
zip.entries();
+                       while (entries.hasMoreElements()) {
+                               final ZipEntry entry = entries.nextElement();
+                               final String sName = entry.getName();
+                               if ((!entry.isDirectory())
+                                               && (sName.toLowerCase()
+                                                               
.endsWith("algorithmprovider.class"))) {
+                                       final String sClassName = 
sName.substring(0,
+                                                       
sName.lastIndexOf('.')).replace('/', '.');
+
+                                       algorithmProviders.add(sClassName);
+                               }
+                       }
+                       return algorithmProviders;
+               } catch (final Exception e) {
+                       Logger.error("Error on adding Sextante algorithm 
provider: ", e);
+               } finally {
+                       if (zip != null) {
+                               try {
+                                       zip.close();
+                               } catch (final IOException e) {
+                               }
+                       }
+               }
+               return algorithmProviders;
+       }
+
 }



_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to