Revision 1567

View differences:

org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/README.txt
1
====
2
    gvSIG. Desktop Geographic Information System.
3

  
4
    Copyright (C) 2007-2012 gvSIG Association.
5

  
6
    This program is free software; you can redistribute it and/or
7
    modify it under the terms of the GNU General Public License
8
    as published by the Free Software Foundation; either version 2
9
    of the License, or (at your option) any later version.
10

  
11
    This program is distributed in the hope that it will be useful,
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
    GNU General Public License for more details.
15

  
16
    You should have received a copy of the GNU General Public License
17
    along with this program; if not, write to the Free Software
18
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
    MA  02110-1301, USA.
20

  
21
    For any additional information, do not hesitate to contact us
22
    at info AT gvsig.com, or visit our website www.gvsig.com.
23
====
24

  
25
The first time you checkout the current project to a new workspace, 
26
you have to prepare it to be able to work easily with maven from
27
eclipse itself.
28

  
0 29

  
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/buildNumber.properties
1
#Fri Nov 26 00:15:23 CET 2021
2
buildNumber=2261
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/test/java/org/gvsig/sextante/app/extension/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3
    <modelVersion>4.0.0</modelVersion>
4
    <artifactId>org.gvsig.sextante.app.extension</artifactId>
5
    <packaging>jar</packaging>
6
    <name>org.gvsig.sextante.app.extension</name>
7
    <version>2.0.0-SNAPSHOT</version>
8
    <description>Sextante bindings</description>
9

  
10
    <parent>
11
        <groupId>org.gvsig</groupId>
12
        <artifactId>org.gvsig.sextante.app</artifactId>
13
        <version>2.0.0-SNAPSHOT</version>
14
    </parent>
15
    
16
    <dependencies>
17
        <dependency>
18
            <groupId>org.gvsig</groupId>
19
            <artifactId>org.gvsig.about.api</artifactId>
20
            <scope>compile</scope>
21
        </dependency>
22
    </dependencies>
23

  
24
    <profiles>
25
        <profile>
26
            <id>gvsig-install</id>
27
            <activation>
28
                <activeByDefault>true</activeByDefault>
29
            </activation>
30
            <properties>
31
                <!--  gvSIG installation folder -->
32
                <gvsig.install.dir>${basedir}/../../build/product</gvsig.install.dir>
33
            </properties>
34
        </profile>
35
    </profiles>
36
</project>
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
1
<assembly>
2
  <id>gvsig-plugin-package</id>
3
  <formats>
4
    <format>zip</format>
5
  </formats>
6
  <baseDirectory>${project.artifactId}</baseDirectory>
7
  <includeBaseDirectory>true</includeBaseDirectory>
8
  <files>
9
    <file>
10
      <source>target/${project.artifactId}-${project.version}.jar</source>
11
      <outputDirectory>lib</outputDirectory>
12
    </file>
13
    <file>
14
      <source>target/package.info</source>
15
    </file>
16
  </files>
17

  
18
  <fileSets>
19
    <fileSet>
20
      <directory>src/main/resources-plugin</directory>
21
      <outputDirectory>.</outputDirectory>
22
    </fileSet>
23
  </fileSets>
24

  
25

  
26
  <dependencySets>
27
    <dependencySet>
28
      <useProjectArtifact>false</useProjectArtifact>
29
	  <useTransitiveDependencies>true</useTransitiveDependencies>
30
      <outputDirectory>lib</outputDirectory>
31
      <includes> 
32
				<include>org.gvsig:org.gvsig.geoprocess.app.mainplugin</include>
33
				<include>org.gvsig:org.gvsig.geoprocess.lib.api</include>
34
				<include>org.gvsig:org.gvsig.geoprocess.lib.sextante</include>
35
				<include>org.gvsig:org.gvsig.toolbox.core</include>
36
				<include>org.gvsig:org.gvsig.toolbox.gui</include>
37
				<include>org.gvsig:org.gvsig.toolbox.math</include>
38
				<include>gnu.trove:trove</include>
39
				<include>gov.nist.math:jama</include>
40
				<include>org.nfunk:jep</include>
41
				<include>bsh:bsh:jar</include>
42
				<include>jfree:jcommon</include>
43
				<include>jfree:jfreechart</include>
44
				<include>net.sf:jgraph</include>
45
				<include>tablelayout:TableLayout</include>
46
				<include>org.japura:org.japura</include>
47
	  </includes>
48
	</dependencySet>
49
  </dependencySets>
50
</assembly>
0 51

  
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/core/CompositeSourceOutputChannel.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.core;
25

  
26

  
27
/**
28
 * Parameters used in a output layer
29
 * 
30
 * @author <a href="mailto:nachobrodin@gmail.com">Nacho Brodin</a>
31
 * @author gvSIG Team
32
 * @deprecated use
33
 *             org.gvsig.geoprocess.lib.sextante.outputs.CompositeSourceIOutputChannel
34
 *             instead
35
 */
36
public class CompositeSourceOutputChannel extends
37
    org.gvsig.geoprocess.lib.sextante.outputs.CompositeSourceIOutputChannel {
38

  
39
    public CompositeSourceOutputChannel(Object parameters) {
40
        super(parameters);
41
    }
42

  
43
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/core/IProgressModel.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.core;
25

  
26

  
27
/**
28
 * Interface to assign the bar increment
29
 * 
30
 * @author <a href="mailto:nachobrodin@gmail.com">Nacho Brodin</a>
31
 * @deprecated use {@link ProgressModel} instead
32
 */
33
public interface IProgressModel {
34

  
35
    /**
36
     * Assigns the new bar position
37
     * 
38
     * @param iStep
39
     */
40
    public void setProgress(int iStep);
41

  
42
    /**
43
     * Sets the number of steps
44
     * 
45
     * @param nSteps
46
     */
47
    public void setTotalNumberOfSteps(int nSteps);
48
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/core/gvGeoAlgorithm.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.core;
25

  
26
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess;
27

  
28
/**
29
 * Base class for gvSIG algorithms
30
 * 
31
 * @author Nacho Brodin (nachobrodin@gmail.com)
32
 * @deprecated use {@link AbstractSextanteGeoProcess} instead
33
 */
34
public abstract class gvGeoAlgorithm extends AbstractSextanteGeoProcess
35
    implements IProgressModel {
36

  
37
    public void setProgress(int iStep) {
38
        getStatus().setCurValue(iStep);
39
    }
40

  
41
    public void setTotalNumberOfSteps(int nSteps) {
42
        getStatus().setRangeOfValues(0, nSteps);
43
    }
44

  
45
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/core/DEPRECATED
1
This package is fully deprecated.
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/sextante/gui/GeoprocessWindow.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.sextante.gui;
25

  
26
import java.awt.BorderLayout;
27

  
28
import javax.swing.JComponent;
29
import javax.swing.JPanel;
30

  
31
import es.unex.sextante.core.IInputFactory;
32
import es.unex.sextante.gui.core.SextanteGUI;
33
import es.unex.sextante.gui.toolbox.ToolboxPanel;
34

  
35
import org.gvsig.andami.ui.mdiManager.IWindow;
36
import org.gvsig.andami.ui.mdiManager.IWindowListener;
37
import org.gvsig.andami.ui.mdiManager.WindowInfo;
38

  
39
/**
40
 * Geoprocess modeler window. By default uses a DIALOG type window profile and
41
 * info. Also the window info uses the size from the size of the provided JPanel
42
 * to include.
43
 * 
44
 * @author gvSIG Team
45
 * @version $Id$
46
 */
47
public abstract class GeoprocessWindow extends JPanel implements IWindow,
48
    IWindowListener {
49

  
50
    private static final long serialVersionUID = -677659097155651764L;
51

  
52
    private WindowInfo windowInfo;
53
    private ToolboxPanel toolboxPanel;
54

  
55
    protected JComponent mainComponent;
56

  
57
    /**
58
     * Creates a new {@link GeoprocessWindow}.
59
     * 
60
     * @param toolbox
61
     *            the main geoprocess selector panel
62
     */
63
    public GeoprocessWindow(ToolboxPanel toolbox) {
64
        toolboxPanel = toolbox;
65
        initializeDataObjects();
66

  
67
        initializeUI();
68

  
69
        windowInfo = createWindowInfo();
70
    }
71

  
72
    /**
73
     * Initializes the sextante data objects.
74
     */
75
    protected void initializeDataObjects() {
76
        IInputFactory inputFactory = SextanteGUI.getInputFactory();
77
        if (inputFactory.getDataObjects() == null) {
78
            inputFactory.createDataObjects();
79
        }
80
    }
81

  
82
    /**
83
     * Initializes de window user interface.
84
     */
85
    protected void initializeUI() {
86
        mainComponent = getMainComponent();
87
        this.setLayout(new BorderLayout(0, 0));
88
        this.add(mainComponent);
89
    }
90

  
91
    /**
92
     * Initializes the window info object.
93
     */
94
    protected WindowInfo createWindowInfo() {
95
        WindowInfo windowInfo =
96
            new WindowInfo(WindowInfo.ICONIFIABLE | WindowInfo.RESIZABLE
97
                | WindowInfo.MAXIMIZABLE);
98
        // new WindowInfo(WindowInfo.MODALDIALOG | WindowInfo.RESIZABLE);
99
        windowInfo.setTitle(getTitle());
100
        windowInfo.setWidth(mainComponent.getWidth());
101
        windowInfo.setHeight(mainComponent.getHeight());
102

  
103
        return windowInfo;
104
    }
105

  
106
    public Object getWindowProfile() {
107
        return WindowInfo.EDITOR_PROFILE;
108
        // return WindowInfo.DIALOG_PROFILE;
109
    }
110

  
111
    public WindowInfo getWindowInfo() {
112
        return windowInfo;
113
    }
114

  
115
    public void windowActivated() {
116
        // Nothing to do
117
    }
118

  
119
    public void windowClosed() {
120
        if (toolboxPanel == null) {
121
            SextanteGUI.getInputFactory().clearDataObjects();
122
        }
123
    }
124

  
125
    /**
126
     * Return the title of the window.
127
     * 
128
     * @return the title of the window
129
     */
130
    protected abstract String getTitle();
131

  
132
    /**
133
     * Return the panel to show in the window.
134
     * 
135
     * @return the panel to show in the window
136
     */
137
    protected abstract JComponent getMainComponent();
138
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/sextante/gui/history/HistoryWindow.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.sextante.gui.history;
25

  
26
import info.clearthought.layout.TableLayout;
27
import info.clearthought.layout.TableLayoutConstants;
28

  
29
import java.awt.event.ActionEvent;
30
import java.awt.event.ActionListener;
31

  
32
import javax.swing.JButton;
33
import javax.swing.JComponent;
34
import javax.swing.JPanel;
35

  
36
import es.unex.sextante.core.Sextante;
37
import es.unex.sextante.gui.history.HistoryPanel;
38
import es.unex.sextante.gui.toolbox.ToolboxPanel;
39

  
40
import org.gvsig.geoprocess.sextante.gui.GeoprocessWindow;
41

  
42
/**
43
 * Geoprocess history window.
44
 * 
45
 * @author gvSIG Team
46
 * @version $Id$
47
 */
48
public class HistoryWindow extends GeoprocessWindow {
49

  
50
    private static final long serialVersionUID = -677659097155651764L;
51

  
52
    private HistoryPanel historyPanel;
53

  
54
    /**
55
     * Creates a new {@link HistoryWindow}.
56
     * 
57
     * @param toolbox
58
     *            the main geoprocess selector panel
59
     */
60
    public HistoryWindow(ToolboxPanel toolbox) {
61
        super(toolbox);
62
    }
63

  
64
    @Override
65
    protected String getTitle() {
66
        return Sextante.getText("History");
67
    }
68

  
69
    @Override
70
    protected JComponent getMainComponent() {
71
        JPanel panel = new JPanel();
72
        historyPanel = new HistoryPanel();
73

  
74
        panel.setPreferredSize(new java.awt.Dimension(650, 380));
75
        panel.setSize(new java.awt.Dimension(650, 380));
76
        TableLayout tableLayout =
77
            new TableLayout(
78
                new double[][] {
79
                    { 7.0, TableLayoutConstants.FILL,
80
                        TableLayoutConstants.FILL, TableLayoutConstants.FILL,
81
                        TableLayoutConstants.FILL, 7.0 },
82
                    { TableLayoutConstants.FILL, 3.0, 30.0, 3.0 } });
83
        tableLayout.setHGap(5);
84
        tableLayout.setVGap(5);
85
        panel.setLayout(tableLayout);
86

  
87
        panel.add(historyPanel, "1, 0, 4, 0");
88

  
89
        JButton clearHistoryButton = new JButton();
90
        panel.add(clearHistoryButton, "1, 2, 2, 2");
91
        clearHistoryButton.setText(Sextante.getText("Clear_history"));
92
        clearHistoryButton.addActionListener(new ActionListener() {
93

  
94
            public void actionPerformed(final ActionEvent evt) {
95
                historyPanel.clearHistory();
96
            }
97
        });
98

  
99
        JButton clearLogButton = new JButton();
100
        panel.add(clearLogButton, "3, 2, 4, 2");
101
        clearLogButton.setText(Sextante.getText("Clear_log"));
102
        clearLogButton.addActionListener(new ActionListener() {
103

  
104
            public void actionPerformed(final ActionEvent evt) {
105
                historyPanel.clearLog();
106
            }
107
        });
108

  
109
        return panel;
110
    }
111

  
112
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/sextante/gui/cmd/BSHWindow.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.sextante.gui.cmd;
25

  
26
import java.awt.BorderLayout;
27
import java.awt.Dimension;
28
import java.io.FileReader;
29

  
30
import javax.swing.JComponent;
31
import javax.swing.JPanel;
32

  
33
import bsh.Interpreter;
34
import bsh.util.JConsole;
35
import es.unex.sextante.core.Sextante;
36
import es.unex.sextante.gui.cmd.ScriptsIO;
37
import es.unex.sextante.gui.core.SextanteGUI;
38
import es.unex.sextante.gui.toolbox.ToolboxPanel;
39

  
40
import org.gvsig.geoprocess.sextante.gui.GeoprocessWindow;
41

  
42

  
43
/**
44
 * Window with a BeanShell shell to execute geoprocess.
45
 * 
46
 * @author gvSIG Team
47
 * @version $Id$
48
 */
49
public class BSHWindow extends GeoprocessWindow {
50

  
51
    private static final long serialVersionUID = 3805562395822654358L;
52

  
53
    /**
54
     * Creates a new {@link BSHWindow}.
55
     * 
56
     * @param toolbox
57
     *            the main geoprocess selector panel
58
     */
59
    public BSHWindow(ToolboxPanel toolbox) {
60
        super(toolbox);
61
        SextanteGUI.setLastCommandOrigin(SextanteGUI.COMMANDLINE);
62
        // SextanteGUI.setLastCommandOriginParentDialog(this);
63
    }
64

  
65
    @Override
66
    protected String getTitle() {
67
        return Sextante.getText("Command_line");
68
    }
69

  
70
    @Override
71
    protected JComponent getMainComponent() {
72
        JPanel panel = new JPanel();
73
        panel.setSize(new Dimension(400, 300));
74
        panel.setPreferredSize(new Dimension(400, 300));
75
        panel.setLayout(new BorderLayout());
76
        JConsole console = new JConsole();
77
        panel.add("Center", console);
78
        Interpreter interpreter = new Interpreter(console);
79
        interpreter.getNameSpace().importCommands(
80
            "es.unex.sextante.gui.cmd.bshcommands");
81
        String[] files = ScriptsIO.getScriptFiles();
82
        if (files != null) {
83
            for (int i = 0; i < files.length; i++) {
84
                try {
85
                    FileReader reader = new FileReader(files[i]);
86
                    interpreter.eval(reader);
87
                } catch (Exception e) {
88
                    // Nothing to do
89
                }
90
            }
91
        }
92
        new Thread(interpreter).start();
93

  
94
        return panel;
95
    }
96

  
97
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/sextante/gui/algorithm/ParametersPanel.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.sextante.gui.algorithm;
25

  
26
import javax.swing.JPanel;
27

  
28
import es.unex.sextante.core.OutputObjectsSet;
29
import es.unex.sextante.exceptions.WrongOutputIDException;
30
import es.unex.sextante.gui.algorithm.DefaultParametersPanel;
31
import es.unex.sextante.gui.algorithm.OutputParameterContainer;
32
import es.unex.sextante.gui.algorithm.ParameterContainer;
33
import es.unex.sextante.outputs.Output;
34

  
35
import org.gvsig.geoprocess.core.CompositeSourceOutputChannel;
36
import org.gvsig.geoprocess.lib.sextante.dataObjects.OutputParameters;
37

  
38
/**
39
 * Default panel for gvSIG algorithms
40
 * 
41
 * @author <a href="mailto:nachobrodin@gmail.com">Nacho Brodin</a>
42
 */
43
public class ParametersPanel extends DefaultParametersPanel {
44

  
45
    private static final long serialVersionUID = 1L;
46

  
47
    @SuppressWarnings("unchecked")
48
    protected void addOutputObjects(JPanel pane) {
49
        String sDescription;
50
        OutputObjectsSet ooset = m_Algorithm.getOutputObjects();
51

  
52
        m_iCurrentRow = 0;
53

  
54
        for (int i = 0; i < ooset.getOutputObjectsCount(); i++) {
55
            Output out = ooset.getOutput(i);
56

  
57
            sDescription =
58
                out.getDescription() + "[" + out.getTypeDescription() + "]";
59
            addTitleLabel(pane, sDescription, m_iCurrentRow, false);
60

  
61
            AlgorithmOutputPanel algorithmOutputPanel =
62
                new AlgorithmOutputPanel();
63

  
64
            pane.add(algorithmOutputPanel,
65
                getStringTableCoords(2, m_iCurrentRow));
66
            m_iCurrentRow++;
67
            m_OutputParameterContainer.add(new OutputParameterContainer(out
68
                .getName(), algorithmOutputPanel));
69
        }
70
    }
71

  
72
    public void assignParameters() {
73

  
74
        boolean bAssigningOK = true;
75
        int i;
76
        ParameterContainer parameterContainer;
77
        String sType;
78

  
79
        for (i = 0; i < m_ParameterContainer.size(); i++) {
80
            parameterContainer =
81
                (ParameterContainer) m_ParameterContainer.get(i);
82
            sType = parameterContainer.getType();
83
            if (sType.equals("Table")) {
84
                bAssigningOK = assignInputTable(parameterContainer);
85
            } else if (sType.equals("Vector Layer")
86
                    || sType.equals("Raster Layer")) {
87
                bAssigningOK = assignInputLayer(parameterContainer);
88
            } else if (sType.equals("Numerical Value")) {
89
                bAssigningOK
90
                        = assignInputNumericalValue(parameterContainer);
91
            } else if (sType.equals("String")) {
92
                bAssigningOK
93
                        = assignInputString(parameterContainer);
94
            } else if (sType.equals("Boolean")) {
95
                bAssigningOK
96
                        = assignInputBoolean(parameterContainer);
97
            } else if (sType.equals("Fixed Table")) {
98
                bAssigningOK
99
                        = assignInputFixedTable(parameterContainer);
100
            } else if (sType.equals("Multiple Input")) {
101
                bAssigningOK
102
                        = assignInputMultipleInput(parameterContainer);
103
            } else if (sType.equals("Point")) {
104
                bAssigningOK
105
                        = assignInputPoint(parameterContainer);
106
            } else if (parameterContainer.getType().equals("Filepath")) {
107
                bAssigningOK
108
                        = assignInputFilepath(parameterContainer);
109
            } else if (sType.equals("Table Field")
110
                    || sType.equals("Selection")
111
                    || sType.equals("Band")) {
112
                bAssigningOK
113
                        = assignInputSelection(parameterContainer);
114
            } else if (sType.equals("Table Filter")) {
115
                bAssigningOK = assignInputTableFilter(parameterContainer);
116
            }
117
            
118

  
119
            if (!bAssigningOK) {
120
                return;
121
            }
122

  
123
        }
124

  
125
        OutputObjectsSet ooset = m_Algorithm.getOutputObjects();
126
        for (i = 0; i < m_OutputParameterContainer.size(); i++) {
127
            OutputParameterContainer opc =
128
                (OutputParameterContainer) m_OutputParameterContainer.get(i);
129
            Output out;
130
            try {
131
                out = ooset.getOutput(opc.getName());
132
                AlgorithmOutputPanel op =
133
                    (AlgorithmOutputPanel) opc.getContainer();
134
                Object obj = op.getOutputParameters();
135
                if (obj == null) {
136
                    return;
137
                }
138
                if (obj instanceof OutputParameters)
139
                    out.setOutputChannel(new CompositeSourceOutputChannel(obj));
140
            } catch (WrongOutputIDException e) {
141
            }
142
        }
143

  
144
        return;
145

  
146
    }
147
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/sextante/gui/algorithm/AlgorithmOutputPanel.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.sextante.gui.algorithm;
25

  
26
import java.awt.GridBagConstraints;
27
import java.awt.GridBagLayout;
28

  
29
import javax.swing.JPanel;
30

  
31
import es.unex.sextante.core.GeoAlgorithm;
32

  
33
import org.gvsig.fmap.dal.DataServerExplorer;
34
import org.gvsig.fmap.dal.NewDataStoreParameters;
35
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
36
import org.gvsig.fmap.mapcontrol.dal.swing.datastore.DataStoreParametersCreationPanel;
37
import org.gvsig.fmap.mapcontrol.dal.swing.datastore.DefaultDataStoreParametersCreationPanel;
38
import org.gvsig.geoprocess.lib.sextante.dataObjects.OutputParameters;
39

  
40
/**
41
 * 
42
 * @author Nacho Brodin (nachobrodin@gmail.com)
43
 */
44
public class AlgorithmOutputPanel extends JPanel{
45

  
46
    private static final long serialVersionUID = -7028024211190671537L;
47

  
48
    private DataStoreParametersCreationPanel dataStoreCreationPanel = null;
49

  
50
    public AlgorithmOutputPanel() {
51
        super();
52
        initGUI();
53
    }
54

  
55
    public void init(GeoAlgorithm algorithm) {
56
        //m_Algorithm = algorithm;
57
        initGUI();
58
    }
59

  
60
    private void initGUI() {
61
        GridBagLayout gbl = new GridBagLayout();
62
        this.setLayout(gbl);
63

  
64
        GridBagConstraints gbc = new GridBagConstraints();
65
        gbc.fill = GridBagConstraints.HORIZONTAL;
66
        gbc.weightx = 1.0;
67
        gbc.gridx = 0;
68
        gbc.gridy = 0;      
69
        this.add(getDataStoreCreationPanel(), gbc);		
70
    }
71

  
72
    /**
73
     * Gets a ComboBox
74
     * @return
75
     */
76
    public DataStoreParametersCreationPanel getDataStoreCreationPanel() {
77
        if(dataStoreCreationPanel == null) {
78
            dataStoreCreationPanel = new DefaultDataStoreParametersCreationPanel();		         
79
        }
80
        return dataStoreCreationPanel;
81
    }
82

  
83
    public Object getOutputParameters() {
84
        NewDataStoreParameters newDataStoreParameters = 
85
            getDataStoreCreationPanel().getDataStoreParameters();
86
        DataServerExplorer dataServerExplorer =
87
            getDataStoreCreationPanel().getDataServerExplorer();
88
        if ((newDataStoreParameters != null) && (dataServerExplorer != null)){	    
89
            return new OutputParameters((NewFeatureStoreParameters)newDataStoreParameters,
90
                dataServerExplorer);
91
        }else{
92
            return null;
93
        }
94
    }
95
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/sextante/gui/toolbox/ToolboxWindow.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.sextante.gui.toolbox;
25

  
26
import java.awt.BorderLayout;
27
import java.beans.PropertyChangeEvent;
28
import java.beans.PropertyChangeListener;
29

  
30
import javax.swing.ImageIcon;
31
import javax.swing.JDialog;
32
import javax.swing.JPanel;
33
import javax.swing.JScrollPane;
34
import javax.swing.JTree;
35
import javax.swing.JViewport;
36
import javax.swing.event.TreeExpansionEvent;
37
import javax.swing.event.TreeExpansionListener;
38
import javax.swing.tree.DefaultMutableTreeNode;
39
import javax.swing.tree.DefaultTreeModel;
40

  
41
import org.gvsig.andami.ui.mdiManager.IWindow;
42
import org.gvsig.andami.ui.mdiManager.IWindowListener;
43
import org.gvsig.andami.ui.mdiManager.SingletonWindow;
44
import org.gvsig.andami.ui.mdiManager.WindowInfo;
45
import org.gvsig.app.ApplicationLocator;
46
import org.gvsig.app.ApplicationManager;
47
import org.gvsig.app.project.Project;
48
import org.gvsig.app.project.documents.ProjectDocumentListener;
49
import org.gvsig.app.project.documents.view.ViewDocument;
50
import org.gvsig.app.project.documents.view.gui.IView;
51
import org.gvsig.fmap.mapcontext.layers.CancelationException;
52
import org.gvsig.fmap.mapcontext.layers.FLayers;
53
import org.gvsig.fmap.mapcontext.layers.LayerCollectionEvent;
54
import org.gvsig.fmap.mapcontext.layers.LayerCollectionListener;
55
import org.gvsig.fmap.mapcontext.layers.LayerPositionEvent;
56
import org.gvsig.i18n.Messages;
57

  
58
import es.unex.sextante.core.IInputFactory;
59
import es.unex.sextante.gui.core.SextanteGUI;
60
import es.unex.sextante.gui.toolbox.AlgorithmsPanel;
61
import es.unex.sextante.gui.toolbox.IToolboxDialog;
62
import es.unex.sextante.gui.toolbox.ToolboxPanel;
63

  
64
/**
65
 * Geoprocess selector window.
66
 * 
67
 * @author gvSIG Team
68
 * @version $Id$
69
 */
70
public class ToolboxWindow extends JPanel implements SingletonWindow,
71
    IWindowListener, LayerCollectionListener, PropertyChangeListener,
72
    ProjectDocumentListener, IToolboxDialog, TreeExpansionListener {
73

  
74
    private static final long serialVersionUID = 2205888138813789720L;
75
    private WindowInfo windowInfo;
76
    private ToolboxPanel toolboxPanel;
77
    private ApplicationManager manager = ApplicationLocator.getManager();
78

  
79
    /**
80
     * Default constructor.
81
     */
82
    public ToolboxWindow() {
83
        IInputFactory inputFactory = SextanteGUI.getInputFactory();
84
        if (inputFactory.getDataObjects() == null) {
85
            inputFactory.createDataObjects();
86
        }
87

  
88
        windowInfo =
89
            new WindowInfo(WindowInfo.PALETTE | WindowInfo.MAXIMIZABLE
90
                | WindowInfo.RESIZABLE | WindowInfo.ICONIFIABLE);
91
        
92
        toolboxPanel = new ToolboxPanel(this, null, new ImageIcon());
93
        windowInfo.setWidth(toolboxPanel.getWidth());
94
        windowInfo.setHeight(toolboxPanel.getHeight());
95
        windowInfo.setPersistence(true);
96
        this.setLayout(new BorderLayout(0, 0));
97
        this.add(toolboxPanel);
98
        addListeners();
99
       // removeBaseTreeText(true);
100
    }
101
    
102
    /**
103
     * Big ?apa to remove the word "Algorithm"
104
     * @deprecated the work has been changed in the own library
105
     */
106
    private void removeBaseTreeText(boolean register) {
107
    	for (int i = 0; i < toolboxPanel.getComponentCount(); i++) {
108
			if(toolboxPanel.getComponent(i) instanceof AlgorithmsPanel) {
109
				AlgorithmsPanel p = (AlgorithmsPanel)toolboxPanel.getComponent(i);
110
				for (int j = 0; j < p.getComponentCount(); j++) {
111
					if(p.getComponent(j) instanceof JScrollPane) {
112
						JScrollPane scrollPane = (JScrollPane)p.getComponent(j);
113
						JViewport vp = scrollPane.getViewport();
114
						for (int k = 0; k < vp.getComponentCount(); k++) {
115
							if(vp.getComponent(k) instanceof JTree) {
116
								JTree tree = (JTree)vp.getComponent(k);
117
								if(register)
118
									tree.addTreeExpansionListener(this);
119
								DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
120
								DefaultMutableTreeNode node = (DefaultMutableTreeNode)model.getRoot();
121
								node.setUserObject("");
122
							}
123
						}
124
					}
125
				}
126
			}
127
		}
128
    }
129

  
130
    private void addListeners() {
131
        doForEachFLayers(new FLayersAction() {
132

  
133
            public void performAction(FLayers layers) {
134
                layers.addLayerCollectionListener(ToolboxWindow.this);
135
            }
136
        });
137
    }
138

  
139
    private void removeListeners() {
140
        doForEachFLayers(new FLayersAction() {
141

  
142
            public void performAction(FLayers layers) {
143
                layers.removeLayerCollectionListener(ToolboxWindow.this);
144
            }
145
        });
146
    }
147

  
148
    private void doForEachFLayers(FLayersAction action) {
149
        // Register a propertyChangeListener to capture events when a new
150
        // document is added in gvSIG
151
        Project project = manager.getCurrentProject();
152
        project.addPropertyChangeListener(this);
153

  
154
        // Register addLayerCollectionListener in existing views
155
        IWindow[] window = manager.getUIManager().getAllWindows();
156
        for (int i = 0; i < window.length; i++) {
157
            if (window[i] instanceof IView) {
158
                FLayers layers =
159
                    ((IView) window[i]).getMapControl().getMapContext()
160
                        .getLayers();
161
                action.performAction(layers);
162
            }
163
        }
164
    }
165

  
166
    public WindowInfo getWindowInfo() {
167
        return windowInfo;
168
    }
169

  
170
    public Object getWindowProfile() {
171
        return WindowInfo.TOOL_PROFILE;
172
    }
173

  
174
    public Object getWindowModel() {
175
        return "GeoprocessingSelector";
176
    }
177

  
178
    public ToolboxPanel getToolboxPanel() {
179
        return toolboxPanel;
180
    }
181

  
182
    public void cancel() {
183
        removeListeners();
184
        manager.getUIManager().closeWindow(this);
185
    }
186

  
187
    public void windowActivated() {
188
        // Nothing to do
189
    }
190

  
191
    public void windowClosed() {
192
        removeListeners();
193
        SextanteGUI.getInputFactory().clearDataObjects();
194
    }
195

  
196
    public void propertyChange(PropertyChangeEvent evt) {
197
        if (evt.getPropertyName().equals("addDocument")) {
198
            if (evt.getNewValue() instanceof ViewDocument) {
199
                ViewDocument dvd = (ViewDocument) evt.getNewValue();
200
                dvd.addListener(this);
201
            }
202
        }
203
    }
204

  
205
    /**
206
     * Event thrown when a window (View) is created. This method registers a
207
     * listener in FLayers. When a new layer is going to be
208
     * added or removed the methods layerAdded and layerRemoved will catch this
209
     * event.
210
     */
211
    public void windowCreated(IWindow window) {
212
        if (window instanceof IView) {
213
            final FLayers layers =
214
                ((IView) window).getMapControl().getMapContext().getLayers();
215
            layers.addLayerCollectionListener(this);
216
        }
217
    }
218

  
219
    public void layerAdded(final LayerCollectionEvent e) {
220
        // this could be done more elegantly, just adding the new layers...
221
        // but it works fine this way ;-)
222
        SextanteGUI.getInputFactory().clearDataObjects();
223
        SextanteGUI.getInputFactory().createDataObjects();
224
    }
225

  
226
    public void layerRemoved(final LayerCollectionEvent e) {
227
        SextanteGUI.getInputFactory().clearDataObjects();
228
        SextanteGUI.getInputFactory().createDataObjects();
229
    }
230

  
231
    public void layerMoved(final LayerPositionEvent e) {
232
        // Nothing to do
233
    }
234

  
235
    public void layerAdding(final LayerCollectionEvent e)
236
        throws CancelationException {
237
        // Nothing to do
238
    }
239

  
240
    public void layerMoving(final LayerPositionEvent e)
241
        throws CancelationException {
242
        // Nothing to do
243
    }
244

  
245
    public void layerRemoving(final LayerCollectionEvent e)
246
        throws CancelationException {
247
        // Nothing to do
248
    }
249

  
250
    public void visibilityChanged(final LayerCollectionEvent e)
251
        throws CancelationException {
252
        // Nothing to do
253
    }
254

  
255
    public JDialog getDialog() {
256
        // Nothing to do
257
        return null;
258
    }
259

  
260
    public void setAlgorithmsCount(int count) {
261
        getWindowInfo().setTitle(
262
            Messages.getText("Geoprocessing_Toolbox") + " - " + Integer.toString(count)
263
                + " " + Messages.getText("tools"));
264
    }
265

  
266
    /**
267
     * Performs an action over a {@link FLayers} instance.
268
     * 
269
     * @author gvSIG Team
270
     * @version $Id$
271
     */
272
    private static interface FLayersAction {
273

  
274
        /**
275
         * Performs an action over a {@link FLayers} instance.
276
         * 
277
         * @param layers
278
         *            to perform the action with
279
         */
280
        void performAction(FLayers layers);
281
    }
282

  
283
	public void treeCollapsed(TreeExpansionEvent event) {
284
	}
285

  
286
	public void treeExpanded(TreeExpansionEvent event) {
287
		//removeBaseTreeText(false);
288
	}
289

  
290
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/sextante/gui/modeler/ModelerWindow.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.sextante.gui.modeler;
25

  
26
import javax.swing.JComponent;
27

  
28
import es.unex.sextante.core.Sextante;
29
import es.unex.sextante.gui.modeler.ModelerPanel;
30
import es.unex.sextante.gui.toolbox.ToolboxPanel;
31

  
32
import org.gvsig.andami.ui.mdiManager.WindowInfo;
33
import org.gvsig.geoprocess.sextante.gui.GeoprocessWindow;
34

  
35
/**
36
 * Geoprocess modeler window.
37
 * 
38
 * @author gvSIG Team
39
 * @version $Id$
40
 */
41
public class ModelerWindow extends GeoprocessWindow {
42

  
43
    private static final long serialVersionUID = -677659097155651764L;
44

  
45
    /**
46
     * Creates a new {@link ModelerWindow}.
47
     * 
48
     * @param toolbox
49
     *            the main geoprocess selector panel
50
     */
51
    public ModelerWindow(ToolboxPanel toolbox) {
52
        super(toolbox);
53
    }
54

  
55
    @Override
56
    protected String getTitle() {
57
        return Sextante.getText("Modeler");
58
    }
59

  
60
    @Override
61
    protected JComponent getMainComponent() {
62
        return new ModelerPanel(null);
63
    }
64

  
65
    public Object getWindowProfile() {
66
        return WindowInfo.DIALOG_PROFILE;
67
    }
68

  
69
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/sextante/gui/core/GUIFactory.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.sextante.gui.core;
25

  
26
import java.util.ArrayList;
27
import java.util.HashMap;
28
import java.util.Iterator;
29
import java.util.List;
30

  
31
import javax.swing.ImageIcon;
32

  
33
import org.gvsig.andami.ui.mdiManager.MDIManager;
34
import org.gvsig.app.ApplicationLocator;
35
import org.gvsig.app.project.Project;
36
import org.gvsig.app.project.documents.Document;
37
import org.gvsig.app.project.documents.view.ViewDocument;
38
import org.gvsig.app.project.documents.view.ViewManager;
39
import org.gvsig.fmap.mapcontext.layers.FLayer;
40
import org.gvsig.fmap.mapcontext.layers.FLayers;
41
import org.gvsig.geoprocess.sextante.gui.cmd.BSHWindow;
42
import org.gvsig.geoprocess.sextante.gui.dataExplorer.DataExplorerWindow;
43
import org.gvsig.geoprocess.sextante.gui.history.HistoryWindow;
44
import org.gvsig.geoprocess.sextante.gui.modeler.ModelerWindow;
45
import org.gvsig.geoprocess.sextante.gui.toolbox.ToolboxWindow;
46

  
47
import es.unex.sextante.dataObjects.IDataObject;
48
import es.unex.sextante.gui.core.DefaultGUIFactory;
49
import es.unex.sextante.gui.core.NameAndIcon;
50
import es.unex.sextante.gui.core.ToolboxAction;
51
import es.unex.sextante.gui.exceptions.WrongViewNameException;
52
import es.unex.sextante.gui.toolbox.ToolboxPanel;
53

  
54
/**
55
 * Geoprocess UI factory.
56
 * 
57
 * @author gvSIG Team
58
 * @version $Id$
59
 */
60
public class GUIFactory extends DefaultGUIFactory {
61

  
62
    private ToolboxWindow toolbox;
63
    private MDIManager uiManager = ApplicationLocator.getManager().getUIManager();
64
    private static final HashMap<NameAndIcon, ArrayList<ToolboxAction>> map = new HashMap<NameAndIcon, ArrayList<ToolboxAction>>();
65
    
66
    public void showToolBoxDialog() {
67
        uiManager.addWindow(getToolBoxWindow());
68
    }
69

  
70
    private ToolboxWindow getToolBoxWindow() {
71
        if (toolbox == null) {
72
            toolbox = new ToolboxWindow();
73
            m_Toolbox = toolbox.getToolboxPanel();
74
        }
75
        return toolbox;
76
    }
77

  
78
    public ToolboxPanel getToolboxPanel() {
79
        // return getToolBoxWindow().getToolboxPanel();
80
        return m_Toolbox;
81
    }
82

  
83
    public void showModelerDialog() {
84
        ModelerWindow modeler = new ModelerWindow(getToolboxPanel());
85
        uiManager.addWindow(modeler);
86
    }
87

  
88
    public void showHistoryDialog() {
89
        HistoryWindow history = new HistoryWindow(getToolboxPanel());
90
        uiManager.addWindow(history);
91
    }
92

  
93
    public void showCommandLineDialog() {
94
        BSHWindow bsh = new BSHWindow(getToolboxPanel());
95
        uiManager.addWindow(bsh);
96
    }
97

  
98
    public void showDataExplorer() {
99
        DataExplorerWindow dataExplorer =
100
            new DataExplorerWindow(getToolboxPanel());
101
        uiManager.addWindow(dataExplorer);
102
    }
103

  
104
    public void addToView(IDataObject obj, String viewName)
105
        throws WrongViewNameException {
106

  
107
        Project project = ApplicationLocator.getManager().getCurrentProject();
108
        List<Document> views = project.getDocuments(ViewManager.TYPENAME);
109
        for (int i = 0; i < views.size(); i++) {
110
            ViewDocument view = (ViewDocument) views.get(i);
111
            if (view.getName().equals(viewName)) {
112
                FLayers layers = view.getMapContext().getLayers();
113
                Object layer = obj.getBaseDataObject();
114
                if (layer instanceof FLayer) {
115
                    layers.addLayer((FLayer) layer);
116
                }
117
                return;
118
            }
119
        }
120

  
121
        throw new WrongViewNameException();
122
    }
123
    
124
    @Override
125
    public HashMap<NameAndIcon, ArrayList<ToolboxAction>> getToolboxActions() {
126
//       final NameAndIcon nai = new NameAndIcon("gvSIG", null);
127
//       final ArrayList<ToolboxAction> algs = new ArrayList<ToolboxAction>();
128
//       algs.add(new PruebaToolboxAction());
129
//       map.put(nai, algs);
130
       return map;
131
    }
132
    
133
    public static void registerExternalTool(String groupName, ImageIcon icon, ToolboxAction toolBoxAction) {
134
    	Iterator<NameAndIcon> it = map.keySet().iterator();
135
    	ArrayList<ToolboxAction> algs = null;
136
    	NameAndIcon key = null;
137
    	while(it.hasNext()) {
138
    		key = it.next();
139
    		if(key.getName().equals(groupName)) {
140
    			algs = map.get(key);
141
    			break;
142
    		}
143
    	}
144
    	
145
    	if(algs == null) {
146
    		algs = new ArrayList<ToolboxAction>();
147
    		key = new NameAndIcon(groupName, icon);
148
    	}
149
    	
150
    	 algs.add(toolBoxAction);
151
    	 map.put(key, algs);
152
    }
153

  
154
    // public Class getDefaultParametersPanel() {
155
    //
156
    // return ParametersPanel.class;
157
    //
158
    // }
159
}
org.gvsig.geoprocess/tags/org.gvsig.geoprocess-2.2.183/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin/src/main/java/org/gvsig/geoprocess/sextante/gui/dataExplorer/DataExplorerWindow.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.geoprocess.sextante.gui.dataExplorer;
25

  
26
import javax.swing.JComponent;
27

  
28
import es.unex.sextante.core.Sextante;
29
import es.unex.sextante.gui.dataExplorer.DataExplorerPanel;
30
import es.unex.sextante.gui.toolbox.ToolboxPanel;
31

  
32
import org.gvsig.geoprocess.sextante.gui.GeoprocessWindow;
33

  
34
/**
35
 * Geoprocess data explorer window.
36
 * 
37
 * @author gvSIG Team
38
 * @version $Id$
39
 */
40
public class DataExplorerWindow extends GeoprocessWindow {
41

  
42
    private static final long serialVersionUID = -3142501226718670393L;
43

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff