Revision: 5755
          http://sourceforge.net/p/jump-pilot/code/5755
Author:   ma15569
Date:     2018-04-08 16:53:22 +0000 (Sun, 08 Apr 2018)
Log Message:
-----------
Reactivated previous frames: the changes have to be defined at 
Sextante-GUI.class level

Modified Paths:
--------------
    
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteHelpPlugIn.java
    
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteToolboxPlugin.java
    
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/help/SextanteHelpFrame.java
    
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/toolbox/ToolboxFrame.java

Added Paths:
-----------
    plug-ins/SextantePlugIn/dist/ojsextante_binding_apr2018a.jar

Added: plug-ins/SextantePlugIn/dist/ojsextante_binding_apr2018a.jar
===================================================================
(Binary files differ)

Index: plug-ins/SextantePlugIn/dist/ojsextante_binding_apr2018a.jar
===================================================================
--- plug-ins/SextantePlugIn/dist/ojsextante_binding_apr2018a.jar        
2018-04-08 13:39:52 UTC (rev 5754)
+++ plug-ins/SextantePlugIn/dist/ojsextante_binding_apr2018a.jar        
2018-04-08 16:53:22 UTC (rev 5755)

Property changes on: 
plug-ins/SextantePlugIn/dist/ojsextante_binding_apr2018a.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteHelpPlugIn.java
===================================================================
--- 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteHelpPlugIn.java
    2018-04-08 13:39:52 UTC (rev 5754)
+++ 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteHelpPlugIn.java
    2018-04-08 16:53:22 UTC (rev 5755)
@@ -1,8 +1,6 @@
 package es.unex.sextante.openjump.extensions;
 
 import javax.swing.ImageIcon;
-import javax.swing.JFrame;
-import javax.swing.JInternalFrame;
 
 import com.vividsolutions.jump.task.TaskMonitor;
 import com.vividsolutions.jump.workbench.JUMPWorkbench;
@@ -12,24 +10,28 @@
 import com.vividsolutions.jump.workbench.ui.images.IconLoader;
 
 import es.unex.sextante.gui.core.SextanteGUI;
-//import es.unex.sextante.openjump.help.SextanteHelpFrame;
 import es.unex.sextante.gui.help.SextanteHelpWindow;
-import es.unex.sextante.gui.toolbox.ToolboxFrame;
+//import es.unex.sextante.gui.toolbox.ToolboxFrame;
 import es.unex.sextante.openjump.language.I18NPlug;
 
+//import es.unex.sextante.openjump.help.SextanteHelpFrame;
+
 public class SextanteHelpPlugIn implements ThreadedPlugIn {
     public static final ImageIcon ICON = IconLoader
             .icon("information_16x16.png");
 
+    @Override
     public void run(TaskMonitor monitor, PlugInContext context)
             throws Exception {
     }
 
+    @Override
     public void initialize(PlugInContext context) throws Exception {
         context.getFeatureInstaller().addMainMenuPlugin(this,
                 new String[] { "Sextante" }, getName(), false, ICON, null);
     }
 
+    @Override
     public String getName() {// Giuseppe Aruta - PlugIn Internationalized
         // 2013_05_25//
 
@@ -43,33 +45,37 @@
             SextanteGUI.getGUIFactory().showHelpWindow();
         }
     }
-    static WorkbenchFrame wFrame = JUMPWorkbench.getInstance().getFrame();
+ 
+    
+ //   static WorkbenchFrame wFrame = JUMPWorkbench.getInstance().getFrame();
+
+    @Override
     public boolean execute(PlugInContext context) throws Exception {
-   //     final SextanteHelpWindow window = new SextanteHelpWindow();
-        // window.setExtendedState(window.getExtendedState()
-        // | JFrame.MAXIMIZED_BOTH);
+     // [Giuseppe Aruta 2018-14-08] Recativated old way to open Help window. 
see comment below
+        final SextanteHelpWindow window = new SextanteHelpWindow();
 
-  //      window.pack();
-  //      window.setAlwaysOnTop(true);
- //      window.setVisible(true);
+        window.pack();
+        window.setAlwaysOnTop(true);
+        window.setVisible(true);
+        
+        // [Giuseppe Aruta 2017-12-12] open as OJ internal frame
+        // [Giuseppe Aruta 2018-14-08] Removed. This should be defined at
+        // Sextante-GUI class level
+        // final SextanteHelpFrame window = new SextanteHelpFrame();
+        // JFrame frame = context.getWorkbenchFrame();
+        // // for (JInternalFrame iFrame : wFrame.getInternalFrames()) {
+        // if (iFrame instanceof ToolboxFrame) {
+        //
+        // iFrame.toFront();
+        // return false;
+        //
+        // }
+        // }
 
-        // SextanteGUI.getGUIFactory().showHelpWindow();
-      //[Giuseppe Aruta 2017-12-12] open as OJ internal frame
-        final SextanteHelpFrame window = new SextanteHelpFrame();
-        JFrame frame = context.getWorkbenchFrame();
-        for (JInternalFrame iFrame : wFrame.getInternalFrames()) {
-            if (iFrame instanceof ToolboxFrame) {
+        // wFrame.addInternalFrame(window, true, true);
 
-                iFrame.toFront();
-                return false;
-
-            }
-        }
-
-        wFrame.addInternalFrame(window, true, true);
-
+        // return true;
         return true;
-        return true;
     }
 
     public boolean isEnabled() {

Modified: 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteToolboxPlugin.java
===================================================================
--- 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteToolboxPlugin.java
 2018-04-08 13:39:52 UTC (rev 5754)
+++ 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/extensions/SextanteToolboxPlugin.java
 2018-04-08 16:53:22 UTC (rev 5755)
@@ -1,61 +1,203 @@
 package es.unex.sextante.openjump.extensions;
 
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
 import javax.swing.ImageIcon;
-import javax.swing.JFrame;
-import javax.swing.JInternalFrame;
 
+import org.apache.log4j.Logger;
+import org.saig.jump.lang.I18N;
+
 import com.vividsolutions.jump.workbench.JUMPWorkbench;
 import com.vividsolutions.jump.workbench.plugin.PlugIn;
 import com.vividsolutions.jump.workbench.plugin.PlugInContext;
 import com.vividsolutions.jump.workbench.ui.WorkbenchFrame;
 
+import es.unex.sextante.core.Sextante;
+import es.unex.sextante.gui.core.IAlgorithmProvider;
 import es.unex.sextante.gui.core.SextanteGUI;
-import es.unex.sextante.gui.toolbox.ToolboxFrame;
+import es.unex.sextante.openjump.core.OpenJUMPOutputFactory;
+import es.unex.sextante.openjump.gui.OpenJUMPGUIFactory;
+import es.unex.sextante.openjump.gui.OpenJUMPInputFactory;
+import es.unex.sextante.openjump.gui.OpenJUMPPostProcessTaskFactory;
+//import es.unex.sextante.gui.toolbox.ToolboxFrame;
 import es.unex.sextante.openjump.language.I18NPlug;
 
 public class SextanteToolboxPlugin implements PlugIn {
     static WorkbenchFrame wFrame = JUMPWorkbench.getInstance().getFrame();
-  public boolean execute(final PlugInContext context) throws Exception {
-    //[Giuseppe Aruta 2017-12-12] open as OJ internal frame
-    // Deactivated to further tests
-    //  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();
+    @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
 
-    return true;
+        // 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();
 
-  public String getName() {
+        return true;
 
-    return I18NPlug
-        
.getI18N("es.unex.sextante.kosmo.extensions.SextanteToolboxPlugin.Sextante-toolbox");
+    }
 
-  }
+    @Override
+    public String getName() {
 
-  public void initialize(final PlugInContext context) throws Exception {
+        return I18NPlug
+                
.getI18N("es.unex.sextante.kosmo.extensions.SextanteToolboxPlugin.Sextante-toolbox");
 
-    context.getFeatureInstaller().addMainMenuPlugin(this,
-        new String[] { "Sextante" }, getName(), false, getIcon(), null);
+    }
 
-  }
+    public void initialize_old(final PlugInContext context) throws Exception {
 
-  public ImageIcon getIcon() {
+        context.getFeatureInstaller().addMainMenuPlugin(this,
+                new String[] { "Sextante" }, getName(), false, getIcon(), 
null);
 
-    return new ImageIcon(SextanteGUI.class.getClassLoader().getResource(
-        "images/module2.png"));
+    }
 
-  }
+    @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(I18N
+                .getMessage(
+                        
"es.unex.sextante.kosmo.extensions.SextanteToolboxPlugin.Help-files-placed-on-{0}",
+                        new Object[] { getJarsFolder() + "/help" }));
+
+        context.getFeatureInstaller().addMainMenuPlugin(this,
+                new String[] { "Sextante" }, getName(), false, getIcon(), 
null);
+
+    }
+
+    private String getJarsFolder() {
+        final String sPath = System.getProperty("user.dir")
+                .concat(File.separator).concat("lib").concat(File.separator)
+                .concat("ext").concat(File.separator).concat("sextante");
+        LOGGER.info("Sextante jar folder: " + sPath);
+        return sPath;
+
+    }
+
+    // [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;
+    }
+
+    public ImageIcon getIcon() {
+        return new ImageIcon(SextanteGUI.class.getClassLoader().getResource(
+                "images/module2.png"));
+
+    }
+
+    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) {
+            }
+        }
+        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("", e);
+        } finally {
+            if (zip != null) {
+                try {
+                    zip.close();
+                } catch (final IOException e) {
+                }
+            }
+        }
+        return algorithmProviders;
+    }
+
+    private static final Logger LOGGER = Logger
+            .getLogger(SextanteToolboxPlugin.class);
+
 }

Modified: 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/help/SextanteHelpFrame.java
===================================================================
--- 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/help/SextanteHelpFrame.java
   2018-04-08 13:39:52 UTC (rev 5754)
+++ 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/help/SextanteHelpFrame.java
   2018-04-08 16:53:22 UTC (rev 5755)
@@ -58,17 +58,20 @@
 import es.unex.sextante.gui.core.IAlgorithmProvider;
 import es.unex.sextante.gui.core.SextanteGUI;
 import es.unex.sextante.gui.grass.GrassAlgorithm;
+import es.unex.sextante.gui.help.AlgorithmTreeCellRenderer;
+import es.unex.sextante.gui.help.HelpIO;
 
 public class SextanteHelpFrame extends JInternalFrame {
 
-    private String sSave = I18N.get("deejump.plugin.SaveLegendPlugIn.Save");
-    private String sMenu = I18N
+    private final String sSave = I18N
+            .get("deejump.plugin.SaveLegendPlugIn.Save");
+    private final String sMenu = I18N
             
.get("org.openjump.core.ui.plugin.additionalResults.AdditionalResultsPlugIn.Menu");
-    private String sSaved = I18N
+    private final String sSaved = I18N
             
.get("org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.file.saved");
-    private String sClose = I18N
+    private final String sClose = I18N
             .get("ui.plugin.imagery.ImageLayerManagerDialog.Close");
-    private String SCouldNotSave = I18N
+    private final String SCouldNotSave = I18N
             
.get("org.openjump.core.ui.plugin.additionalResults.AdditionalResultsPlugIn.Could-not-save-selected-result");
     private static String sName = Sextante.getText("Help");
     private JSplitPane jSplitPane;
@@ -82,9 +85,13 @@
     private JPopupMenu popupMenuSave;
     private JMenuItem menuItemSave;
     private GeoAlgorithm m_Alg;
-    private JPanel southPanel = new JPanel();
-    private JButton closeButton = new JButton(sClose);
+    private final JPanel southPanel = new JPanel();
+    private final JButton closeButton = new JButton(sClose);
 
+    @Deprecated
+    /**
+     * Deprecated. The frame should be defined at Sextante-GUI.class level
+     */
     public SextanteHelpFrame() {
 
         super(sName);
@@ -102,8 +109,8 @@
         try {
             {
                 final BorderLayout thisLayout = new BorderLayout();
-                this.setLayout(thisLayout);
-                this.setPreferredSize(new java.awt.Dimension(800, 500));
+                setLayout(thisLayout);
+                setPreferredSize(new java.awt.Dimension(800, 500));
                 this.setSize(new java.awt.Dimension(800, 500));
                 {
                     jSplitPane = new JSplitPane();
@@ -121,9 +128,9 @@
                                 jTree.setSelectionPath(m_Path);
                                 if ((e.getButton() == MouseEvent.BUTTON3)
                                         && (m_Path != null)) {
-                                    DefaultMutableTreeNode node = 
(DefaultMutableTreeNode) m_Path
+                                    final DefaultMutableTreeNode node = 
(DefaultMutableTreeNode) m_Path
                                             .getLastPathComponent();
-                                    Object ob = node.getUserObject();
+                                    final Object ob = node.getUserObject();
                                     if (ob instanceof GeoAlgorithm) {
                                         m_Alg = ((GeoAlgorithm) ob);
                                         showPopupMenu(e);
@@ -450,7 +457,7 @@
 
     protected void save(String urlStr) throws IOException {
         final JFileChooser fc = new 
GUIUtil.FileChooserWithOverwritePrompting();
-        File filedir = new File((String) PersistentBlackboardPlugIn.get(
+        final File filedir = new File((String) PersistentBlackboardPlugIn.get(
                 JUMPWorkbench.getInstance().getContext()).get(
                 FILE_CHOOSER_DIRECTORY_KEY));
         final File file;
@@ -461,8 +468,8 @@
         } else {
             fc.setCurrentDirectory(filedir);
         }
-        FileNameExtensionFilter filter = new FileNameExtensionFilter("HTML",
-                "html");
+        final FileNameExtensionFilter filter = new FileNameExtensionFilter(
+                "HTML", "html");
         fc.setFileFilter(filter);
         fc.addChoosableFileFilter(filter);
         final int returnVal = fc.showSaveDialog(this);
@@ -472,11 +479,11 @@
             try {
                 file = new File(fc.getSelectedFile() + ".html");
                 LAST_DIR = file.getParent();
-                URL url = new URL(urlStr);
-                BufferedInputStream bis = new BufferedInputStream(
+                final URL url = new URL(urlStr);
+                final BufferedInputStream bis = new BufferedInputStream(
                         url.openStream());
-                FileOutputStream fis = new FileOutputStream(file);
-                byte[] buffer = new byte[1024];
+                final FileOutputStream fis = new FileOutputStream(file);
+                final byte[] buffer = new byte[1024];
                 int count = 0;
                 while ((count = bis.read(buffer, 0, 1024)) != -1) {
                     fis.write(buffer, 0, count);
@@ -491,7 +498,7 @@
     }
 
     public static void Logger(Class<?> plugin, Exception e) {
-        Logger LOG = Logger.getLogger(plugin);
+        final Logger LOG = Logger.getLogger(plugin);
         JUMPWorkbench
                 .getInstance()
                 .getFrame()

Modified: 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/toolbox/ToolboxFrame.java
===================================================================
--- 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/toolbox/ToolboxFrame.java 
    2018-04-08 13:39:52 UTC (rev 5754)
+++ 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/toolbox/ToolboxFrame.java 
    2018-04-08 16:53:22 UTC (rev 5755)
@@ -1,4 +1,4 @@
-package es.unex.sextante.gui.toolbox;
+package es.unex.sextante.openjump.toolbox;
 
 import java.awt.Frame;
 
@@ -8,7 +8,13 @@
 import javax.swing.JLayeredPane;
 
 import es.unex.sextante.core.Sextante;
+import es.unex.sextante.gui.toolbox.IToolboxDialog;
+import es.unex.sextante.gui.toolbox.ToolboxPanel;
 
+@Deprecated
+/**
+ * Deprecated. The frame should be defined at Sextante-GUI.class level
+ */
 public class ToolboxFrame extends JInternalFrame implements IToolboxDialog {
 
     /**
@@ -52,11 +58,11 @@
         // } else {
         // }
         // [Giuseppe Aruta 2017-12-11] adopted internal Sextante
-        ImageIcon icon = new ImageIcon(getClass().getResource(
+        final ImageIcon icon = new ImageIcon(getClass().getResource(
                 "sextante_toolbox2.gif"));
 
         m_Panel = new ToolboxPanel(this, null, icon);
-        this.setContentPane(m_Panel);
+        setContentPane(m_Panel);
 
         m_Panel.fillTreesWithAllAlgorithms();
 


------------------------------------------------------------------------------
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