You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/05/07 16:55:29 UTC

svn commit: r404778 [5/7] - in /incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows: ./ launch4j-2.1.1/ launch4j-2.1.1/bin/ launch4j-2.1.1/demo/ launch4j-2.1.1/demo/ConsoleApp/ launch4j-2.1.1/demo/ConsoleApp/l4j/ launch4j-2.1.1/demo/ConsoleApp...

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/binding/messages.properties
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/binding/messages.properties?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/binding/messages.properties (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/binding/messages.properties Sun May  7 07:55:12 2006
@@ -0,0 +1,34 @@
+#
+# 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+# 	Copyright (C) 2005 Grzegorz Kowal
+#
+# 	This program is free software; you can redistribute it and/or modify
+# 	it under the terms of the GNU General Public License as published by
+# 	the Free Software Foundation; either version 2 of the License, or
+# 	(at your option) any later version.
+#
+# 	This program is distributed in the hope that it will be useful,
+# 	but WITHOUT ANY WARRANTY; without even the implied warranty of
+# 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# 	GNU General Public License for more details.
+#
+# 	You should have received a copy of the GNU General Public License
+# 	along with this program; if not, write to the Free Software
+# 	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+OptComponentBinding.must.implement=Optional component must implement 
+
+Validator.empty.field=Enter: {0} 
+Validator.invalid.data=Invalid data: {0} 
+Validator.must.be.in.range={0} must be in range [{1}-{2}]
+Validator.must.be.at.least={0} must be at least 
+Validator.already.exists={0} already exists.
+Validator.doesnt.exist={0} doesn't exist.
+Validator.exceeds.max.length={0} exceeds the maximum length of {1} characters.
+
+Bindings.duplicate.binding=Duplicate binding
+
+JRadioButtonBinding.property.null=Property is null
+JRadioButtonBinding.nothing.selected=Nothing selected
+JRadioButtonBinding.index.out.of.bounds=Button index out of bounds

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/binding/messages_es.properties
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/binding/messages_es.properties?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/binding/messages_es.properties (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/binding/messages_es.properties Sun May  7 07:55:12 2006
@@ -0,0 +1,34 @@
+#
+# 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+# 	Copyright (C) 2005 Grzegorz Kowal
+#
+# 	This program is free software; you can redistribute it and/or modify
+# 	it under the terms of the GNU General Public License as published by
+# 	the Free Software Foundation; either version 2 of the License, or
+# 	(at your option) any later version.
+#
+# 	This program is distributed in the hope that it will be useful,
+# 	but WITHOUT ANY WARRANTY; without even the implied warranty of
+# 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# 	GNU General Public License for more details.
+#
+# 	You should have received a copy of the GNU General Public License
+# 	along with this program; if not, write to the Free Software
+# 	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+OptComponentBinding.must.implement=El componente opcional debe ser implementado 
+
+Validator.empty.field=Introduzca: {0} 
+Validator.invalid.data=Dato no válido: {0} 
+Validator.must.be.in.range={0} debe estar en el rango [{1}-{2}]
+Validator.must.be.at.least={0} deb ser al menos 
+Validator.already.exists={0} ya existe.
+Validator.doesnt.exist={0} no existe.
+Validator.exceeds.max.length={0} excede la longitud máxima de {1} caracteres.
+
+Bindings.duplicate.binding=Binding duplicado
+
+JRadioButtonBinding.property.null=La propiedad es nula
+JRadioButtonBinding.nothing.selected=Nada seleccionado
+JRadioButtonBinding.index.out.of.bounds=Índice de botón fuera de límite

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Config.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Config.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Config.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Config.java Sun May  7 07:55:12 2006
@@ -0,0 +1,242 @@
+/*
+ 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+ 	Copyright (C) 2005 Grzegorz Kowal
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+/*
+ * Created on Apr 21, 2005
+ */
+package net.sf.launch4j.config;
+
+import java.io.File;
+
+import net.sf.launch4j.binding.IValidatable;
+import net.sf.launch4j.binding.Validator;
+
+/**
+ * @author Copyright (C) 2005 Grzegorz Kowal
+ */
+public class Config implements IValidatable {
+
+	public static final String HEADER = "header"; //$NON-NLS-1$
+	public static final String JAR = "jar"; //$NON-NLS-1$
+	public static final String OUTFILE = "outfile"; //$NON-NLS-1$
+	public static final String ERR_TITLE = "errTitle"; //$NON-NLS-1$
+	public static final String JAR_ARGS = "jarArgs"; //$NON-NLS-1$
+	public static final String CHDIR = "chdir"; //$NON-NLS-1$
+	public static final String CUSTOM_PROC_NAME = "customProcName"; //$NON-NLS-1$
+	public static final String STAY_ALIVE = "stayAlive"; //$NON-NLS-1$
+	public static final String ICON = "icon"; //$NON-NLS-1$
+
+	public static final int GUI_HEADER = 0;
+	public static final int CONSOLE_HEADER = 1;
+
+	private boolean dontWrapJar;
+	private int headerType;
+	private String[] headerObjects;
+	private String[] libs;
+	private File jar;
+	private File outfile;
+
+	// runtime configuration
+	private String errTitle;
+	private String jarArgs;
+	private String chdir;
+	private boolean customProcName;
+	private boolean stayAlive;
+	private File icon;
+	private Jre jre;
+	private Splash splash;
+	private VersionInfo versionInfo;
+
+	public void checkInvariants() {
+		Validator.checkTrue(outfile != null && outfile.getPath().endsWith(".exe"), //$NON-NLS-1$
+				"outfile", Messages.getString("Config.specify.output.exe")); //$NON-NLS-1$ //$NON-NLS-2$
+		if (dontWrapJar) {
+			Validator.checkRelativeWinPath(jar.getPath(), "jar", Messages.getString("Config.application.jar.path"));
+		} else {
+			Validator.checkFile(jar, "jar", Messages.getString("Config.application.jar")); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		if (!Validator.isEmpty(chdir)) {
+			Validator.checkRelativeWinPath(chdir,
+					"chdir", Messages.getString("Config.chdir.relative")); //$NON-NLS-1$ //$NON-NLS-2$
+			Validator.checkFalse(chdir.toLowerCase().equals("true") //$NON-NLS-1$
+					|| chdir.toLowerCase().equals("false"), //$NON-NLS-1$
+					"chdir", Messages.getString("Config.chdir.path")); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		Validator.checkOptFile(icon, "icon", Messages.getString("Config.icon")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkOptString(jarArgs, 128, "jarArgs", Messages.getString("Config.jar.arguments")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkOptString(errTitle, 128, "errTitle", Messages.getString("Config.error.title")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkRange(headerType, GUI_HEADER, CONSOLE_HEADER,
+				"headerType", Messages.getString("Config.invalid.header.type")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkTrue(headerType != CONSOLE_HEADER || splash == null,
+				"headerType", Messages.getString("Config.splash.not.impl.by.console.hdr")); //$NON-NLS-1$ //$NON-NLS-2$
+		jre.checkInvariants();
+	}
+	
+	public void validate() {
+		checkInvariants();
+		if (splash != null) {
+			splash.checkInvariants();
+		}
+		if (versionInfo != null) {
+			versionInfo.checkInvariants();
+		}
+	}
+
+	/** Change current directory to EXE location. */
+	public String getChdir() {
+		return chdir;
+	}
+
+	public void setChdir(String chdir) {
+		this.chdir = chdir;
+	}
+
+	/** Constant command line arguments passed to application jar. */
+	public String getJarArgs() {
+		return jarArgs;
+	}
+
+	public void setJarArgs(String jarArgs) {
+		this.jarArgs = jarArgs;
+	}
+
+	/** Optional, error message box title. */
+	public String getErrTitle() {
+		return errTitle;
+	}
+
+	public void setErrTitle(String errTitle) {
+		this.errTitle = errTitle;
+	}
+
+	/** launch4j header file. */
+	public int getHeaderType() {
+		return headerType;
+	}
+
+	public void setHeaderType(int headerType) {
+		this.headerType = headerType;
+	}
+	
+	public boolean isCustomHeaderObjects() {
+		return headerObjects != null && headerObjects.length > 0;
+	}
+
+	public String[] getHeaderObjects() {
+		return isCustomHeaderObjects() ? headerObjects
+				: headerType == GUI_HEADER
+						? LdDefaults.getInstance().getGuiHeaderObjects()
+						: LdDefaults.getInstance().getConsoleHeaderObjects();
+	}
+
+	public void setHeaderObjects(String[] headerObjects) {
+		this.headerObjects = headerObjects;
+	}
+
+	public boolean isCustomLibs() {
+		return libs != null && libs.length > 0;
+	}
+
+	public String[] getLibs() {
+		return isCustomLibs() ? libs : LdDefaults.getInstance().getLibs();
+	}
+
+	public void setLibs(String[] libs) {
+		this.libs = libs;
+	}
+
+	/** ICO file. */
+	public File getIcon() {
+		return icon;
+	}
+
+	public void setIcon(File icon) {
+		this.icon = icon;
+	}
+
+	/** Jar to wrap. */
+	public File getJar() {
+		return jar;
+	}
+
+	public void setJar(File jar) {
+		this.jar = jar;
+	}
+
+	/** JRE configuration */
+	public Jre getJre() {
+		return jre;
+	}
+
+	public void setJre(Jre jre) {
+		this.jre = jre;
+	}
+
+	/** Output EXE file. */
+	public File getOutfile() {
+		return outfile;
+	}
+
+	public void setOutfile(File outfile) {
+		this.outfile = outfile;
+	}
+
+	/** Custom process name as the output EXE file name. */
+	public boolean isCustomProcName() {
+		return customProcName;
+	}
+
+	public void setCustomProcName(boolean customProcName) {
+		this.customProcName = customProcName;
+	}
+
+	/** Splash screen configuration. */
+	public Splash getSplash() {
+		return splash;
+	}
+
+	public void setSplash(Splash splash) {
+		this.splash = splash;
+	}
+
+	/** Stay alive after launching the application. */
+	public boolean isStayAlive() {
+		return stayAlive;
+	}
+
+	public void setStayAlive(boolean stayAlive) {
+		this.stayAlive = stayAlive;
+	}
+	
+	public VersionInfo getVersionInfo() {
+		return versionInfo;
+	}
+
+	public void setVersionInfo(VersionInfo versionInfo) {
+		this.versionInfo = versionInfo;
+	}
+
+	public boolean isDontWrapJar() {
+		return dontWrapJar;
+	}
+
+	public void setDontWrapJar(boolean dontWrapJar) {
+		this.dontWrapJar = dontWrapJar;
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/ConfigPersister.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/ConfigPersister.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/ConfigPersister.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/ConfigPersister.java Sun May  7 07:55:12 2006
@@ -0,0 +1,203 @@
+/*
+ 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+ 	Copyright (C) 2005 Grzegorz Kowal
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+/*
+ * Created on Apr 22, 2005
+ */
+package net.sf.launch4j.config;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Properties;
+
+import net.sf.launch4j.Util;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+
+/**
+ * @author Copyright (C) 2005 Grzegorz Kowal
+ */
+public class ConfigPersister {
+
+	private static final ConfigPersister _instance = new ConfigPersister();
+
+	private final XStream _xstream;
+	private Config _config;
+	private File _configPath;
+
+	private ConfigPersister() {
+		_xstream = new XStream(new DomDriver());
+    	_xstream.alias("launch4jConfig", Config.class);
+    	_xstream.alias("jre", Jre.class);
+    	_xstream.alias("splash", Splash.class);
+    	_xstream.alias("versionInfo", VersionInfo.class);
+    	_xstream.alias("file", String.class);
+	}
+
+	public static ConfigPersister getInstance() {
+		return _instance;
+	}
+	
+	public Config getConfig() {
+		return _config;
+	}
+
+	public File getConfigPath() {
+		return _configPath;
+	}
+	
+	public File getOutputPath() throws IOException {
+		if (_config.getOutfile().isAbsolute()) {
+			return _config.getOutfile().getParentFile();
+		}
+		File parent = _config.getOutfile().getParentFile();
+		return (parent != null) ? new File(_configPath, parent.getPath()) : _configPath;
+	}
+	
+	public File getOutputFile() throws IOException {
+		return _config.getOutfile().isAbsolute()
+			? _config.getOutfile()
+			: new File(getOutputPath(), _config.getOutfile().getName());
+	}
+
+	public void createBlank() {
+		_config = new Config();
+		_config.setJre(new Jre());
+		_configPath = null;
+	}
+
+	public void setAntConfig(Config c, File basedir) {
+		_config = c;
+		_configPath = basedir;
+	}
+
+	public void load(File f) throws ConfigPersisterException {
+		try {
+			BufferedReader r = new BufferedReader(new FileReader(f));
+	    	_config = (Config) _xstream.fromXML(r);
+	    	r.close();
+	    	setConfigPath(f);
+		} catch (Exception e) {
+			throw new ConfigPersisterException(e);
+		}
+	}
+
+	/**
+	 * Imports launch4j 1.x.x config file.
+	 */
+	public void loadVersion1(File f) throws ConfigPersisterException {
+		try {
+			Props props = new Props(f);
+			_config = new Config();
+			String header = props.getProperty(Config.HEADER);
+			_config.setHeaderType(header == null
+					|| header.toLowerCase().equals("guihead.bin") ? 0 : 1);
+			_config.setJar(props.getFile(Config.JAR));
+			_config.setOutfile(props.getFile(Config.OUTFILE));
+			_config.setJre(new Jre());
+			_config.getJre().setPath(props.getProperty(Jre.PATH));
+			_config.getJre().setMinVersion(props.getProperty(Jre.MIN_VERSION));
+			_config.getJre().setMaxVersion(props.getProperty(Jre.MAX_VERSION));
+			_config.getJre().setArgs(props.getProperty(Jre.ARGS));
+			_config.setJarArgs(props.getProperty(Config.JAR_ARGS));
+			_config.setChdir("true".equals(props.getProperty(Config.CHDIR)) ? "." : null);
+			_config.setCustomProcName("true".equals(
+					props.getProperty("setProcName")));				// 1.x
+			_config.setStayAlive("true".equals(props.getProperty(Config.STAY_ALIVE)));
+			_config.setErrTitle(props.getProperty(Config.ERR_TITLE));
+			_config.setIcon(props.getFile(Config.ICON));
+			File splashFile = props.getFile(Splash.SPLASH_FILE);
+			if (splashFile != null) {
+				_config.setSplash(new Splash());
+				_config.getSplash().setFile(splashFile);
+				String waitfor = props.getProperty("waitfor");		// 1.x
+				_config.getSplash().setWaitForWindow(waitfor != null && !waitfor.equals(""));
+				String splashTimeout = props.getProperty(Splash.TIMEOUT);
+				if (splashTimeout != null) {
+					_config.getSplash().setTimeout(Integer.parseInt(splashTimeout));	
+				}
+				_config.getSplash().setTimeoutErr("true".equals(
+						props.getProperty(Splash.TIMEOUT_ERR)));
+			} else {
+				_config.setSplash(null);
+			}
+			setConfigPath(f);
+		} catch (IOException e) {
+			throw new ConfigPersisterException(e);
+		}
+	}
+
+	public void save(File f) throws ConfigPersisterException {
+		try {
+			BufferedWriter w = new BufferedWriter(new FileWriter(f));
+	    	_xstream.toXML(_config, w);
+	    	w.close();
+	    	setConfigPath(f);
+		} catch (Exception e) {
+			throw new ConfigPersisterException(e);
+		}
+	}
+
+	private void setConfigPath(File configFile) {
+		_configPath = configFile.getAbsoluteFile().getParentFile();
+	}
+
+	private class Props {
+		final Properties _properties = new Properties();
+
+		public Props(File f) throws IOException {
+			FileInputStream is = null;
+			try {
+				is = new FileInputStream(f);
+				_properties.load(is);
+			} finally {
+				Util.close(is);
+			}
+		}
+
+		/**
+		 * Get property and remove trailing # comments.
+		 */
+		public String getProperty(String key) {
+			String p = _properties.getProperty(key);
+			if (p == null) {
+				return null;
+			}
+			int x = p.indexOf('#');
+			if (x == -1) {
+				return p;
+			}
+			do {
+				x--;
+			} while (x > 0 && (p.charAt(x) == ' ' || p.charAt(x) == '\t'));
+			return (x == 0) ? "" : p.substring(0, x + 1);
+		}
+
+		public File getFile(String key) {
+			String value = getProperty(key);
+			return value != null ? new File(value) : null;
+		}
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/ConfigPersisterException.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/ConfigPersisterException.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/ConfigPersisterException.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/ConfigPersisterException.java Sun May  7 07:55:12 2006
@@ -0,0 +1,37 @@
+/*
+ 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+ 	Copyright (C) 2005 Grzegorz Kowal
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+/*
+ * Created on Apr 22, 2005
+ */
+package net.sf.launch4j.config;
+
+/**
+ * @author Copyright (C) 2005 Grzegorz Kowal
+ */
+public class ConfigPersisterException extends Exception {
+
+	public ConfigPersisterException(String msg, Throwable t) {
+		super(msg, t);
+	}
+	
+	public ConfigPersisterException(Throwable t) {
+		super(t);
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Jre.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Jre.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Jre.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Jre.java Sun May  7 07:55:12 2006
@@ -0,0 +1,137 @@
+/*
+ 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+ 	Copyright (C) 2005 Grzegorz Kowal
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+/*
+ * Created on Apr 21, 2005
+ */
+package net.sf.launch4j.config;
+
+import net.sf.launch4j.binding.IValidatable;
+import net.sf.launch4j.binding.Validator;
+
+/**
+ * @author Copyright (C) 2005 Grzegorz Kowal
+ */
+public class Jre implements IValidatable {
+	public static final String VERSION_PATTERN = "(\\d\\.){2}\\d(_\\d+)?"; //$NON-NLS-1$
+	public static final String PATH = "jrepath"; //$NON-NLS-1$
+	public static final String MIN_VERSION = "javamin"; //$NON-NLS-1$
+	public static final String MAX_VERSION = "javamax"; //$NON-NLS-1$
+	public static final String ARGS = "jvmArgs"; //$NON-NLS-1$
+
+	private String path;
+	private String minVersion;
+	private String maxVersion;
+	private int initialHeapSize;
+	private int maxHeapSize;
+	private String args;
+
+	public void checkInvariants() {
+		Validator.checkOptString(minVersion, 10, VERSION_PATTERN,
+				"jre.minVersion", Messages.getString("Jre.min.version")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkOptString(maxVersion, 10, VERSION_PATTERN,
+				"jre.maxVersion", Messages.getString("Jre.max.version")); //$NON-NLS-1$ //$NON-NLS-2$
+		if (Validator.isEmpty(path)) {
+			Validator.checkFalse(Validator.isEmpty(minVersion),
+					"jre.path", Messages.getString("Jre.specify.jre.path.min.version")); //$NON-NLS-1$ //$NON-NLS-2$
+		} else {
+			Validator.checkRelativeWinPath(path,
+					"jre.path", Messages.getString("Jre.embedded.path.rel")); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		if (!Validator.isEmpty(maxVersion)) {
+			Validator.checkFalse(Validator.isEmpty(minVersion),
+					"jre.minVersion", Messages.getString("Jre.specify.min.version")); //$NON-NLS-1$ //$NON-NLS-2$
+			Validator.checkTrue(minVersion.compareTo(maxVersion) < 0,
+					"jre.maxVersion", Messages.getString("Jre.max.greater.than.min")); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		Validator.checkTrue(initialHeapSize >= 0, "jre.initialHeapSize", //$NON-NLS-1$
+				Messages.getString("Jre.initial.heap")); //$NON-NLS-1$
+		Validator.checkTrue(maxHeapSize == 0 || initialHeapSize <= maxHeapSize,
+				"jre.maxHeapSize", Messages.getString("Jre.max.heap")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkOptString(args, 512, "jre.args", Messages.getString("Jre.jvm.args")); //$NON-NLS-1$ //$NON-NLS-2$
+		if (!Validator.isEmpty(args)) {
+			int quotes = 0;
+			for (int i = 0; i < args.length(); i++) {
+				if (args.charAt(i) == '"') {
+					quotes++;
+				}
+			}
+			if (quotes % 2 > 0) {
+				Validator.signalViolation("jre.args",
+						Messages.getString("Jre.jvm.args.unclosed.quotation"));
+			}
+			Validator.checkTrue(args.matches("[^%]*|([^%]*\"[^%\"]*%[^%\"]*%[^%\"]*\"[^%]*)*"),
+				"jre.args", Messages.getString("Jre.jvm.args.variable"));
+		}
+	}
+
+	/** JVM arguments: XOptions, system properties. */
+	public String getArgs() {
+		return args;
+	}
+
+	public void setArgs(String args) {
+		this.args = args;
+	}
+
+	/** Max Java version (x.x.x) */
+	public String getMaxVersion() {
+		return maxVersion;
+	}
+
+	public void setMaxVersion(String maxVersion) {
+		this.maxVersion = maxVersion;
+	}
+
+	/** Min Java version (x.x.x) */
+	public String getMinVersion() {
+		return minVersion;
+	}
+
+	public void setMinVersion(String minVersion) {
+		this.minVersion = minVersion;
+	}
+
+	/** JRE path */
+	public String getPath() {
+		return path;
+	}
+
+	public void setPath(String path) {
+		this.path = path;
+	}
+
+	/** Initial heap size in MB */
+	public int getInitialHeapSize() {
+		return initialHeapSize;
+	}
+
+	public void setInitialHeapSize(int initialHeapSize) {
+		this.initialHeapSize = initialHeapSize;
+	}
+
+	/** Max heap size in MB */
+	public int getMaxHeapSize() {
+		return maxHeapSize;
+	}
+
+	public void setMaxHeapSize(int maxHeapSize) {
+		this.maxHeapSize = maxHeapSize;
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/LdDefaults.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/LdDefaults.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/LdDefaults.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/LdDefaults.java Sun May  7 07:55:12 2006
@@ -0,0 +1,63 @@
+/*
+ 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+ 	Copyright (C) 2005 Grzegorz Kowal
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+/*
+ * Created on Sep 3, 2005
+ */
+package net.sf.launch4j.config;
+
+public class LdDefaults {
+	private static final LdDefaults _instance = new LdDefaults();
+
+	private final String[] _guiHeaderObjects;
+	private final String[] _consoleHeaderObjects;
+	private final String[] _libs;
+
+	private LdDefaults() {
+		_guiHeaderObjects = new String[] {"w32api/crt2.o",
+				"head/guihead.o",
+				"head/head.o"};
+		_consoleHeaderObjects = new String[] {"w32api/crt2.o",
+				"head/consolehead.o",
+				"head/head.o"};
+		_libs = new String[] {"w32api/libmingw32.a",
+				"w32api/libgcc.a",
+				"w32api/libmsvcrt.a",
+				"w32api/libkernel32.a",
+				"w32api/libuser32.a",
+				"w32api/libadvapi32.a",
+				"w32api/libshell32.a"};
+	}
+
+	public static LdDefaults getInstance() {
+		return _instance;
+	}
+
+	public String[] getGuiHeaderObjects() {
+		return _guiHeaderObjects;
+	}
+	
+	public String[] getConsoleHeaderObjects() {
+		return _consoleHeaderObjects;
+	}
+	
+	public String[] getLibs() {
+		return _libs;
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Messages.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Messages.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Messages.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Messages.java Sun May  7 07:55:12 2006
@@ -0,0 +1,47 @@
+package net.sf.launch4j.config;
+
+import java.text.MessageFormat;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class Messages {
+	private static final String BUNDLE_NAME = "net.sf.launch4j.config.messages"; //$NON-NLS-1$
+
+	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
+			.getBundle(BUNDLE_NAME);
+	private static final MessageFormat FORMATTER = new MessageFormat("");
+
+	private Messages() {
+	}
+	
+	public static String getString(String key) {
+		// TODO Auto-generated method stub
+		try {
+			return RESOURCE_BUNDLE.getString(key);
+		} catch (MissingResourceException e) {
+			return '!' + key + '!';
+		}
+	}
+	
+	public static String getString(String key, String arg0) {
+		return getString(key, new Object[] {arg0});
+	}
+
+	public static String getString(String key, String arg0, String arg1) {
+		return getString(key, new Object[] {arg0, arg1});
+	}
+
+	public static String getString(String key, String arg0, String arg1, String arg2) {
+		return getString(key, new Object[] {arg0, arg1, arg2});
+	}
+
+	public static String getString(String key, Object[] args) {
+		// TODO Auto-generated method stub
+		try {
+			FORMATTER.applyPattern(RESOURCE_BUNDLE.getString(key));
+			return FORMATTER.format(args);
+		} catch (MissingResourceException e) {
+			return '!' + key + '!';
+		}
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Splash.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Splash.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Splash.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/Splash.java Sun May  7 07:55:12 2006
@@ -0,0 +1,84 @@
+/*
+ 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+ 	Copyright (C) 2005 Grzegorz Kowal
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+/*
+ * Created on Apr 21, 2005
+ */
+package net.sf.launch4j.config;
+
+import java.io.File;
+
+import net.sf.launch4j.binding.IValidatable;
+import net.sf.launch4j.binding.Validator;
+
+/**
+ * @author Copyright (C) 2005 Grzegorz Kowal
+ */
+public class Splash implements IValidatable {
+	public static final String SPLASH_FILE = "splash"; //$NON-NLS-1$
+	public static final String WAIT_FOR_TITLE = "waitForTitle"; //$NON-NLS-1$
+	public static final String TIMEOUT = "splashTimeout"; //$NON-NLS-1$
+	public static final String TIMEOUT_ERR = "splashTimeoutErr"; //$NON-NLS-1$
+
+	private File file;
+	private boolean waitForWindow = true;
+	private int timeout = 60;
+	private boolean timeoutErr = true;
+
+	public void checkInvariants() {
+		Validator.checkFile(file, "splash.file", Messages.getString("Splash.splash.file")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkRange(timeout, 1, 60 * 15, "splash.timeout", Messages.getString("Splash.splash.timeout")); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/** Splash screen in BMP format. */
+	public File getFile() {
+		return file;
+	}
+
+	public void setFile(File file) {
+		this.file = file;
+	}
+
+	/** Splash timeout in seconds. */
+	public int getTimeout() {
+		return timeout;
+	}
+
+	public void setTimeout(int timeout) {
+		this.timeout = timeout;
+	}
+
+	/** Signal error on splash timeout. */
+	public boolean isTimeoutErr() {
+		return timeoutErr;
+	}
+
+	public void setTimeoutErr(boolean timeoutErr) {
+		this.timeoutErr = timeoutErr;
+	}
+
+	/** Hide splash screen when the child process displayes the first window. */
+	public boolean getWaitForWindow() {
+		return waitForWindow;
+	}
+
+	public void setWaitForWindow(boolean waitForWindow) {
+		this.waitForWindow = waitForWindow;
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/VersionInfo.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/VersionInfo.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/VersionInfo.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/VersionInfo.java Sun May  7 07:55:12 2006
@@ -0,0 +1,135 @@
+/*
+ * Created on May 21, 2005
+ */
+package net.sf.launch4j.config;
+
+import net.sf.launch4j.binding.IValidatable;
+import net.sf.launch4j.binding.Validator;
+
+/**
+ * @author Copyright (C) 2005 Grzegorz Kowal
+ */
+public class VersionInfo implements IValidatable {
+	public static final String VERSION_PATTERN = "(\\d+\\.){3}\\d+"; //$NON-NLS-1$
+	private static final int MAX_LEN = 150;
+
+	private String fileVersion;
+	private String txtFileVersion;
+	private String fileDescription;
+	private String copyright;
+	private String productVersion;
+	private String txtProductVersion;
+	private String productName;
+	private String companyName;
+	private String internalName;
+	private String originalFilename;
+
+	public void checkInvariants() {
+		Validator.checkString(fileVersion, 20, VERSION_PATTERN,
+				"versionInfo.fileVersion", Messages.getString("VersionInfo.file.version")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkString(txtFileVersion, 50,
+				"versionInfo.txtFileVersion", Messages.getString("VersionInfo.txt.file.version")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkString(fileDescription, MAX_LEN,
+				"versionInfo.fileDescription", Messages.getString("VersionInfo.file.description")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkString(copyright, MAX_LEN,
+				"versionInfo.copyright", Messages.getString("VersionInfo.copyright")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkString(productVersion, 20, VERSION_PATTERN,
+				"versionInfo.productVersion", Messages.getString("VersionInfo.product.version")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkString(txtProductVersion, 50,
+				"versionInfo.txtProductVersion", Messages.getString("VersionInfo.txt.product.version")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkString(productName, MAX_LEN,
+				"versionInfo.productName", Messages.getString("VersionInfo.product.name")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkOptString(companyName, MAX_LEN,
+				"versionInfo.companyName", Messages.getString("VersionInfo.company.name")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkString(internalName, 50,
+				"versionInfo.internalName", Messages.getString("VersionInfo.internal.name")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkTrue(!internalName.endsWith(".exe"), //$NON-NLS-1$
+				"versionInfo.internalName", //$NON-NLS-1$
+				Messages.getString("VersionInfo.internal.name.not.exe")); //$NON-NLS-1$
+		Validator.checkString(originalFilename, 50,
+				"versionInfo.originalFilename", Messages.getString("VersionInfo.original.filename")); //$NON-NLS-1$ //$NON-NLS-2$
+		Validator.checkTrue(originalFilename.endsWith(".exe"), //$NON-NLS-1$
+				"versionInfo.originalFilename", //$NON-NLS-1$
+				Messages.getString("VersionInfo.original.filename.exe")); //$NON-NLS-1$
+	}
+
+	public String getCompanyName() {
+		return companyName;
+	}
+
+	public void setCompanyName(String companyName) {
+		this.companyName = companyName;
+	}
+
+	public String getCopyright() {
+		return copyright;
+	}
+
+	public void setCopyright(String copyright) {
+		this.copyright = copyright;
+	}
+
+	public String getFileDescription() {
+		return fileDescription;
+	}
+
+	public void setFileDescription(String fileDescription) {
+		this.fileDescription = fileDescription;
+	}
+
+	public String getFileVersion() {
+		return fileVersion;
+	}
+
+	public void setFileVersion(String fileVersion) {
+		this.fileVersion = fileVersion;
+	}
+
+	public String getInternalName() {
+		return internalName;
+	}
+
+	public void setInternalName(String internalName) {
+		this.internalName = internalName;
+	}
+
+	public String getOriginalFilename() {
+		return originalFilename;
+	}
+
+	public void setOriginalFilename(String originalFilename) {
+		this.originalFilename = originalFilename;
+	}
+
+	public String getProductName() {
+		return productName;
+	}
+
+	public void setProductName(String productName) {
+		this.productName = productName;
+	}
+
+	public String getProductVersion() {
+		return productVersion;
+	}
+
+	public void setProductVersion(String productVersion) {
+		this.productVersion = productVersion;
+	}
+
+	public String getTxtFileVersion() {
+		return txtFileVersion;
+	}
+
+	public void setTxtFileVersion(String txtFileVersion) {
+		this.txtFileVersion = txtFileVersion;
+	}
+
+	public String getTxtProductVersion() {
+		return txtProductVersion;
+	}
+
+	public void setTxtProductVersion(String txtProductVersion) {
+		this.txtProductVersion = txtProductVersion;
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/messages.properties
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/messages.properties?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/messages.properties (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/messages.properties Sun May  7 07:55:12 2006
@@ -0,0 +1,57 @@
+#
+# 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+# 	Copyright (C) 2005 Grzegorz Kowal
+#
+# 	This program is free software; you can redistribute it and/or modify
+# 	it under the terms of the GNU General Public License as published by
+# 	the Free Software Foundation; either version 2 of the License, or
+# 	(at your option) any later version.
+#
+# 	This program is distributed in the hope that it will be useful,
+# 	but WITHOUT ANY WARRANTY; without even the implied warranty of
+# 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# 	GNU General Public License for more details.
+#
+# 	You should have received a copy of the GNU General Public License
+# 	along with this program; if not, write to the Free Software
+# 	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+Splash.splash.file=Splash file
+Splash.splash.timeout=Splash timeout
+
+Config.specify.output.exe=Specify output file with .exe extension.
+Config.application.jar=Application jar
+Config.application.jar.path=Specify runtime path of the jar relative to the executable.
+Config.chdir.relative='chdir' must be a path relative to the executable.
+Config.chdir.path='chdir' is now a path instead of a boolean, please check the docs.
+Config.icon=Icon
+Config.jar.arguments=Jar arguments
+Config.error.title=Error title
+Config.invalid.header.type=Invalid header type
+Config.splash.not.impl.by.console.hdr=Splash screen is not implemented by console header.
+
+VersionInfo.file.version=File version, should be 'x.x.x.x'
+VersionInfo.txt.file.version=Free form file version
+VersionInfo.file.description=File description
+VersionInfo.copyright=Copyright
+VersionInfo.product.version=Product version, should be 'x.x.x.x'
+VersionInfo.txt.product.version=Free from product version
+VersionInfo.product.name=Product name
+VersionInfo.company.name=Company name
+VersionInfo.internal.name=Internal name
+VersionInfo.internal.name.not.exe=Internal name shouldn't have the .exe extension.
+VersionInfo.original.filename=Original filename
+VersionInfo.original.filename.exe=Original filename should end with the .exe extension.
+
+Jre.min.version=Minimum JRE version should be x.x.x[_xx]
+Jre.max.version=Maximum JRE version should be x.x.x[_xx]
+Jre.specify.jre.path.min.version=Specify embedded JRE path or/and minimum JRE version.
+Jre.embedded.path.rel=Embedded JRE path must be a path relative to the executable.
+Jre.specify.min.version=Specify minimum JRE version.
+Jre.max.greater.than.min=Maximum JRE version must be greater than the minimum.\nTo use a certain JRE version, you may set the min/max range to [1.4.2 - 1.4.2_10] for example.
+Jre.initial.heap=Initial heap size cannot be negative, specify 0 or leave the field blank to use the JVM default.
+Jre.max.heap=Maximum heap size cannot be less than the initial size, specify 0 or leave the field blank to use the JVM default.
+Jre.jvm.args=JVM arguments
+Jre.jvm.args.unclosed.quotation=JVM arguments contain an unclosed quotation.
+Jre.jvm.args.variable=Invalid environment variable reference.

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/messages_es.properties
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/messages_es.properties?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/messages_es.properties (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/config/messages_es.properties Sun May  7 07:55:12 2006
@@ -0,0 +1,51 @@
+#
+# 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+# 	Copyright (C) 2005 Grzegorz Kowal
+# 	Spanish translation (C) 2005 Patricio Martínez Ros
+#
+# 	This program is free software; you can redistribute it and/or modify
+# 	it under the terms of the GNU General Public License as published by
+# 	the Free Software Foundation; either version 2 of the License, or
+# 	(at your option) any later version.
+#
+# 	This program is distributed in the hope that it will be useful,
+# 	but WITHOUT ANY WARRANTY; without even the implied warranty of
+# 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# 	GNU General Public License for more details.
+#
+# 	You should have received a copy of the GNU General Public License
+# 	along with this program; if not, write to the Free Software
+# 	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+Splash.splash.file = Fichero de la pantalla de bienvenida
+Splash.splash.timeout = Tiempo de espera de la pantalla de bienvenida
+Config.specify.output.exe = Especifique el fichero de salida con extensi\u00F3n .exe.
+Config.application.jar = Aplicaci\u00F3n jar
+Config.application.jar.path = Especifique la ruta del jar relativa al ejecutable. 
+Config.chdir.relative = 'Cambiar al directorio' debe ser una ruta relativa al ejecutable.
+Config.chdir.path = 'Cambiar al directorio' ahora es una ruta en lugar de un booleano, por favor consulte la documentaci\u00F3n.
+Config.icon = Icono
+Config.jar.arguments = Argumentos del jar
+Config.error.title = T\u00EDtulo de error
+Config.invalid.header.type = Tipo de cabecera no v\u00E1lido
+Config.splash.not.impl.by.console.hdr = La pantalla de bienvenida no est\u00E1 implementada para la cabecera de tipo consola.
+VersionInfo.file.version = La versi\u00F3n del fichero, deber\u00EDa ser 'x.x.x.x'
+VersionInfo.txt.file.version = Forma libre de versi\u00F3n del fichero
+VersionInfo.file.description = Descripci\u00F3n del fichero
+VersionInfo.copyright = Copyright
+VersionInfo.product.version = Versi\u00F3n del producto, deber\u00EDa ser 'x.x.x.x'
+VersionInfo.txt.product.version = Forma libre de versi\u00F3n del producto
+VersionInfo.product.name = Nombre del producto
+VersionInfo.company.name = Nombre de la organizaci\u00F3n
+VersionInfo.internal.name = Nombre interno
+VersionInfo.internal.name.not.exe = El nombre interno no deber\u00EDa tener extensi\u00F3n .exe.
+VersionInfo.original.filename = Nombre original del fichero
+VersionInfo.original.filename.exe = El nombre original del fichero debe acabar con extensi\u00F3n .exe.
+Jre.min.version = La versi\u00F3n m\u00EDnima del JRE deber\u00EDa ser x.x.x[_xx]
+Jre.max.version = La versi\u00F3n m\u00E1xima del JRE deber\u00EDa ser x.x.x[_xx]
+Jre.specify.jre.path.min.version = Especifique la ruta del JRE embebido o/y la versi\u00F3n m\u00EDnima del JRE.
+Jre.embedded.path.rel = La ruta del JRE debe ser relativa al ejecutable.
+Jre.specify.min.version = Especifique la versi\u00F3n m\u00EDnima del JRE.
+Jre.max.greater.than.min = La versi\u00F3n m\u00E1xima del JRE debe ser mayor que la m\u00EDnima.\nPara usar cierta versi\u00F3n del JRE, puede esyablecer el rango m\u00EDnimo/m\u00E1ximo a [1.4.2 - 1.4.2_10], por ejemplo.
+Jre.initial.heap = El tama\u00F1o inicial de la pila no puede ser negativo, ponga 0 o deje el campo en blanco para usar el de por defecto de la JVM.
+Jre.max.heap = El tama\u00F1o m\u00E1ximo de la pila no puede ser menor que el tama\u00F1o inicial, ponga 0 o deje el campo en blanco para usar el de por defecto de la JVM.
+Jre.jvm.args = Argumentos de la JVM

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/form/Config.jfrm
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/form/Config.jfrm?rev=404778&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/form/Config.jfrm
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/form/ConfigForm.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/form/ConfigForm.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/form/ConfigForm.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/form/ConfigForm.java Sun May  7 07:55:12 2006
@@ -0,0 +1,625 @@
+package net.sf.launch4j.form;
+
+import com.jeta.forms.components.separator.TitledSeparator;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Dimension;
+import javax.swing.Box;
+import javax.swing.ButtonGroup;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+
+
+public abstract class ConfigForm extends JPanel
+{
+   protected final JTabbedPane _tab = new JTabbedPane();
+   protected final JButton _outfileButton = new JButton();
+   protected final JLabel _outfileLabel = new JLabel();
+   protected final JLabel _errorTitleLabel = new JLabel();
+   protected final JTextField _outfileField = new JTextField();
+   protected final JTextField _errorTitleField = new JTextField();
+   protected final JCheckBox _customProcNameCheck = new JCheckBox();
+   protected final JCheckBox _stayAliveCheck = new JCheckBox();
+   protected final JLabel _iconLabel = new JLabel();
+   protected final JTextField _iconField = new JTextField();
+   protected final JTextField _jarField = new JTextField();
+   protected final JLabel _jarLabel = new JLabel();
+   protected final JButton _jarButton = new JButton();
+   protected final JButton _iconButton = new JButton();
+   protected final JLabel _jarArgsLabel = new JLabel();
+   protected final JTextField _jarArgsField = new JTextField();
+   protected final JLabel _optionsLabel = new JLabel();
+   protected final JLabel _chdirLabel = new JLabel();
+   protected final JTextField _chdirField = new JTextField();
+   protected final JCheckBox _dontWrapJarCheck = new JCheckBox();
+   protected final JLabel _headerTypeLabel = new JLabel();
+   protected final JRadioButton _guiHeaderRadio = new JRadioButton();
+   protected final ButtonGroup _headerButtonGroup = new ButtonGroup();
+   protected final JRadioButton _consoleHeaderRadio = new JRadioButton();
+   protected final JTextArea _headerObjectsTextArea = new JTextArea();
+   protected final JTextArea _libsTextArea = new JTextArea();
+   protected final JCheckBox _headerObjectsCheck = new JCheckBox();
+   protected final JCheckBox _libsCheck = new JCheckBox();
+   protected final TitledSeparator _linkerOptionsSeparator = new TitledSeparator();
+   protected final JLabel _jrePathLabel = new JLabel();
+   protected final JLabel _jreMinLabel = new JLabel();
+   protected final JLabel _jreMaxLabel = new JLabel();
+   protected final JLabel _jvmArgsTextLabel = new JLabel();
+   protected final JTextField _jrePathField = new JTextField();
+   protected final JTextField _jreMinField = new JTextField();
+   protected final JTextField _jreMaxField = new JTextField();
+   protected final JTextArea _jvmArgsTextArea = new JTextArea();
+   protected final JLabel _initialHeapSizeLabel = new JLabel();
+   protected final JLabel _maxHeapSizeLabel = new JLabel();
+   protected final JTextField _initialHeapSizeField = new JTextField();
+   protected final JTextField _maxHeapSizeField = new JTextField();
+   protected final JRadioButton _otherVarRadio = new JRadioButton();
+   protected final ButtonGroup _buttongroup1 = new ButtonGroup();
+   protected final JTextField _otherVarField = new JTextField();
+   protected final JButton _addVarButton = new JButton();
+   protected final JRadioButton _exeDirRadio = new JRadioButton();
+   protected final JRadioButton _exeFileRadio = new JRadioButton();
+   protected final JLabel _addVarsLabel = new JLabel();
+   protected final JLabel _splashFileLabel = new JLabel();
+   protected final JLabel _waitForWindowLabel = new JLabel();
+   protected final JLabel _timeoutLabel = new JLabel();
+   protected final JCheckBox _timeoutErrCheck = new JCheckBox();
+   protected final JTextField _splashFileField = new JTextField();
+   protected final JTextField _timeoutField = new JTextField();
+   protected final JButton _splashFileButton = new JButton();
+   protected final JCheckBox _splashCheck = new JCheckBox();
+   protected final JCheckBox _waitForWindowCheck = new JCheckBox();
+   protected final JCheckBox _versionInfoCheck = new JCheckBox();
+   protected final JLabel _fileVersionLabel = new JLabel();
+   protected final JTextField _fileVersionField = new JTextField();
+   protected final TitledSeparator _addVersionInfoSeparator = new TitledSeparator();
+   protected final JLabel _productVersionLabel = new JLabel();
+   protected final JTextField _productVersionField = new JTextField();
+   protected final JLabel _fileDescriptionLabel = new JLabel();
+   protected final JTextField _fileDescriptionField = new JTextField();
+   protected final JLabel _copyrightLabel = new JLabel();
+   protected final JTextField _copyrightField = new JTextField();
+   protected final JLabel _txtFileVersionLabel = new JLabel();
+   protected final JTextField _txtFileVersionField = new JTextField();
+   protected final JLabel _txtProductVersionLabel = new JLabel();
+   protected final JTextField _txtProductVersionField = new JTextField();
+   protected final JLabel _productNameLabel = new JLabel();
+   protected final JTextField _productNameField = new JTextField();
+   protected final JLabel _originalFilenameLabel = new JLabel();
+   protected final JTextField _originalFilenameField = new JTextField();
+   protected final JLabel _internalNameLabel = new JLabel();
+   protected final JTextField _internalNameField = new JTextField();
+   protected final JLabel _companyNameLabel = new JLabel();
+   protected final JTextField _companyNameField = new JTextField();
+   protected final JTextArea _logTextArea = new JTextArea();
+   protected final TitledSeparator _logSeparator = new TitledSeparator();
+
+   /**
+    * Default constructor
+    */
+   public ConfigForm()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE","CENTER:3DLU:NONE,FILL:DEFAULT:NONE,CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      _tab.setName("tab");
+      _tab.addTab("Basic",null,createPanel1());
+      _tab.addTab("Header",null,createPanel2());
+      _tab.addTab("JRE",null,createPanel3());
+      _tab.addTab("Splash",null,createPanel5());
+      _tab.addTab("Version Info",null,createPanel6());
+      jpanel1.add(_tab,cc.xy(2,2));
+
+      _logTextArea.setName("logTextArea");
+      JScrollPane jscrollpane1 = new JScrollPane();
+      jscrollpane1.setViewportView(_logTextArea);
+      jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+      jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+      jpanel1.add(jscrollpane1,cc.xy(2,6));
+
+      _logSeparator.setName("logSeparator");
+      _logSeparator.setText("Log");
+      jpanel1.add(_logSeparator,cc.xy(2,4));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3 },new int[]{ 1,2,3,4,5,6,7 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel1()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE,FILL:26PX:NONE,FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      _outfileButton.setIcon(loadImage("images/open16.png"));
+      _outfileButton.setName("outfileButton");
+      jpanel1.add(_outfileButton,cc.xy(6,2));
+
+      _outfileLabel.setName("outfileLabel");
+      _outfileLabel.setText("<html><b>Output file</b></html>");
+      jpanel1.add(_outfileLabel,cc.xy(2,2));
+
+      _errorTitleLabel.setName("errorTitleLabel");
+      _errorTitleLabel.setText("Error title");
+      jpanel1.add(_errorTitleLabel,cc.xy(2,14));
+
+      _outfileField.setName("outfileField");
+      _outfileField.setToolTipText("Output executable file.");
+      jpanel1.add(_outfileField,cc.xy(4,2));
+
+      _errorTitleField.setName("errorTitleField");
+      _errorTitleField.setToolTipText("Launch4j signals errors using a message box, you can set it's title to the application's name.");
+      jpanel1.add(_errorTitleField,cc.xy(4,14));
+
+      _customProcNameCheck.setActionCommand("Custom process name");
+      _customProcNameCheck.setName("customProcNameCheck");
+      _customProcNameCheck.setText("Custom process name");
+      jpanel1.add(_customProcNameCheck,cc.xy(4,16));
+
+      _stayAliveCheck.setActionCommand("Stay alive after launching a GUI application");
+      _stayAliveCheck.setName("stayAliveCheck");
+      _stayAliveCheck.setText("Stay alive after launching a GUI application");
+      jpanel1.add(_stayAliveCheck,cc.xy(4,18));
+
+      _iconLabel.setName("iconLabel");
+      _iconLabel.setText("Icon");
+      jpanel1.add(_iconLabel,cc.xy(2,8));
+
+      _iconField.setName("iconField");
+      _iconField.setToolTipText("Application icon.");
+      jpanel1.add(_iconField,cc.xy(4,8));
+
+      _jarField.setName("jarField");
+      _jarField.setToolTipText("Application jar.");
+      jpanel1.add(_jarField,cc.xy(4,4));
+
+      _jarLabel.setName("jarLabel");
+      _jarLabel.setText("<html><b>Jar</b></html>");
+      jpanel1.add(_jarLabel,cc.xy(2,4));
+
+      _jarButton.setIcon(loadImage("images/open16.png"));
+      _jarButton.setName("jarButton");
+      jpanel1.add(_jarButton,cc.xy(6,4));
+
+      _iconButton.setIcon(loadImage("images/open16.png"));
+      _iconButton.setName("iconButton");
+      jpanel1.add(_iconButton,cc.xy(6,8));
+
+      _jarArgsLabel.setName("jarArgsLabel");
+      _jarArgsLabel.setText("Jar arguments");
+      jpanel1.add(_jarArgsLabel,cc.xy(2,12));
+
+      _jarArgsField.setName("jarArgsField");
+      _jarArgsField.setToolTipText("Constant command line arguments passed to the application.");
+      jpanel1.add(_jarArgsField,cc.xy(4,12));
+
+      _optionsLabel.setName("optionsLabel");
+      _optionsLabel.setText("Options");
+      jpanel1.add(_optionsLabel,cc.xy(2,16));
+
+      _chdirLabel.setName("chdirLabel");
+      _chdirLabel.setText("Change dir");
+      jpanel1.add(_chdirLabel,cc.xy(2,10));
+
+      _chdirField.setName("chdirField");
+      _chdirField.setToolTipText("Change current directory to a location relative to the executable. Empty field has no effect, . - changes directory to the exe location.");
+      jpanel1.add(_chdirField,cc.xy(4,10));
+
+      _dontWrapJarCheck.setActionCommand("Don't wrap the jar, launch it only");
+      _dontWrapJarCheck.setName("dontWrapJarCheck");
+      _dontWrapJarCheck.setText("Don't wrap the jar, launch only");
+      jpanel1.add(_dontWrapJarCheck,cc.xy(4,6));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel2()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:DEFAULT:GROW(0.2),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:9DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      _headerTypeLabel.setName("headerTypeLabel");
+      _headerTypeLabel.setText("Header type");
+      jpanel1.add(_headerTypeLabel,cc.xy(2,2));
+
+      _guiHeaderRadio.setActionCommand("GUI");
+      _guiHeaderRadio.setName("guiHeaderRadio");
+      _guiHeaderRadio.setText("GUI");
+      _headerButtonGroup.add(_guiHeaderRadio);
+      jpanel1.add(_guiHeaderRadio,cc.xy(4,2));
+
+      _consoleHeaderRadio.setActionCommand("Console");
+      _consoleHeaderRadio.setName("consoleHeaderRadio");
+      _consoleHeaderRadio.setText("Console");
+      _headerButtonGroup.add(_consoleHeaderRadio);
+      jpanel1.add(_consoleHeaderRadio,cc.xy(6,2));
+
+      _headerObjectsTextArea.setName("headerObjectsTextArea");
+      JScrollPane jscrollpane1 = new JScrollPane();
+      jscrollpane1.setViewportView(_headerObjectsTextArea);
+      jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+      jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+      jpanel1.add(jscrollpane1,cc.xywh(4,6,4,1));
+
+      _libsTextArea.setName("libsTextArea");
+      JScrollPane jscrollpane2 = new JScrollPane();
+      jscrollpane2.setViewportView(_libsTextArea);
+      jscrollpane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+      jscrollpane2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+      jpanel1.add(jscrollpane2,cc.xywh(4,8,4,1));
+
+      _headerObjectsCheck.setActionCommand("Object files");
+      _headerObjectsCheck.setName("headerObjectsCheck");
+      _headerObjectsCheck.setText("Object files");
+      jpanel1.add(_headerObjectsCheck,new CellConstraints(2,6,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
+
+      _libsCheck.setActionCommand("w32api");
+      _libsCheck.setName("libsCheck");
+      _libsCheck.setText("w32api");
+      jpanel1.add(_libsCheck,new CellConstraints(2,8,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
+
+      _linkerOptionsSeparator.setName("linkerOptionsSeparator");
+      _linkerOptionsSeparator.setText("Custom header - linker options");
+      jpanel1.add(_linkerOptionsSeparator,cc.xywh(2,4,6,1));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8 },new int[]{ 1,2,3,4,5,6,7,8,9 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel3()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      _jrePathLabel.setName("jrePathLabel");
+      _jrePathLabel.setText("<html><b>Emb. JRE path</b></html>");
+      jpanel1.add(_jrePathLabel,cc.xy(2,2));
+
+      _jreMinLabel.setName("jreMinLabel");
+      _jreMinLabel.setText("<html><b>Min JRE version</b></html>");
+      jpanel1.add(_jreMinLabel,cc.xy(2,4));
+
+      _jreMaxLabel.setName("jreMaxLabel");
+      _jreMaxLabel.setText("Max JRE version");
+      jpanel1.add(_jreMaxLabel,cc.xy(2,6));
+
+      _jvmArgsTextLabel.setName("jvmArgsTextLabel");
+      _jvmArgsTextLabel.setText("JVM arguments");
+      jpanel1.add(_jvmArgsTextLabel,new CellConstraints(2,12,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
+
+      _jrePathField.setName("jrePathField");
+      _jrePathField.setToolTipText("Embedded JRE path relative to the executable.");
+      jpanel1.add(_jrePathField,cc.xywh(4,2,4,1));
+
+      _jreMinField.setName("jreMinField");
+      jpanel1.add(_jreMinField,cc.xy(4,4));
+
+      _jreMaxField.setName("jreMaxField");
+      jpanel1.add(_jreMaxField,cc.xy(4,6));
+
+      _jvmArgsTextArea.setName("jvmArgsTextArea");
+      _jvmArgsTextArea.setToolTipText("Accepts everything you would normally pass to java/javaw launcher: assertion options, system properties and X options.");
+      JScrollPane jscrollpane1 = new JScrollPane();
+      jscrollpane1.setViewportView(_jvmArgsTextArea);
+      jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+      jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+      jpanel1.add(jscrollpane1,cc.xywh(4,12,4,1));
+
+      _initialHeapSizeLabel.setName("initialHeapSizeLabel");
+      _initialHeapSizeLabel.setText("Initial heap size");
+      jpanel1.add(_initialHeapSizeLabel,cc.xy(2,8));
+
+      _maxHeapSizeLabel.setName("maxHeapSizeLabel");
+      _maxHeapSizeLabel.setText("Max heap size");
+      jpanel1.add(_maxHeapSizeLabel,cc.xy(2,10));
+
+      JLabel jlabel1 = new JLabel();
+      jlabel1.setText("MB");
+      jpanel1.add(jlabel1,cc.xy(6,8));
+
+      JLabel jlabel2 = new JLabel();
+      jlabel2.setText("MB");
+      jpanel1.add(jlabel2,cc.xy(6,10));
+
+      _initialHeapSizeField.setName("initialHeapSizeField");
+      jpanel1.add(_initialHeapSizeField,cc.xy(4,8));
+
+      _maxHeapSizeField.setName("maxHeapSizeField");
+      jpanel1.add(_maxHeapSizeField,cc.xy(4,10));
+
+      jpanel1.add(createPanel4(),cc.xywh(4,14,4,1));
+      _addVarsLabel.setName("addVarsLabel");
+      _addVarsLabel.setText("Add variables");
+      jpanel1.add(_addVarsLabel,cc.xy(2,14));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel4()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:3DLU:NONE,FILL:60DLU:GROW(1.0),FILL:3DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      _otherVarRadio.setActionCommand("Other");
+      _otherVarRadio.setName("otherVarRadio");
+      _otherVarRadio.setText("Other");
+      _buttongroup1.add(_otherVarRadio);
+      jpanel1.add(_otherVarRadio,cc.xy(5,1));
+
+      _otherVarField.setName("otherVarField");
+      jpanel1.add(_otherVarField,cc.xy(7,1));
+
+      _addVarButton.setActionCommand("Add");
+      _addVarButton.setIcon(loadImage("images/edit_add16.png"));
+      _addVarButton.setName("addVarButton");
+      _addVarButton.setText("Add");
+      jpanel1.add(_addVarButton,cc.xy(9,1));
+
+      _exeDirRadio.setActionCommand("%EXEPATH%");
+      _exeDirRadio.setName("exeDirRadio");
+      _exeDirRadio.setText("EXEDIR");
+      _buttongroup1.add(_exeDirRadio);
+      jpanel1.add(_exeDirRadio,cc.xy(1,1));
+
+      _exeFileRadio.setActionCommand("%EXEFILE%");
+      _exeFileRadio.setName("exeFileRadio");
+      _exeFileRadio.setText("EXEFILE");
+      _buttongroup1.add(_exeFileRadio);
+      jpanel1.add(_exeFileRadio,cc.xy(3,1));
+
+      addFillComponents(jpanel1,new int[]{ 2,4,6,8 },new int[0]);
+      return jpanel1;
+   }
+
+   public JPanel createPanel5()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE,FILL:26PX:NONE,FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      _splashFileLabel.setName("splashFileLabel");
+      _splashFileLabel.setText("Splash file");
+      jpanel1.add(_splashFileLabel,cc.xy(2,4));
+
+      _waitForWindowLabel.setName("waitForWindowLabel");
+      _waitForWindowLabel.setText("Wait for window");
+      jpanel1.add(_waitForWindowLabel,cc.xy(2,6));
+
+      _timeoutLabel.setName("timeoutLabel");
+      _timeoutLabel.setText("Timeout [s]");
+      jpanel1.add(_timeoutLabel,cc.xy(2,8));
+
+      _timeoutErrCheck.setActionCommand("Signal error on timeout");
+      _timeoutErrCheck.setName("timeoutErrCheck");
+      _timeoutErrCheck.setText("Signal error on timeout");
+      _timeoutErrCheck.setToolTipText("True signals an error on splash timeout, false closes the splash screen quietly.");
+      jpanel1.add(_timeoutErrCheck,cc.xywh(4,10,2,1));
+
+      _splashFileField.setName("splashFileField");
+      _splashFileField.setToolTipText("Splash screen file in BMP format.");
+      jpanel1.add(_splashFileField,cc.xywh(4,4,2,1));
+
+      _timeoutField.setName("timeoutField");
+      _timeoutField.setToolTipText("Number of seconds after which the splash screen must close. Splash timeout may cause an error depending on splashTimeoutErr property.");
+      jpanel1.add(_timeoutField,cc.xy(4,8));
+
+      _splashFileButton.setIcon(loadImage("images/open16.png"));
+      _splashFileButton.setName("splashFileButton");
+      jpanel1.add(_splashFileButton,cc.xy(7,4));
+
+      _splashCheck.setActionCommand("Enable splash screen");
+      _splashCheck.setName("splashCheck");
+      _splashCheck.setText("Enable splash screen");
+      jpanel1.add(_splashCheck,cc.xywh(4,2,2,1));
+
+      _waitForWindowCheck.setActionCommand("Close splash screen when an application window appears");
+      _waitForWindowCheck.setName("waitForWindowCheck");
+      _waitForWindowCheck.setText("Close splash screen when an application window appears");
+      jpanel1.add(_waitForWindowCheck,cc.xywh(4,6,2,1));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel6()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU:NONE,FILL:7DLU:NONE,RIGHT:DEFAULT:NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      _versionInfoCheck.setActionCommand("Add version information");
+      _versionInfoCheck.setName("versionInfoCheck");
+      _versionInfoCheck.setText("Add version information");
+      jpanel1.add(_versionInfoCheck,cc.xywh(4,2,5,1));
+
+      _fileVersionLabel.setName("fileVersionLabel");
+      _fileVersionLabel.setText("File version");
+      jpanel1.add(_fileVersionLabel,cc.xy(2,4));
+
+      _fileVersionField.setName("fileVersionField");
+      _fileVersionField.setToolTipText("Version number 'x.x.x.x'");
+      jpanel1.add(_fileVersionField,cc.xy(4,4));
+
+      _addVersionInfoSeparator.setName("addVersionInfoSeparator");
+      _addVersionInfoSeparator.setText("Additional information");
+      jpanel1.add(_addVersionInfoSeparator,cc.xywh(2,10,7,1));
+
+      _productVersionLabel.setName("productVersionLabel");
+      _productVersionLabel.setText("Product version");
+      jpanel1.add(_productVersionLabel,cc.xy(2,12));
+
+      _productVersionField.setName("productVersionField");
+      _productVersionField.setToolTipText("Version number 'x.x.x.x'");
+      jpanel1.add(_productVersionField,cc.xy(4,12));
+
+      _fileDescriptionLabel.setName("fileDescriptionLabel");
+      _fileDescriptionLabel.setText("File description");
+      jpanel1.add(_fileDescriptionLabel,cc.xy(2,6));
+
+      _fileDescriptionField.setName("fileDescriptionField");
+      _fileDescriptionField.setToolTipText("File description presented to the user.");
+      jpanel1.add(_fileDescriptionField,cc.xywh(4,6,5,1));
+
+      _copyrightLabel.setName("copyrightLabel");
+      _copyrightLabel.setText("Copyright");
+      jpanel1.add(_copyrightLabel,cc.xy(2,8));
+
+      _copyrightField.setName("copyrightField");
+      jpanel1.add(_copyrightField,cc.xywh(4,8,5,1));
+
+      _txtFileVersionLabel.setName("txtFileVersionLabel");
+      _txtFileVersionLabel.setText("Free form");
+      jpanel1.add(_txtFileVersionLabel,cc.xy(6,4));
+
+      _txtFileVersionField.setName("txtFileVersionField");
+      _txtFileVersionField.setToolTipText("Free form file version, for example '1.20.RC1'.");
+      jpanel1.add(_txtFileVersionField,cc.xy(8,4));
+
+      _txtProductVersionLabel.setName("txtProductVersionLabel");
+      _txtProductVersionLabel.setText("Free form");
+      jpanel1.add(_txtProductVersionLabel,cc.xy(6,12));
+
+      _txtProductVersionField.setName("txtProductVersionField");
+      _txtProductVersionField.setToolTipText("Free form product version, for example '1.20.RC1'.");
+      jpanel1.add(_txtProductVersionField,cc.xy(8,12));
+
+      _productNameLabel.setName("productNameLabel");
+      _productNameLabel.setText("Product name");
+      jpanel1.add(_productNameLabel,cc.xy(2,14));
+
+      _productNameField.setName("productNameField");
+      jpanel1.add(_productNameField,cc.xywh(4,14,5,1));
+
+      _originalFilenameLabel.setName("originalFilenameLabel");
+      _originalFilenameLabel.setText("Original filename");
+      jpanel1.add(_originalFilenameLabel,cc.xy(2,20));
+
+      _originalFilenameField.setName("originalFilenameField");
+      _originalFilenameField.setToolTipText("Original name of the file without the path. Allows to determine whether a file has been renamed by a user.");
+      jpanel1.add(_originalFilenameField,cc.xywh(4,20,5,1));
+
+      _internalNameLabel.setName("internalNameLabel");
+      _internalNameLabel.setText("Internal name");
+      jpanel1.add(_internalNameLabel,cc.xy(2,18));
+
+      _internalNameField.setName("internalNameField");
+      _internalNameField.setToolTipText("Internal name without extension, original filename or module name for example.");
+      jpanel1.add(_internalNameField,cc.xywh(4,18,5,1));
+
+      _companyNameLabel.setName("companyNameLabel");
+      _companyNameLabel.setText("Company name");
+      jpanel1.add(_companyNameLabel,cc.xy(2,16));
+
+      _companyNameField.setName("companyNameField");
+      jpanel1.add(_companyNameField,cc.xywh(4,16,5,1));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 });
+      return jpanel1;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}