Revision 732

View differences:

org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/java/org/gvsig/scripting/main/Main.java
1
package org.gvsig.scripting.main;
2

  
3
import java.awt.BorderLayout;
4
import java.awt.event.ActionEvent;
5
import java.awt.event.ActionListener;
6
import java.io.File;
7
import java.net.URL;
8
import java.util.Calendar;
9
import java.util.Date;
10
import java.util.HashMap;
11
import java.util.Map;
12
import javax.swing.JComponent;
13

  
14
import javax.swing.JFrame;
15
import javax.swing.JMenu;
16
import javax.swing.JMenuBar;
17
import javax.swing.JMenuItem;
18
import javax.swing.WindowConstants;
19

  
20
import org.apache.commons.cli.CommandLine;
21
import org.apache.commons.cli.CommandLineParser;
22
import org.apache.commons.cli.Options;
23
import org.apache.commons.cli.ParseException;
24
import org.apache.commons.cli.PosixParser;
25
import org.gvsig.about.AboutLocator;
26
import org.gvsig.about.AboutManager;
27
import org.gvsig.scripting.ScriptingDialog;
28
import org.gvsig.scripting.ScriptingManager;
29
import org.gvsig.scripting.swing.api.ScriptingSwingLocator;
30
import org.gvsig.scripting.swing.api.ScriptingUIManager;
31
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
32

  
33
public class Main {
34

  
35
	/**
36
	 * 
37
	 */
38
	private static final long serialVersionUID = -6853523688803006280L;
39
	ScriptingUIManager uimanager;
40
	AboutManager aboutManager;
41
	ScriptingManager manager;
42

  
43
	public static void main(String args[]) {
44
		Main main = new Main();
45
		main.doMain(args);
46
	}
47

  
48
	private void initializeAbout() {
49
		aboutManager = AboutLocator.getManager();
50

  
51
		Map<String, String> gvsig_vars = new HashMap<String, String>();
52
		gvsig_vars.put("version", "2.0.0");
53
		gvsig_vars.put("build", "2020");
54
		aboutManager.setProject("gvSIG Desktop", getResource("gvsig.html"),
55
				null, gvsig_vars);
56
		aboutManager.getProject().set("build", "2021");
57

  
58
		aboutManager.addSponsor("Generalitat Valenciana",
59
				getResource("gva.html"), 1);
60

  
61
		aboutManager.addDeveloper("gvSIG Asocicion",
62
				getResource("gvSIG-asociacion.html"), 2);
63

  
64
	}
65

  
66
	private void registerPluginFolders(File pluginsFolder) {
67

  
68
	    File[] folders = pluginsFolder.listFiles();
69
	    for (File folder : folders) {
70
		    File scriptsFolder = new File(folder,"scripting/scripts");
71
		    if( scriptsFolder.exists() ) {
72
		    	manager.registerSystemFolder(folder.getName(), scriptsFolder);
73
		    }
74
		    File libFolder = new File(folder,"scripting/lib");
75
		    if( libFolder.exists() ) {
76
		    	manager.addLibFolder(libFolder);
77
		    }
78
		}
79
	}
80
	
81
	public void doMain(String args[]) {
82

  
83
		new DefaultLibrariesInitializer().fullInitialize();
84

  
85
		initializeAbout();
86

  
87
		uimanager = ScriptingSwingLocator.getUIManager();
88
		manager = uimanager.getManager();
89

  
90
		Options options = new Options();
91
		options.addOption("l", "show-launcher", false,
92
				"Show the launcher window");
93
		options.addOption("c", "show-composer", false,
94
				"Show the composer window");
95
		options.addOption("r", "run", true, "Run the specified script");
96
		options.addOption("f", "plugins-folder", true, "Register scripts and libs folder in the plugins located in this location");
97
		options.addOption("s", "show", true, "Show the specified dialog");
98
		options.addOption("h", "home", true,
99
				"Specify for the home of the script framework");
100
		CommandLineParser parser = new PosixParser();
101
		CommandLine line = null;
102
		try {
103
			line = parser.parse(options, args);
104
			if (line.hasOption("home")) {
105
				manager.setHomeFolder(new File(line.getOptionValue("home")));
106
			}
107
			if (line.hasOption("plugins-folder")) {
108
				registerPluginFolders(new File(line.getOptionValue("plugins-folder")));
109
			}
110
			if (line.hasOption("show-launcher")) {
111
				showLauncher();
112
			}
113
			if (line.hasOption("show-composer")) {
114
				showComposer();
115
			}
116
			if (line.hasOption("run")) {
117
				manager.getScript(new File(line.getOptionValue("run"))).run();
118
			}
119
			if (line.hasOption("show")) {
120
				showDialog(line.getOptionValue("show"));
121
				if ( !(line.hasOption("show-launcher") || line.hasOption("show-composer")) ) {
122
					System.exit(0);
123
				}
124
			}
125
		} catch (ParseException exp) {
126
			System.out.println("Unexpected exception:" + exp.getMessage());
127
		}
128
		String[] moreArgs = line.getArgs();
129
		if( moreArgs.length > 0 ) {
130
			showDialog(moreArgs[0]);
131
			System.exit(0);
132
		}
133
		showLauncher();
134
	}
135

  
136
	private void showDialog(String name) {
137
		if (!name.endsWith(".dlg")) {
138
			name = name + ".dlg";
139
		}
140
		ScriptingDialog dlg = (ScriptingDialog) manager
141
				.getScript(new File(name));
142
		dlg.setShowMode(ScriptingDialog.MODE_DIALOG);
143
		dlg.run();
144
	}
145

  
146
	private void showLauncher() {
147
		JFrame frame = new JFrame("gvSIG's Script Framework");
148
		frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
149

  
150
		// Create the menu bar.
151
		JMenuBar menuBar = new JMenuBar();
152

  
153
		// Build the menu.
154
		JMenu menu_file = new JMenu("File");
155

  
156
		JMenuItem menuItem_composer = new JMenuItem("Composer");
157
		menuItem_composer.addActionListener(new ActionListener() {
158

  
159
			public void actionPerformed(ActionEvent e) {
160
				showComposer();
161
			}
162
		});
163
		menu_file.add(menuItem_composer);
164

  
165
		JMenuItem menuItem_installer = new JMenuItem("Install package");
166
		menuItem_installer.addActionListener(new ActionListener() {
167

  
168
			public void actionPerformed(ActionEvent e) {
169
				showPackageInstaller(manager);
170
			}
171
		});
172
		menu_file.add(menuItem_installer);
173

  
174
		JMenuItem menuItem_installPackage = new JMenuItem("Build package");
175
		menuItem_installer.addActionListener(new ActionListener() {
176

  
177
			public void actionPerformed(ActionEvent e) {
178
				showPackageBuilder(manager);
179
			}
180
		});
181
		menu_file.add(menuItem_installPackage);
182

  
183
		menu_file.addSeparator();
184

  
185
		JMenuItem menuItem_exit = new JMenuItem("Exit");
186
		menuItem_exit.addActionListener(new ActionListener() {
187

  
188
			public void actionPerformed(ActionEvent e) {
189
				System.exit(0);
190
			}
191
		});
192
		menu_file.add(menuItem_exit);
193

  
194
		menuBar.add(menu_file);
195

  
196
		frame.add(menuBar, BorderLayout.NORTH);
197
		frame.add(uimanager.createLauncher().asJComponent(), BorderLayout.CENTER);
198

  
199
		// Display the window.
200
		frame.pack();
201
		frame.setVisible(true);
202

  
203
	}
204

  
205
	@SuppressWarnings("unused")
206
	private Date getDate(int year, int month, int day) {
207
		Calendar cal = Calendar.getInstance();
208
		cal.set(year, month, day);
209
		return cal.getTime();
210
	}
211

  
212
	private URL getResource(String name) {
213
		URL resource = this.getClass().getResource(name);
214
		return resource;
215
	}
216

  
217
	private void showComposer() {
218
		showWindow(uimanager.createComposer().asJComponent(), "Scripting Composer");
219
	}
220

  
221
	private void showPackageInstaller(ScriptingManager manager) {
222
		// not implemented
223
	}
224

  
225
	private void showPackageBuilder(ScriptingManager manager) {
226
		// not implemented
227
	}
228

  
229
	private void showWindow(JComponent component, String title) {
230
		JFrame frame = new JFrame(title);
231
		frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
232

  
233
		frame.setContentPane(component);
234

  
235
		// Display the window.
236
		frame.pack();
237
		frame.setVisible(true);
238
	}
239
}
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/javadoc/overview.html
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
<title>org.gvsig.scripting package documentation</title>
7
</head>
8
<body>
9

  
10
	<p>TODO: Example library overview.</p>
11
	
12
	<p>See the <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#overviewcomment">Javadoc Tool documentation about the overview file</a></p>
13

  
14
</body>
15
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/README.txt
1
Put into this folder the resources needed by your library classes.
2

  
3
This folder is added to the runtime classpath, so you can load any resources 
4
through the ClassLoader.
5

  
6
By default, into this folder you can find some examples of resource bundle 
7
property files that may be used by your library classes.
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/log4j.xml
1
<?xml version="1.0" encoding="ISO-8859-1" ?>
2
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3

  
4
<!-- 
5
Log4J configuration file for unit tests execution.
6
 -->
7
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
8

  
9
	<!-- Appender configuration to show logging messages through the console -->
10
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
11
		<layout class="org.apache.log4j.PatternLayout">
12
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
13
		</layout>
14
	</appender>
15

  
16
	<!-- 
17
	Activate logging messages of DEBUG level of higher only for the
18
	org.gvsig.tools packages.
19
	You can put full classes names or packages instead, to configure
20
	logging for all the classes and subpackages of the package.
21
	-->
22
	<category name="org.gvsig.tools">
23
		<priority value="DEBUG" />
24
	</category>
25
	<category name="org.gvsig.scripting">
26
		<priority value="DEBUG" />
27
	</category>
28

  
29
	<!-- 
30
	By default, show only logging messages of INFO level or higher, 
31
	through the previously configured CONSOLE appender. 
32
	-->
33
	<root>
34
		<priority value="INFO" />
35
		<appender-ref ref="CONSOLE" />
36
	</root>
37
</log4j:configuration>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/main/gvsig.html
1
<html>
2
<body>
3

  
4
<img src="gvsig-logo1-association.jpg"><br>
5
<h2>gvSIG desktop</h2>
6
<p>
7
A Geographic Information System (GIS) for desktop environments<br>
8
<br>
9
Version: %(version)<br>
10
Build: %(build)<br>
11
&copy; Copyright gvSIG Association. All rights reserved.<br>
12
<br>
13
For more information, contact:<a href="http://www.gvsig.com/contact-info">http://www.gvsig.com/contact-info</a><br>
14
Or visit <a href="http://www.gvsig.org">http://www.gvsig.org</a>
15
</p>
16
<br>
17
<br>
18
<br>
19
<font face="Arial, Helvetica, sans-serif"> 
20
This program is free software; you can redistribute it and/or
21
modify it under the terms of the GNU General Public License
22
as published by the Free Software Foundation; either version 2
23
of the License, or (at your option) any later version.
24
<br>
25
This program is distributed in the hope that it will be useful,
26
but WITHOUT ANY WARRANTY; without even the implied warranty of
27
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28
GNU General Public License for more dlogo.jpgetails.<br>
29
<br>
30
You should have received a copy of the GNU General Public License
31
along with this program; if not, write to the Free Software
32
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
33
<br>
34

  
35
<p>Agradecimientos:</p>
36
<ul>
37
	<li><a target="blank" href="http://www.gvsig.org/web/community/agradecimientos/traductores/">Traductores</a></li>
38
	<li><a target="blank" href="http://www.gvsig.org/web/community/agradecimientos/testers/">Testers</a></li>
39
	<li><a target="blank" href="http://www.gvsig.org/web/community/agradecimientos/otras-colaboraciones/">Otras colaboraciones</a></li>
40
</ul>
41
      
42

  
43
</font>
44
</body>
45
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/main/prodevelop.html
1
<html>
2
<body>
3

  
4
<img src="prodevelop-logo.png"><br>
5

  
6
<h2>PRODEVELOP</h2>
7
<br>
8

  
9
<p>EN CONSTRUCCION</p>
10

  
11
</body>
12
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/main/scolab.html
1
<html>
2
<body>
3

  
4
<img src="scolab-logo.png"><br>
5

  
6
<h2>Software Colaborativo</h2>
7
<br>
8

  
9
<p>EN CONSTRUCCION</p>
10

  
11
</body>
12
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/main/iver.html
1
<html>
2
<body>
3

  
4
<img src="iver-logo.png"><br>
5

  
6
<h2>IVER</h2>
7
<br>
8

  
9
<p>EN CONSTRUCCION</p>
10

  
11
</body>
12
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/main/csgis.html
1
<html>
2
<body>
3

  
4
<img src="csgis-logo.gif"><br>
5

  
6
<h2>CSGIS</h2>
7
<br>
8

  
9
<p>EN CONSTRUCCION</p>
10

  
11
</body>
12
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/main/disid.html
1
<html>
2
<body>
3

  
4
<img src="disid-logo.jpeg"><br>
5

  
6
<h2>DiSiD Technologies</h2>
7
<br>
8

  
9
<p>EN CONSTRUCCION</p>
10

  
11
</body>
12
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/main/gva.html
1
<html>
2
<body>
3

  
4
<img src="gva-logo_horiz_bicolor.png"><br>
5

  
6
<h2>GVA</h2>
7
<br>
8

  
9
<p>EN CONSTRUCCION</p>
10

  
11
</body>
12
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/help/help.hs
1
<?xml version='1.0' encoding='ISO-8859-1' ?>
2
<!DOCTYPE helpset
3
  PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN"
4
 		  "http://java.sun.com/products/javahelp/helpset_1_0.dtd">
5

  
6
<?TestTarget this is data for the test target ?>
7

  
8
<helpset version="1.0">
9

  
10
  <!-- title -->
11
  <title>ScriptingFramework</title>
12

  
13
  <!-- maps -->
14
  <maps>
15
     <homeID>main</homeID>
16
     <mapref location="help.jhm"/>
17
  </maps>
18

  
19
  <!-- views -->
20
  <view>
21
    <name>TOC</name>
22
    <label>TOC</label>
23
    <type>javax.help.TOCView</type>
24
    <data>toc.xml</data>
25
  </view>
26
  <!--
27
  <view> <name>Index</name>
28
	 <label>Indice</label>
29
	 <type>javax.help.IndexView</type>
30
	 <data>index.xml</data>
31
	</view>
32
  
33
  <view>
34
	 <name>Search</name>
35
	 <label>Busqueda</label>
36
	 <type>javax.help.SearchView</type>
37
  </view>
38
  
39
  -->
40
  <view>
41
    <name>Favorites</name>
42
    <label>Favoritos</label>
43
    <type>javax.help.FavoritesView</type>
44
  </view>
45

  
46
  <presentation default="true" displayviewimages="false">
47
     <name>main window</name>
48
     <size width="700" height="400" />
49
     <location x="200" y="200" />
50
     <title>gvSIG - Ayuda en linea</title>
51
     <image>toplevelfolder</image>
52
     <toolbar>
53
       <helpaction image="action.back">javax.help.BackAction</helpaction>
54
       <helpaction image="action.forward">javax.help.ForwardAction</helpaction>
55
     </toolbar>
56
  </presentation>
57
</helpset>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/help/introduction.html
1
<html>
2
<h1>Hola</h1>
3
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/help/toc.xml
1
<!DOCTYPE toc
2
  PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN"
3
             "http://java.sun.com/products/javahelp/toc_1_0.dtd">
4

  
5
<toc version="1.0">
6
	<tocitem text="gvSIG scripting framework">
7
		<tocitem text="Introduction" target="introduction.html"/>
8
	</tocitem>
9
</toc>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/help/help.jhm
1
<?xml version='1.0' encoding='ISO-8859-1' ?>
2
<!DOCTYPE map
3
  PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN"
4
         "http://java.sun.com/products/javahelp/map_1_0.dtd">
5

  
6
<map version="1.0">
7
	<mapID target="introduction.html" url="introduction.html" />
8
</map>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/main/resources/org/gvsig/scripting/impl/scripts/Test.groovy
1
/**
2
 * package com.disid.groovygis 
3
 */
4

  
5

  
6
/**
7
 *
8
 */
9
class Test {
10

  
11
	static main(args) {
12
		println "Hello world"
13
	}
14
}
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/test/resources/README.txt
1
#set( $symbol_pound = '#' )
2
#set( $symbol_dollar = '$' )
3
#set( $symbol_escape = '\' )
4
Put into this folder the resources needed by your test classes.
5

  
6
This folder is added to the Tests classpath, so you can load any resources 
7
through the ClassLoader.
8

  
9
By default, in this folder you can find an example of log4j configuration,
10
prepared to log messages through the console, so logging works when you
11
run your tests classes.
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/test/resources/log4j.xml
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3

  
4
<!-- 
5
Log4J configuration file for unit tests execution.
6
 -->
7
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
8

  
9
	<!-- Appender configuration to show logging messages through the console -->
10
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
11
		<layout class="org.apache.log4j.PatternLayout">
12
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
13
		</layout>
14
	</appender>
15

  
16
	<!-- 
17
	Activate logging messages of DEBUG level of higher only for the
18
	DefaultExampleManager class.
19
	You can put full classes names or packages instead, to configure
20
	logging for all the classes and subpackages of the package.
21
	-->
22
	<category name="org.gvsig.scripting.impl.DefaultExampleManager">
23
		<priority value="DEBUG" />
24
	</category>
25

  
26
	<!-- 
27
	By default, show only logging messages of INFO level or higher, 
28
	through the previously configured CONSOLE appender. 
29
	-->
30
	<root>
31
		<priority value="INFO" />
32
		<appender-ref ref="CONSOLE" />
33
	</root>
34
</log4j:configuration>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/src/test/java/README.txt
1
#set( $symbol_pound = '#' )
2
#set( $symbol_dollar = '$' )
3
#set( $symbol_escape = '\' )
4
For each class you are going to test, create one Test class with the same
5
name as the class to test, ending with Test.
6

  
7
For example, the unit tests of the "ExampleLibrary" class are performed
8
by the "ExampleLibraryTest" class.
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.main/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3

  
4
	<modelVersion>4.0.0</modelVersion>
5
	<artifactId>org.gvsig.scripting.main</artifactId>
6
	<packaging>jar</packaging>
7
	<name>${project.artifactId}</name>
8
	<parent>
9
		<groupId>org.gvsig</groupId>
10
		<artifactId>org.gvsig.scripting</artifactId>
11
		<version>2.3.25</version>
12
	</parent>
13
	<dependencies>
14
		<dependency>
15
			<groupId>org.gvsig</groupId>
16
			<artifactId>org.gvsig.tools.swing.api</artifactId>
17
			<scope>compile</scope>
18
		</dependency>
19
		<dependency>
20
			<groupId>org.gvsig</groupId>
21
			<artifactId>org.gvsig.tools.swing.impl</artifactId>
22
			<scope>runtime</scope>
23
		</dependency>
24
		<dependency>
25
			<groupId>org.gvsig</groupId>
26
			<artifactId>org.gvsig.about.api</artifactId>
27
			<scope>compile</scope>
28
		</dependency>
29
		<dependency>
30
			<groupId>org.gvsig</groupId>
31
			<artifactId>org.gvsig.about.impl</artifactId>
32
			<scope>runtime</scope>
33
		</dependency>
34
		<dependency>
35
			<groupId>org.gvsig</groupId>
36
			<artifactId>org.gvsig.scripting.lib.api</artifactId>
37
			<scope>compile</scope>
38
		</dependency>
39
		<dependency>
40
			<groupId>org.gvsig</groupId>
41
			<artifactId>org.gvsig.scripting.lib.impl</artifactId>
42
			<scope>compile</scope>
43
		</dependency>
44
		<dependency>
45
			<groupId>org.gvsig</groupId>
46
			<artifactId>org.gvsig.scripting.swing.api</artifactId>
47
			<scope>compile</scope>
48
		</dependency>
49
		<dependency>
50
			<groupId>org.gvsig</groupId>
51
			<artifactId>org.gvsig.scripting.swing.impl</artifactId>
52
			<scope>compile</scope>
53
		</dependency>
54
		<dependency>
55
			<groupId>com.jgoodies</groupId>
56
			<artifactId>looks</artifactId>
57
			<scope>compile</scope>
58
		</dependency>
59
		<dependency>
60
			<groupId>commons-cli</groupId>
61
			<artifactId>commons-cli</artifactId>
62
			<scope>compile</scope>
63
		</dependency>
64
	</dependencies>
65
</project>
0 66

  
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3

  
4
    <modelVersion>4.0.0</modelVersion>
5
    <artifactId>org.gvsig.scripting</artifactId>
6
    <packaging>pom</packaging>
7
    <version>2.3.25</version>
8
    <name>${project.artifactId}</name>
9
    <description>Scripting Framework for gvSIG</description>
10
    <url>http://devel.gvsig.org/sites/org.gvsig.scripting/${project.version}</url>
11

  
12
    <parent>
13
        <groupId>org.gvsig</groupId>
14
        <artifactId>org.gvsig.desktop</artifactId>
15
        <version>2.0.146</version>
16
    </parent>
17

  
18
    <scm>
19
        <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-scripting/org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25</connection>
20
        <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-scripting/org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25</developerConnection>
21
        <url>https://devel.gvsig.org/redmine/projects/gvsig-scripting/repository/show/org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25</url>
22
    </scm>
23
    <developers>
24
        <developer>
25
            <id>jjdelcerro</id>
26
            <name>Joaquรญn Josรฉ del Cerro</name>
27
            <email>jjdelcerro@gvsig.org</email>
28
            <roles>
29
                <role>Architect</role>
30
                <role>Developer</role>
31
            </roles>
32
        </developer>
33
        <developer>
34
            <id>jbadia</id>
35
            <name>Josรฉ Badรญa</name>
36
            <email>badia_jos@gva.es</email>
37
            <roles>
38
                <role>Developer</role>
39
            </roles>
40
        </developer>
41
    </developers>
42

  
43
    <distributionManagement>
44
        <site>
45
            <id>gvsig-repository</id>
46
            <url>dav:https://devel.gvsig.org/sites/org.gvsig.scripting/${project.version}</url>
47
        </site>
48
    </distributionManagement>
49
    <repositories>
50
        <repository>
51
            <id>gvsig-public-http-repository</id>
52
            <name>gvSIG maven public HTTP repository</name>
53
            <url>http://devel.gvsig.org/m2repo/j2se</url>
54
            <releases>
55
                <enabled>true</enabled>
56
                <updatePolicy>daily</updatePolicy>
57
                <checksumPolicy>warn</checksumPolicy>
58
            </releases>
59
            <snapshots>
60
                <enabled>true</enabled>
61
                <updatePolicy>daily</updatePolicy>
62
                <checksumPolicy>warn</checksumPolicy>
63
            </snapshots>
64
        </repository>
65
        <repository>
66
            <id>bedatadriven</id>
67
            <name>bedatadriven public repo</name>
68
            <url>http://nexus.bedatadriven.com/content/groups/public/</url>
69
        </repository>
70
    </repositories>
71
    <build>
72
        <plugins>
73
            <plugin>
74
                <groupId>org.apache.maven.plugins</groupId>
75
                <artifactId>maven-release-plugin</artifactId>
76
                <configuration>
77
                    <tagBase>https://devel.gvsig.org/svn/gvsig-scripting/org.gvsig.scripting/tags</tagBase>
78
                </configuration>
79
            </plugin>
80

  
81
        </plugins>
82
    </build>
83

  
84
    <dependencyManagement>
85
        <dependencies>
86
            <dependency>
87
                <groupId>org.gvsig</groupId>
88
                <artifactId>org.gvsig.scripting.lib.api</artifactId>
89
                <version>2.3.25</version>
90
            </dependency>
91
            <dependency>
92
                <groupId>org.gvsig</groupId>
93
                <artifactId>org.gvsig.scripting.swing.api</artifactId>
94
                <version>2.3.25</version>
95
            </dependency>
96
            <dependency>
97
                <groupId>org.gvsig</groupId>
98
                <artifactId>org.gvsig.scripting.lib.impl</artifactId>
99
                <version>2.3.25</version>
100
            </dependency>
101
            <dependency>
102
                <groupId>org.gvsig</groupId>
103
                <artifactId>org.gvsig.scripting.swing.impl</artifactId>
104
                <version>2.3.25</version>
105
            </dependency>
106

  
107
            <dependency>
108
                <groupId>org.gvsig</groupId>
109
                <artifactId>org.gvsig.scripting.main</artifactId>
110
                <version>2.3.25</version>
111
            </dependency>
112

  
113
            <dependency>
114
                <groupId>org.gvsig</groupId>
115
                <artifactId>org.gvsig.scripting.thing</artifactId>
116
                <version>2.3.25</version>
117
            </dependency>
118

  
119
            <dependency>
120
                <groupId>org.gvsig</groupId>
121
                <artifactId>org.gvsig.scripting.app.mainplugin</artifactId>
122
                <version>2.3.25</version>
123
            </dependency>
124

  
125
            <dependency>
126
                <groupId>org.renjin</groupId>
127
                <artifactId>renjin-script-engine</artifactId>
128
                <version>0.8.1592</version>
129
                <classifier>jar-with-dependencies</classifier>
130
            </dependency>
131

  
132
            <dependency>
133
                <groupId>org.scala-lang</groupId>
134
                <artifactId>scala-dist</artifactId>
135
                <version>2.12.0-M2</version>
136
                <scope>runtime</scope>
137
                <exclusions>
138
                    <exclusion>
139
                        <groupId>org.scala-lang</groupId>
140
                        <artifactId>scala-library-all</artifactId>
141
                    </exclusion>
142
                </exclusions>            
143
            </dependency>
144
            <dependency>
145
                <groupId>org.scala-lang</groupId>
146
                <artifactId>scala-compiler</artifactId>
147
                <version>2.12.0-M2</version>
148
            </dependency>
149
            <dependency>
150
                <groupId>org.scala-lang</groupId>
151
                <artifactId>scala-library</artifactId>
152
                <version>2.12.0-M2</version>
153
            </dependency>
154
            <dependency>
155
                <groupId>org.scala-lang</groupId>
156
                <artifactId>scala-reflect</artifactId>
157
                <version>2.12.0-M2</version>
158
            </dependency>
159
            <dependency>
160
                <groupId>org.scala-lang</groupId>
161
                <artifactId>scalap</artifactId>
162
                <version>2.12.0-M2</version>
163
            </dependency>
164
            <dependency>
165
                <groupId>jline</groupId>
166
                <artifactId>jline</artifactId>
167
                <version>2.12.1</version>
168
            </dependency>
169

  
170
            <dependency>
171
                <groupId>com.jeta</groupId>
172
                <artifactId>abeille</artifactId>
173
                <version>2.1.0.M3</version>
174
                <type>tar.gz</type>
175
            </dependency>
176

  
177
            <dependency>
178
                <groupId>org.apache.tika</groupId>
179
                <artifactId>tika-core</artifactId>
180
                <version>1.12</version>
181
            </dependency>            
182
            <!-- Eliminar para org.gvsig.desktop > 2.0.115 -->
183
            <dependency>
184
                <groupId>org.jopendocument</groupId>
185
                <artifactId>jOpenDocument</artifactId>
186
                <version>1.3</version>
187
            </dependency>
188
            
189
            <dependency>
190
                <groupId>net.sf.cssbox</groupId>
191
                <artifactId>swingbox</artifactId>
192
                <version>1.1</version>
193
            </dependency>
194
            <dependency>
195
                <groupId>net.sf.cssbox</groupId>
196
                <artifactId>cssbox</artifactId>
197
                <version>4.7</version>
198
            </dependency>
199
            <dependency>
200
                <groupId>net.sourceforge.nekohtml</groupId>
201
                <artifactId>nekohtml</artifactId>
202
                <version>1.9.21</version>
203
            </dependency>
204
            <dependency>
205
                <groupId>net.sf.cssbox</groupId>
206
                <artifactId>jstyleparser</artifactId>
207
                <version>1.18</version>
208
            </dependency>
209
                            
210
        </dependencies>
211
    </dependencyManagement>
212

  
213
    <modules>
214
        <module>org.gvsig.scripting.thing</module>
215
        <module>org.gvsig.scripting.lib</module>
216
        <module>org.gvsig.scripting.swing</module>
217
        <module>org.gvsig.scripting.main</module>
218
        <module>org.gvsig.scripting.app</module>
219
    </modules>
220
</project>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3

  
4
	<modelVersion>4.0.0</modelVersion>
5
	<artifactId>org.gvsig.scripting.lib.api</artifactId>
6
	<packaging>jar</packaging>
7
	<name>org.gvsig.scripting.lib.api</name>
8
	<parent>
9
		<groupId>org.gvsig</groupId>
10
		<artifactId>org.gvsig.scripting.lib</artifactId>
11
		<version>2.3.25</version>
12
	</parent>
13
	<dependencies>
14
		<dependency>
15
			<groupId>org.gvsig</groupId>
16
			<artifactId>org.gvsig.tools.lib</artifactId>
17
			<scope>compile</scope>
18
		</dependency>
19
		<dependency>
20
			<groupId>org.gvsig</groupId>
21
			<artifactId>org.gvsig.tools.lib</artifactId>
22
			<type>test-jar</type>
23
			<scope>test</scope>
24
		</dependency>
25
		<dependency>
26
			<groupId>org.gvsig</groupId>
27
			<artifactId>org.gvsig.i18n</artifactId>
28
			<scope>compile</scope>
29
		</dependency>
30
		<dependency>
31
			<groupId>javax.help</groupId>
32
			<artifactId>javahelp</artifactId>
33
			<scope>compile</scope>
34
		</dependency>
35
	</dependencies>
36
	<build>
37
		<plugins>
38
			<plugin>
39
				<groupId>org.apache.maven.plugins</groupId>
40
				<artifactId>maven-jar-plugin</artifactId>
41
				<configuration>
42
				</configuration>
43
				<executions>
44
					<!--
45
						Generates a jar file only with the test classes
46
					-->
47
					<execution>
48
						<goals>
49
							<goal>test-jar</goal>
50
						</goals>
51
					</execution>
52
				</executions>
53
			</plugin>
54
		</plugins>
55
	</build>
56
</project>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/src/main/resources/org/gvsig/scripting/i18n/text.properties
1
# Resource bundle texts for the Spanish language locale (es)
2
Example.returns_value=devuelve el valor
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/src/main/resources/org/gvsig/scripting/i18n/text_en.properties
1
# Resource bundle texts for the English language locale (en)
2
Example.returns_value=returns value
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/src/main/resources/overview.html
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
<title>org.gvsig.scripting package documentation</title>
7
</head>
8
<body>
9

  
10
	<p>TODO: Example library overview.</p>
11
	
12
	<p>See the <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#overviewcomment">Javadoc Tool documentation about the overview file</a></p>
13

  
14
</body>
15
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/src/main/resources/README.txt
1
Put into this folder the resources needed by your library classes.
2

  
3
This folder is added to the runtime classpath, so you can load any resources 
4
through the ClassLoader.
5

  
6
By default, into this folder you can find some examples of resource bundle 
7
property files that may be used by your library classes.
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.scripting.ScriptingLibrary
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/src/main/java/org/gvsig/scripting/ScriptingErrorException.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.scripting;
7

  
8
import java.io.File;
9
import org.apache.commons.io.FilenameUtils;
10

  
11
/**
12
 *
13
 * @author jjdelcerro
14
 */
15
public class ScriptingErrorException extends RuntimeException {
16
    private static final long serialVersionUID = -3489829775437358107L;
17
    private final File name;
18
    private final int line;
19
    private final int column;
20

  
21
    public ScriptingErrorException(String msg, File name, int line, int column) {
22
        super(msg);
23
        this.name = name;
24
        this.line = line;
25
        this.column = column;
26
    }
27

  
28
    public int getLineNumber() {
29
        return this.line;
30
    }
31

  
32
    public int getColumnNumber() {
33
        return this.column;
34
    }
35

  
36
    public String getScriptName() {
37
        return FilenameUtils.getBaseName(this.name.getName());
38
    }
39
   
40
    public File getScriptFile() {
41
        return this.name;
42
    }
43
}
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/src/main/java/org/gvsig/scripting/ExecuteErrorException.java
1
package org.gvsig.scripting;
2

  
3
import java.io.File;
4

  
5
public class ExecuteErrorException extends ScriptingErrorException {
6

  
7
	/**
8
	 * 
9
	 */
10
	private static final long serialVersionUID = 3733567933742742587L;
11

  
12
	public ExecuteErrorException(String msg, File name, int line, int column) {
13
		super(msg, name, line, column);
14
	}
15
	
16
	public ExecuteErrorException(String msg, File name, int line, int column, Throwable cause) {
17
		this(msg, name, line, column);
18
		this.initCause(cause);
19
	}
20
	
21
	public ExecuteErrorException(String msg, File name, Throwable cause) {
22
		this(msg, name, -1, -1);
23
		this.initCause(cause);
24
	}
25
	
26
}
0 27

  
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/src/main/java/org/gvsig/scripting/ScriptingManager.java
1
package org.gvsig.scripting;
2

  
3
import java.io.File;
4
import java.util.List;
5
import java.util.Map;
6
import org.gvsig.tools.service.spi.ProviderFactory;
7
import org.gvsig.tools.script.ScriptManager;
8

  
9
/**
10
 * There are two top level management roles within ScriptingFramework: logical
11
 * and User's Interface (UI) management.
12
 *
13
 * This class is responsible of the logical role. It provides all the services
14
 * to manage the information used in ScriptingFramework.
15
 *
16
 * @see ScriptingUIManager
17
 * @see ScriptingHelpManager
18
 */
19
public interface ScriptingManager extends ScriptManager {
20

  
21
    public static final String INSTALLER_PROVIDER_NAME = "Script";
22
    public static final String INSTALLER_PROVIDER_DESCRIPTION = "Provider to install scripts";
23

  
24
    public static final String HELP_INSTALLER_PROVIDER_NAME = "ScriptHelp";
25
    public static final String HELP_INSTALLER_PROVIDER_DESCRIPTION = "Provider to install scripting help";
26

  
27
    public static final String UNIT_SCRIPT = "Script";
28
    public static final String UNIT_DIALOG = "Dialog";
29
    public static final String UNIT_FOLDER = "Folder";
30
    public static final String UNIT_EXTERNALFILE = "ExternalFile";
31

  
32
    public void setHomeFolder(File home);
33

  
34
    public File getHomeFolder();
35

  
36
    /**
37
     * Returns the System's Folder
38
     *
39
     * @return a {@link ScriptingFolder} with the System's Folder.
40
     */
41
    public ScriptingFolder getSystemFolder();
42

  
43
    /**
44
     * Returns the User's Folder
45
     *
46
     * @return a {@link ScriptingFolder} with the User's Folder.
47
     */
48
    public ScriptingFolder getUserFolder();
49

  
50
    public List<ScriptingFolder> getAlternativeUserFolders();
51

  
52
    public void addAlternativeUserFolder(File f, String name, String description);
53

  
54
    public ScriptingUnit createUnit(String unitType, ScriptingFolder folder, String id);
55

  
56
    public ScriptingUnit createUnit(String unitType, ScriptingFolder folder, String id, String language);
57
    
58
    public List<String> getUnitTypes();
59

  
60
    /**
61
     * Returns the {@link ScriptingBaseScript} associated with the file
62
     * specified
63
     *
64
     * @param file File where is contained the {@link ScriptingBaseScript}'s
65
     * information
66
     *
67
     * @return {@link ScriptingBaseScript}
68
     */
69
    public ScriptingBaseScript getScript(File file);
70

  
71
    public ScriptingBaseScript getScript(String name);
72

  
73
    /**
74
     * Returns the {@link ScriptingFolder} associated with the file specified
75
     *
76
     * @param file File where is contained the {@link ScriptingFolder}'s
77
     * information
78
     *
79
     * @return {@link ScriptingFolder}
80
     */
81
    public ScriptingFolder getFolder(File file);
82

  
83
    /**
84
     * Returns the path of the User's Folder
85
     *
86
     * @return a String with the path of the User's Folder
87
     */
88
//    public String getRootUserFolder();
89
    /**
90
     * Registers a File System with {@link ScriptingUnit}s in the SystemFolder
91
     *
92
     * @param name String with the identificator name of the File System
93
     * registered
94
     * @param folder File with the root of the File System to register
95
     */
96
    public void registerSystemFolder(String name, File folder);
97

  
98
    public List<String> getSupportedLanguages();
99

  
100
    public String getExtensionOfLanguage(String language);
101

  
102
    public String getEngineNameByLanguage(String langName);
103

  
104
    /**
105
     * Checks if an id is unique in a determinate folder
106
     *
107
     * @param folder {
108
     * @ScriptingFolder} with the directory to verify the id
109
     * @param id String with the id to validate
110
     *
111
     * @return true if there isn't another {@link ScriptingUnit} with the same
112
     * id, and false in the other case
113
     */
114
    public boolean validateUnitId(ScriptingFolder folder, String id);
115

  
116
    /**
117
     * Sets a key/value pair in the state of the ScriptingManager that may
118
     * either create a Java Language Binding to be used in the execution of
119
     * scripts
120
     *
121
     * @param key The name of named value to add
122
     * @param value The value of named value to add.
123
     */
124
    public void put(String key, Object value);
125

  
126
    /**
127
     * Retrieves a value set in the state of this ScriptingManager
128
     *
129
     * @param key The key whose value is to be returned
130
     *
131
     * @return an Object with the value corresponding to the key
132
     */
133
    public Object get(String key);
134

  
135
    /**
136
     * Gets the Help manager
137
     *
138
     * @return a {@link ScriptingHelpManager}
139
     *
140
     * @see ScriptingHelpManager
141
     */
142
    public ScriptingHelpManager getHelpManager();
143

  
144
    public void addLibFolder(File lib);
145

  
146
    public File getRootUserFolder();
147
    
148
    public ProviderFactory getInstallerFactory();
149
    
150
    public ProviderFactory getHelpInstallerFactory();
151
    
152
    /**
153
     * Devuelbe la carpeta en la que se encuentran los paquetes
154
     * de la aplicacion.
155
     * 
156
     * @return 
157
     */
158
    public File getPackagesFolder();
159
    
160
    /**
161
     * Establece la carpeta en la que se encuentran los paquetes
162
     * de la aplicacion.
163
     * @param folder 
164
     */
165
    public void setPackagesFolder(File folder);
166
    
167
    /**
168
     * Search the available engines and initializa the manager.
169
     */
170
    public void loadEngines();
171
    
172
    public List<File> getLibFolders();
173
    
174
    /**
175
     * Return a map with the label and suffix of the library versions.
176
     * 
177
     * For each value of map, the value is the name of the version (a label) and
178
     * the key is the suffix for that version.
179
     * 
180
     * @return a map with suffix and labels of library versions. 
181
     */
182
    public Map<String,String> getLibFoldersVersions();
183
    
184
    /**
185
     * <p>
186
     * Returns a reference to an object (property) associated to this layer.</p>
187
     *
188
     * <p>
189
     * For example, you can attach a network definition to key "network" and
190
     * check
191
     * if a layer has a network loaded using
192
     * <i>getAssociatedObject("network")</i> and
193
     * that it's not null.</p>
194
     *
195
     * @param key the key associated to the property
196
     *
197
     * @return <code>null</code> if key is not found
198
     *
199
     * @see #getExtendedProperties()
200
     * @see #setProperty(Object, Object)
201
     */
202
    public Object getProperty(Object key);
203

  
204
    /**
205
     * Inserts an object as a property to this layer.
206
     *
207
     * @param key the key associated to the property
208
     * @param obj the property
209
     *
210
     * @see #getProperty(Object)
211
     * @see #getExtendedProperties()
212
     */
213
    public void setProperty(Object key, Object obj);
214

  
215
    /**
216
     * Returns a hash map with all new properties associated to this layer.
217
     *
218
     * @return hash table with the added properties
219
     *
220
     * @see #getProperty(Object)
221
     * @see #setProperty(Object, Object)
222
     */
223
    public Map getExtendedProperties();    
224
}
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.25/org.gvsig.scripting.lib/org.gvsig.scripting.lib.api/src/main/java/org/gvsig/scripting/ScriptingFolder.java
1
package org.gvsig.scripting;
2

  
3
import java.io.File;
4
import java.util.List;
5
import org.gvsig.tools.visitor.Visitable;
6

  
7
/**
8
 * <p> Interface that represents a directory in the ScriptingFramework.</p>
9
 * 
10
 * @see ScriptingUnit
11
 */
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff