Revision 553

View differences:

org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/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.8/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.8/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.8/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

  
13
import javax.swing.JFrame;
14
import javax.swing.JMenu;
15
import javax.swing.JMenuBar;
16
import javax.swing.JMenuItem;
17
import javax.swing.JPanel;
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(), 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(), "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(JPanel panel, String title) {
230
		JFrame frame = new JFrame(title);
231
		frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
232

  
233
		frame.setContentPane(panel);
234

  
235
		// Display the window.
236
		frame.pack();
237
		frame.setVisible(true);
238
	}
239
}
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8/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.8</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.8/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.8</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.126</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.8</connection>
20
        <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-scripting/org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8</developerConnection>
21
        <url>https://devel.gvsig.org/redmine/projects/gvsig-scripting/repository/show/org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8</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.8</version>
90
            </dependency>
91
            <dependency>
92
                <groupId>org.gvsig</groupId>
93
                <artifactId>org.gvsig.scripting.swing.api</artifactId>
94
                <version>2.3.8</version>
95
            </dependency>
96
            <dependency>
97
                <groupId>org.gvsig</groupId>
98
                <artifactId>org.gvsig.scripting.lib.impl</artifactId>
99
                <version>2.3.8</version>
100
            </dependency>
101
            <dependency>
102
                <groupId>org.gvsig</groupId>
103
                <artifactId>org.gvsig.scripting.swing.impl</artifactId>
104
                <version>2.3.8</version>
105
            </dependency>
106

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

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

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

  
125

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

  
133
            <dependency>
134
                <groupId>com.jeta</groupId>
135
                <artifactId>abeille</artifactId>
136
                <version>2.1.0.M3</version>
137
                <type>tar.gz</type>
138
            </dependency>
139

  
140
            <!-- Eliminar para org.gvsig.desktop > 2.0.115 -->
141
            <dependency>
142
                <groupId>org.jopendocument</groupId>
143
                <artifactId>jOpenDocument</artifactId>
144
                <version>1.3</version>
145
            </dependency>
146

  
147
        </dependencies>
148
    </dependencyManagement>
149

  
150
    <modules>
151
        <module>org.gvsig.scripting.thing</module>
152
        <module>org.gvsig.scripting.lib</module>
153
        <module>org.gvsig.scripting.swing</module>
154
        <module>org.gvsig.scripting.main</module>
155
        <module>org.gvsig.scripting.app</module>
156
    </modules>
157
</project>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/org.gvsig.scripting.lib/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</artifactId>
6
	<packaging>pom</packaging>
7
	<name>${project.artifactId}</name>
8
	<parent>
9
		<groupId>org.gvsig</groupId>
10
		<artifactId>org.gvsig.scripting</artifactId>
11
		<version>2.3.8</version>
12
	</parent>
13

  
14
	<modules>
15
		<module>org.gvsig.scripting.lib.api</module>
16
		<module>org.gvsig.scripting.lib.impl</module>
17
	</modules>
18
</project>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/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.impl</artifactId>
6
    <packaging>jar</packaging>
7
    <name>${project.artifactId}</name>
8
    <parent>
9
        <groupId>org.gvsig</groupId>
10
        <artifactId>org.gvsig.scripting.lib</artifactId>
11
        <version>2.3.8</version>
12
    </parent>
13
    <dependencies>
14
        <dependency>
15
            <groupId>commons-io</groupId>
16
            <artifactId>commons-io</artifactId>
17
            <scope>compile</scope>
18
        </dependency>
19
        <dependency>
20
            <groupId>org.gvsig</groupId>
21
            <artifactId>org.gvsig.tools.lib</artifactId>
22
            <scope>compile</scope>
23
        </dependency>
24
        <dependency>
25
            <groupId>org.gvsig</groupId>
26
            <artifactId>org.gvsig.scripting.lib.api</artifactId>
27
            <scope>compile</scope>
28
        </dependency>
29

  
30
        <dependency>
31
            <groupId>org.gvsig</groupId>
32
            <artifactId>org.gvsig.scripting.swing.api</artifactId>
33
            <scope>compile</scope>
34
        </dependency>
35
        <dependency>
36
            <groupId>org.gvsig</groupId>
37
            <artifactId>org.gvsig.about.api</artifactId>
38
            <scope>compile</scope>
39
        </dependency>
40
        <dependency>
41
            <groupId>org.ini4j</groupId>
42
            <artifactId>ini4j</artifactId>
43
            <scope>compile</scope>
44
        </dependency>
45
        <dependency>
46
            <groupId>javax.help</groupId>
47
            <artifactId>javahelp</artifactId>
48
            <scope>compile</scope>
49
        </dependency>
50
        <dependency>
51
            <groupId>org.gvsig</groupId>
52
            <artifactId>org.gvsig.installer.lib.api</artifactId>
53
            <scope>compile</scope>
54
        </dependency>
55
        <dependency>
56
            <groupId>org.gvsig</groupId>
57
            <artifactId>org.gvsig.installer.lib.spi</artifactId>
58
            <scope>compile</scope>
59
        </dependency>
60
        <dependency>
61
            <groupId>com.jeta</groupId>
62
            <artifactId>formsrt</artifactId>
63
            <scope>compile</scope>
64
        </dependency>
65

  
66
    </dependencies>
67
    <build>
68
        <plugins>
69
            <!-- TODO: MAKE TESTS WORK AND REMOVE THIS OPTION -->
70
            <plugin>
71
                <groupId>org.apache.maven.plugins</groupId>
72
                <artifactId>maven-surefire-plugin</artifactId>
73
                <configuration>
74
                    <skipTests>true</skipTests>
75
                </configuration>
76
            </plugin>
77
            <plugin>
78
                <!-- Skip compilation tests -->
79
                <groupId>org.apache.maven.plugins</groupId>
80
                <artifactId>maven-compiler-plugin</artifactId>
81
                <executions>
82
                    <execution>
83
                        <id>default-testCompile</id>
84
                        <phase>process-test-sources</phase>
85
                        <goals>
86
                            <goal>testCompile</goal>
87
                        </goals>
88
                        <configuration>
89
                            <skip>true</skip>
90
                        </configuration>
91
                    </execution>
92
                </executions>
93
            </plugin>
94

  
95

  
96
        </plugins>
97
    </build>
98
</project>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/nbactions.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<actions>
3
        <action>
4
            <actionName>CUSTOM-dependency:tree</actionName>
5
            <displayName>dependency:tree</displayName>
6
            <recursive>false</recursive>
7
            <goals>
8
                <goal>dependency:tree</goal>
9
            </goals>
10
        </action>
11
    </actions>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/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.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/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.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/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.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/src/test/resources/org/gvsig/scripting/impl/scripts/hola.py
1

  
2

  
3
def main():
4
  print 'hola'
5
 
6
def hola(name):
7
  return 'hola %s' % name
8
  
9
def adios():
10
  print 'adios'
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/src/test/resources/org/gvsig/scripting/impl/scripts/hola2.dlg
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!-- generated by ThinG, the Thinlet GUI editor -->
3
<panel>
4
    <button text="hola" action="click"/>
5
</panel>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/src/test/resources/org/gvsig/scripting/impl/scripts/hola2.py
1

  
2

  
3
def click():
4
  print 'click'
5

  
6
def main():
7
  print 'hola'
8
 
9
def hola(name):
10
  return 'hola %s' % name
11
  
12
def adios():
13
  print 'adios'
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/src/main/java/org/gvsig/scripting/impl/ScriptNotFoundException.java
1
package org.gvsig.scripting.impl;
2

  
3
import java.io.File;
4

  
5
public class ScriptNotFoundException extends RuntimeException {
6
	private File f = null;
7
	public ScriptNotFoundException(File f) {
8
		this.f = f;
9
	}
10
	public String getMessage() {
11
		return "Script not found: '"+ f.getPath()+"'.";
12
	}
13
}
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.8/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/src/main/java/org/gvsig/scripting/impl/DefaultScriptingManager.java
1
package org.gvsig.scripting.impl;
2

  
3
import java.io.File;
4
import java.util.ArrayList;
5
import java.util.Collections;
6
import java.util.HashMap;
7
import java.util.Iterator;
8
import java.util.List;
9
import java.util.Map;
10

  
11
import javax.script.ScriptContext;
12
import javax.script.ScriptEngine;
13
import javax.script.ScriptEngineFactory;
14
import javax.script.ScriptEngineManager;
15
import javax.script.SimpleBindings;
16
import javax.swing.ImageIcon;
17

  
18
import org.apache.commons.io.FileUtils;
19
import org.apache.commons.io.FilenameUtils;
20
import org.gvsig.scripting.ScriptingBaseScript;
21
import org.gvsig.scripting.ScriptingDialog;
22
import org.gvsig.scripting.ScriptingFolder;
23
import org.gvsig.scripting.ScriptingHelpManager;
24
import org.gvsig.scripting.ScriptingManager;
25
import org.gvsig.scripting.ScriptingScript;
26
import org.gvsig.scripting.ScriptingUnit;
27
import org.gvsig.tools.service.spi.ProviderFactory;
28
import org.slf4j.Logger;
29
import org.slf4j.LoggerFactory;
30

  
31
public class DefaultScriptingManager implements ScriptingManager {
32

  
33
    public static class RegisterSystemFolder {
34

  
35
        public String name;
36
        public File folder;
37

  
38
        public RegisterSystemFolder(String name, File folder) {
39
            this.name = name;
40
            this.folder = folder;
41
        }
42
    }
43

  
44
    private static final Logger LOG = LoggerFactory
45
            .getLogger(DefaultScriptingManager.class);
46

  
47
    protected Map<String, ImageIcon> icons;
48
    protected List<RegisterSystemFolder> systemFolders = new ArrayList<>();
49
    protected ScriptEngineManager engineManager = null;
50
    private final SimpleBindings bindings = new SimpleBindings();
51
    private ScriptingHelpManager helpManager = null;
52
    private List<String> unitTypes = null;
53
    private ClassLoader classLoader = null;
54
    private List<File> libFolders = new ArrayList<>();
55
    private File home = null;
56
    private List<ScriptingFolder> alternativeUserFolders = new ArrayList<>();
57
    private Map<String, String> extensionOfLanguage = null;
58
    private Map<String, String> languageOfExtension = null;
59
    private File packagesFolder;
60

  
61
    public DefaultScriptingManager() {
62
        this.classLoader = getClass().getClassLoader();
63
        this.setHomeFolder(null);
64
        this.bindings.put("ScriptingManager", this);
65
    }
66

  
67
    public DefaultScriptingManager(ClassLoader classLoader) {
68
        this();
69
        this.classLoader = classLoader;
70
    }
71

  
72
    private void createFolder(File f) {
73
        if (!f.exists()) {
74
            try {
75
                FileUtils.forceMkdir(f);
76
                LOG.info("Created scripting folder '" + f.getAbsolutePath() + "'");
77
            } catch (Throwable e) {
78
                LOG.warn("Can't Create scripting folder '" + f.getAbsolutePath() + "'");
79
            }
80
        }
81
    }
82

  
83
    private void createDefaultFolders(File home) {
84
        createFolder(new File(home, "scripts"));
85
        createFolder(new File(home, "help"));
86
        createFolder(new File(home, "lib"));
87
    }
88

  
89
    @Override
90
    public File getHomeFolder() {
91
        if (!this.home.exists()) {
92
            createFolder(home);
93
            createDefaultFolders(home);
94
        }
95
        return this.home;
96
    }
97

  
98
    @Override
99
    public void setHomeFolder(File home) {
100
        if (home == null) {
101
            this.home = new File(System.getProperty("user.home"), ".gvsig-scripting");
102
        } else {
103
            this.home = home;
104
        }
105
        createDefaultFolders(this.home);
106
        LOG.info("Set scripting home to '" + this.home.getAbsolutePath() + "'");
107
        this.addLibFolder(new File(this.home, "lib"));
108
    }
109

  
110
    protected ScriptEngineManager getEngineManager() {
111
        if (this.engineManager == null) {
112
            this.engineManager
113
                    = classLoader == null ? new ScriptEngineManager()
114
                            : new ScriptEngineManager(classLoader);
115
            showEnginesInfo(engineManager);
116
        }
117
        return this.engineManager;
118
    }
119

  
120
    private void showEnginesInfo(ScriptEngineManager mgr) {
121
        if (LOG.isInfoEnabled()) {
122
            List<ScriptEngineFactory> factories = mgr.getEngineFactories();
123
            StringBuilder buffer = new StringBuilder();
124
            List<Object> values = new ArrayList<>();
125
            buffer.append("Scripting engines available:");
126
            for (ScriptEngineFactory factory : factories) {
127

  
128
                // Main engine info
129
                buffer
130
                        .append("\n- {}: version = {}, language = {}, langVersion = {}");
131
                values.add(factory.getEngineName());
132
                values.add(factory.getEngineVersion());
133
                values.add(factory.getLanguageName());
134
                values.add(factory.getLanguageVersion());
135

  
136
                // Aliases
137
                buffer.append("\n\t- Aliases: ");
138
                List<String> engNames = factory.getNames();
139
                int size = engNames.size();
140
                for (String name : engNames) {
141
                    size--;
142
                    buffer.append("{}");
143
                    if (size > 0) {
144
                        buffer.append(", ");
145
                    }
146
                    values.add(name);
147
                }
148
                buffer.append("\n\t- File extensions: ");
149
                List<String> extNames = factory.getExtensions();
150
                size = extNames.size();
151
                for (String name : extNames) {
152
                    size--;
153
                    buffer.append("{}");
154
                    if (size > 0) {
155
                        buffer.append(", ");
156
                    }
157
                    values.add(name);
158
                }
159
                buffer.append("\n\t- Mime types: ");
160
                List<String> mimeNames = factory.getMimeTypes();
161
                size = mimeNames.size();
162
                for (String name : mimeNames) {
163
                    size--;
164
                    buffer.append("{}");
165
                    if (size > 0) {
166
                        buffer.append(", ");
167
                    }
168
                    values.add(name);
169
                }
170

  
171
            }
172
            LOG.info(buffer.toString(), values.toArray());
173
        }
174
    }
175

  
176
    protected ScriptEngine getEngine(String langName) {
177
        ScriptEngineManager manager = this.getEngineManager();
178
        ScriptEngine engine = manager.getEngineByName(langName);
179
        engine.getBindings(ScriptContext.ENGINE_SCOPE).putAll(bindings);
180
        return engine;
181
    }
182

  
183
    public ImageIcon getIcon(String name) {
184
        return this.icons.get(name);
185
    }
186

  
187
    @Override
188
    public String getEngineNameByLanguage(String langName) {
189
        List<ScriptEngineFactory> factories
190
                = getEngineManager().getEngineFactories();
191

  
192
        for (ScriptEngineFactory factory : factories) {
193
            if (factory.getLanguageName().equalsIgnoreCase(langName)) {
194
                return factory.getEngineName();
195
            }
196
        }
197
        return null;
198
    }
199

  
200
    public ScriptEngine getEngineByLanguage(String langName) {
201
        List<ScriptEngineFactory> factories
202
                = getEngineManager().getEngineFactories();
203

  
204
        for (ScriptEngineFactory factory : factories) {
205
            if (factory.getLanguageName().equalsIgnoreCase(langName)) {
206
                return factory.getScriptEngine();
207
            }
208
        }
209
        return null;
210
    }
211

  
212
    @Override
213
    public boolean validateUnitId(ScriptingFolder folder, String id) {
214
        List<ScriptingUnit> units = folder.getUnits();
215
        String fileName;
216
        String s[];
217
        String extension;
218
        for (ScriptingUnit unit : units) {
219
            fileName = unit.getId();
220
            fileName = FilenameUtils.getBaseName(fileName);
221
            if (fileName.equals(id)) {
222
                return false;
223
            }
224
        }
225
        return true;
226
    }
227

  
228
    public ScriptingScript createScript(ScriptingFolder folder, String id) {
229
        return this.createScript(folder, id, null);
230
    }
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff