mirror of https://github.com/rusefi/RomRaider.git
Update launch4j to 3.0.2
This commit is contained in:
parent
3a3cf58e79
commit
fbe42caf62
|
@ -1,7 +1,7 @@
|
|||
Launch4j (http://launch4j.sourceforge.net/)
|
||||
Cross-platform Java application wrapper for creating Windows native executables.
|
||||
|
||||
Copyright (c) 2004, 2008 Grzegorz Kowal
|
||||
Copyright (c) 2004, 2011 Grzegorz Kowal
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
The current version is 3.0.1
|
||||
The current version is 3.0.2
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,23 +1,23 @@
|
|||
Copyright (c) 2004, 2007 Grzegorz Kowal
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright holders
|
||||
shall not be used in advertising or otherwise to promote the sale, use or other
|
||||
dealings in this Software without prior written authorization.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
Copyright (c) 2004, 2007 Grzegorz Kowal
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright holders
|
||||
shall not be used in advertising or otherwise to promote the sale, use or other
|
||||
dealings in this Software without prior written authorization.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
Binary file not shown.
|
@ -1,23 +1,23 @@
|
|||
Copyright (c) 2004, 2008 Grzegorz Kowal
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright holders
|
||||
shall not be used in advertising or otherwise to promote the sale, use or other
|
||||
dealings in this Software without prior written authorization.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
Copyright (c) 2004, 2011 Grzegorz Kowal
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright holders
|
||||
shall not be used in advertising or otherwise to promote the sale, use or other
|
||||
dealings in this Software without prior written authorization.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
|
|
@ -446,7 +446,7 @@ BOOL expandVars(char *dst, const char *src, const char *exePath, const int pathL
|
|||
*varName = 0;
|
||||
strncat(varName, start + 1, end - start - 1);
|
||||
// Remember value start for logging
|
||||
char *varValue = dst + strlen(dst);
|
||||
char *currentVarValue = dst + strlen(dst);
|
||||
if (strcmp(varName, "EXEDIR") == 0) {
|
||||
strncat(dst, exePath, pathLen);
|
||||
} else if (strcmp(varName, "EXEFILE") == 0) {
|
||||
|
@ -460,7 +460,7 @@ BOOL expandVars(char *dst, const char *src, const char *exePath, const int pathL
|
|||
} else if (GetEnvironmentVariable(varName, varValue, MAX_VAR_SIZE) > 0) {
|
||||
strcat(dst, varValue);
|
||||
}
|
||||
debug("Substitute:\t%s = %s\n", varName, varValue);
|
||||
debug("Substitute:\t%s = %s\n", varName, currentVarValue);
|
||||
src = end + 1;
|
||||
} else {
|
||||
// Copy remaining content
|
||||
|
@ -485,12 +485,19 @@ void appendHeapSizes(char *dst) {
|
|||
void appendHeapSize(char *dst, const int absID, const int percentID,
|
||||
const DWORD freeMemory, const char *option) {
|
||||
|
||||
const int mb = 1048576; // 1 MB
|
||||
const int mb = 1048576; // 1 MB
|
||||
const int mbLimit32 = 1500; // Max heap size in MB on 32-bit JREs
|
||||
int abs = loadInt(absID);
|
||||
int percent = loadInt(percentID);
|
||||
int free = (long long) freeMemory * percent / (100 * mb); // 100% * 1 MB
|
||||
int size = free > abs ? free : abs;
|
||||
if (size > 0) {
|
||||
if (!(foundJava & KEY_WOW64_64KEY) && size > mbLimit32) {
|
||||
debug("Heap limit:\tReduced %d MB heap size to 32-bit maximum %d MB\n",
|
||||
size, mbLimit32);
|
||||
size = mbLimit32;
|
||||
}
|
||||
|
||||
debug("Heap %s:\t%d MB / %d%%, Free: %d MB, Heap size: %d MB\n",
|
||||
option, abs, percent, freeMemory / mb, size);
|
||||
strcat(dst, option);
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,12 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
|
||||
<!-- <requestedExecutionLevel level="highestAvailable" uiAccess="false"/> -->
|
||||
<!-- <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> -->
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
|
||||
<!-- <requestedExecutionLevel level="highestAvailable" uiAccess="false"/> -->
|
||||
<!-- <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> -->
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
</assembly>
|
|
@ -1,14 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*" />
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*" />
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
</assembly>
|
|
@ -1,2 +1,2 @@
|
|||
versionNumber=3.0.1.0
|
||||
version=3.0.1
|
||||
versionNumber=3.0.2.0
|
||||
version=3.0.2
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Launch4j (http://launch4j.sourceforge.net/)
|
||||
Cross-platform Java application wrapper for creating Windows native executables.
|
||||
|
||||
Copyright (c) 2004, 2008 Grzegorz Kowal
|
||||
Copyright (c) 2004, 2011 Grzegorz Kowal
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
@ -90,7 +90,7 @@ public class Main {
|
|||
" (http://launch4j.sourceforge.net/)\n" +
|
||||
"Cross-platform Java application wrapper" +
|
||||
" for creating Windows native executables.\n\n" +
|
||||
"Copyright (C) 2004, 2008 Grzegorz Kowal\n\n" +
|
||||
"Copyright (C) 2004, 2011 Grzegorz Kowal\n\n" +
|
||||
"Launch4j comes with ABSOLUTELY NO WARRANTY.\n" +
|
||||
"This is free software, licensed under the BSD License.\n" +
|
||||
"This product includes software developed by the Apache Software Foundation" +
|
||||
|
|
|
@ -135,12 +135,17 @@ public class Util {
|
|||
is.close();
|
||||
p.waitFor();
|
||||
if (errLine != -1) {
|
||||
throw new ExecException(Messages.getString("Util.exec.failed")
|
||||
+ ": " + cmd, errLine);
|
||||
StringBuffer sb = new StringBuffer(Messages.getString("Util.exec.failed"));
|
||||
AppendCommandLine(sb, cmd);
|
||||
throw new ExecException(sb.toString(), errLine);
|
||||
}
|
||||
if (p.exitValue() != 0) {
|
||||
throw new ExecException(Messages.getString("Util.exec.failed")
|
||||
+ "(" + p.exitValue() + "): " + cmd);
|
||||
StringBuffer sb = new StringBuffer(Messages.getString("Util.exec.failed"));
|
||||
sb.append(" (");
|
||||
sb.append(p.exitValue());
|
||||
sb.append(')');
|
||||
AppendCommandLine(sb, cmd);
|
||||
throw new ExecException(sb.toString());
|
||||
}
|
||||
} catch (IOException e) {
|
||||
close(is);
|
||||
|
@ -150,6 +155,16 @@ public class Util {
|
|||
throw new ExecException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private static void AppendCommandLine(StringBuffer sb, String[] cmd) {
|
||||
sb.append(": ");
|
||||
for (int i = 0; i < cmd.length; i++) {
|
||||
sb.append(cmd[i]);
|
||||
if (i < cmd.length - 1) {
|
||||
sb.append(' ');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void close(final InputStream o) {
|
||||
if (o != null) {
|
||||
|
|
|
@ -1,119 +1,119 @@
|
|||
/*
|
||||
Launch4j (http://launch4j.sourceforge.net/)
|
||||
Cross-platform Java application wrapper for creating Windows native executables.
|
||||
|
||||
Copyright (c) 2007 Ian Roberts
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the Launch4j nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Created on May 10, 2005
|
||||
*/
|
||||
package net.sf.launch4j.binding;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
import javax.swing.JComboBox;
|
||||
|
||||
import org.apache.commons.beanutils.PropertyUtils;
|
||||
|
||||
/**
|
||||
* @author Copyright (C) 2007 Ian Roberts
|
||||
*/
|
||||
public class JComboBoxBinding implements Binding {
|
||||
private final String _property;
|
||||
private final JComboBox _combo;
|
||||
private final int _defaultValue;
|
||||
private final Color _validColor;
|
||||
|
||||
public JComboBoxBinding(String property, JComboBox combo, int defaultValue) {
|
||||
if (property == null || combo == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
if (property.equals("")
|
||||
|| combo.getItemCount() == 0
|
||||
|| defaultValue < 0 || defaultValue >= combo.getItemCount()) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
_property = property;
|
||||
_combo = combo;
|
||||
_defaultValue = defaultValue;
|
||||
_validColor = combo.getBackground();
|
||||
}
|
||||
|
||||
public String getProperty() {
|
||||
return _property;
|
||||
}
|
||||
|
||||
public void clear(IValidatable bean) {
|
||||
select(_defaultValue);
|
||||
}
|
||||
|
||||
public void put(IValidatable bean) {
|
||||
try {
|
||||
Integer i = (Integer) PropertyUtils.getProperty(bean, _property);
|
||||
if (i == null) {
|
||||
throw new BindingException(
|
||||
Messages.getString("JComboBoxBinding.property.null"));
|
||||
}
|
||||
select(i.intValue());
|
||||
} catch (Exception e) {
|
||||
throw new BindingException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void get(IValidatable bean) {
|
||||
try {
|
||||
PropertyUtils.setProperty(bean, _property, new Integer(_combo.getSelectedIndex()));
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
throw new BindingException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void select(int index) {
|
||||
if (index < 0 || index >= _combo.getItemCount()) {
|
||||
throw new BindingException(
|
||||
Messages.getString("JComboBoxBinding.index.out.of.bounds"));
|
||||
}
|
||||
_combo.setSelectedIndex(index);
|
||||
}
|
||||
|
||||
public void markValid() {
|
||||
_combo.setBackground(_validColor);
|
||||
_combo.requestFocusInWindow();
|
||||
}
|
||||
|
||||
public void markInvalid() {
|
||||
_combo.setBackground(Binding.INVALID_COLOR);
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
_combo.setEnabled(enabled);
|
||||
}
|
||||
}
|
||||
/*
|
||||
Launch4j (http://launch4j.sourceforge.net/)
|
||||
Cross-platform Java application wrapper for creating Windows native executables.
|
||||
|
||||
Copyright (c) 2007 Ian Roberts
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the Launch4j nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Created on May 10, 2005
|
||||
*/
|
||||
package net.sf.launch4j.binding;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
import javax.swing.JComboBox;
|
||||
|
||||
import org.apache.commons.beanutils.PropertyUtils;
|
||||
|
||||
/**
|
||||
* @author Copyright (C) 2007 Ian Roberts
|
||||
*/
|
||||
public class JComboBoxBinding implements Binding {
|
||||
private final String _property;
|
||||
private final JComboBox _combo;
|
||||
private final int _defaultValue;
|
||||
private final Color _validColor;
|
||||
|
||||
public JComboBoxBinding(String property, JComboBox combo, int defaultValue) {
|
||||
if (property == null || combo == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
if (property.equals("")
|
||||
|| combo.getItemCount() == 0
|
||||
|| defaultValue < 0 || defaultValue >= combo.getItemCount()) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
_property = property;
|
||||
_combo = combo;
|
||||
_defaultValue = defaultValue;
|
||||
_validColor = combo.getBackground();
|
||||
}
|
||||
|
||||
public String getProperty() {
|
||||
return _property;
|
||||
}
|
||||
|
||||
public void clear(IValidatable bean) {
|
||||
select(_defaultValue);
|
||||
}
|
||||
|
||||
public void put(IValidatable bean) {
|
||||
try {
|
||||
Integer i = (Integer) PropertyUtils.getProperty(bean, _property);
|
||||
if (i == null) {
|
||||
throw new BindingException(
|
||||
Messages.getString("JComboBoxBinding.property.null"));
|
||||
}
|
||||
select(i.intValue());
|
||||
} catch (Exception e) {
|
||||
throw new BindingException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void get(IValidatable bean) {
|
||||
try {
|
||||
PropertyUtils.setProperty(bean, _property, new Integer(_combo.getSelectedIndex()));
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
throw new BindingException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void select(int index) {
|
||||
if (index < 0 || index >= _combo.getItemCount()) {
|
||||
throw new BindingException(
|
||||
Messages.getString("JComboBoxBinding.index.out.of.bounds"));
|
||||
}
|
||||
_combo.setSelectedIndex(index);
|
||||
}
|
||||
|
||||
public void markValid() {
|
||||
_combo.setBackground(_validColor);
|
||||
_combo.requestFocusInWindow();
|
||||
}
|
||||
|
||||
public void markInvalid() {
|
||||
_combo.setBackground(Binding.INVALID_COLOR);
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
_combo.setEnabled(enabled);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,74 +1,74 @@
|
|||
/*
|
||||
Launch4j (http://launch4j.sourceforge.net/)
|
||||
Cross-platform Java application wrapper for creating Windows native executables.
|
||||
|
||||
Copyright (c) 2004, 2007 Grzegorz Kowal
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the Launch4j nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Created on 2007-09-16
|
||||
*/
|
||||
package net.sf.launch4j.config;
|
||||
|
||||
import net.sf.launch4j.binding.IValidatable;
|
||||
import net.sf.launch4j.binding.Validator;
|
||||
|
||||
/**
|
||||
* @author Copyright (C) 2007 Grzegorz Kowal
|
||||
*/
|
||||
public class SingleInstance implements IValidatable {
|
||||
|
||||
private String mutexName;
|
||||
private String windowTitle;
|
||||
|
||||
public void checkInvariants() {
|
||||
Validator.checkString(mutexName, Validator.MAX_STR,
|
||||
"singleInstance.mutexName",
|
||||
Messages.getString("SingleInstance.mutexName"));
|
||||
Validator.checkOptString(windowTitle, Validator.MAX_STR,
|
||||
"singleInstance.windowTitle",
|
||||
Messages.getString("SingleInstance.windowTitle"));
|
||||
}
|
||||
|
||||
public String getWindowTitle() {
|
||||
return windowTitle;
|
||||
}
|
||||
|
||||
public void setWindowTitle(String appWindowName) {
|
||||
this.windowTitle = appWindowName;
|
||||
}
|
||||
|
||||
public String getMutexName() {
|
||||
return mutexName;
|
||||
}
|
||||
|
||||
public void setMutexName(String mutexName) {
|
||||
this.mutexName = mutexName;
|
||||
}
|
||||
}
|
||||
/*
|
||||
Launch4j (http://launch4j.sourceforge.net/)
|
||||
Cross-platform Java application wrapper for creating Windows native executables.
|
||||
|
||||
Copyright (c) 2004, 2007 Grzegorz Kowal
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the Launch4j nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Created on 2007-09-16
|
||||
*/
|
||||
package net.sf.launch4j.config;
|
||||
|
||||
import net.sf.launch4j.binding.IValidatable;
|
||||
import net.sf.launch4j.binding.Validator;
|
||||
|
||||
/**
|
||||
* @author Copyright (C) 2007 Grzegorz Kowal
|
||||
*/
|
||||
public class SingleInstance implements IValidatable {
|
||||
|
||||
private String mutexName;
|
||||
private String windowTitle;
|
||||
|
||||
public void checkInvariants() {
|
||||
Validator.checkString(mutexName, Validator.MAX_STR,
|
||||
"singleInstance.mutexName",
|
||||
Messages.getString("SingleInstance.mutexName"));
|
||||
Validator.checkOptString(windowTitle, Validator.MAX_STR,
|
||||
"singleInstance.windowTitle",
|
||||
Messages.getString("SingleInstance.windowTitle"));
|
||||
}
|
||||
|
||||
public String getWindowTitle() {
|
||||
return windowTitle;
|
||||
}
|
||||
|
||||
public void setWindowTitle(String appWindowName) {
|
||||
this.windowTitle = appWindowName;
|
||||
}
|
||||
|
||||
public String getMutexName() {
|
||||
return mutexName;
|
||||
}
|
||||
|
||||
public void setMutexName(String mutexName) {
|
||||
this.mutexName = mutexName;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,283 +1,283 @@
|
|||
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.JTextField;
|
||||
|
||||
public abstract class BasicForm extends JPanel
|
||||
{
|
||||
protected final JButton _outfileButton = new JButton();
|
||||
protected final JLabel _outfileLabel = new JLabel();
|
||||
protected final JLabel _iconLabel = new JLabel();
|
||||
protected final JLabel _jarLabel = new JLabel();
|
||||
protected final JButton _jarButton = new JButton();
|
||||
protected final JButton _iconButton = new JButton();
|
||||
protected final JLabel _cmdLineLabel = new JLabel();
|
||||
protected final JLabel _optionsLabel = new JLabel();
|
||||
protected final JLabel _chdirLabel = new JLabel();
|
||||
protected final JLabel _processPriorityLabel = new JLabel();
|
||||
protected final JRadioButton _normalPriorityRadio = new JRadioButton();
|
||||
protected final ButtonGroup _buttongroup1 = new ButtonGroup();
|
||||
protected final JRadioButton _idlePriorityRadio = new JRadioButton();
|
||||
protected final JRadioButton _highPriorityRadio = new JRadioButton();
|
||||
protected final JCheckBox _customProcNameCheck = new JCheckBox();
|
||||
protected final JCheckBox _stayAliveCheck = new JCheckBox();
|
||||
protected final JTextField _cmdLineField = new JTextField();
|
||||
protected final JTextField _chdirField = new JTextField();
|
||||
protected final JTextField _iconField = new JTextField();
|
||||
protected final JCheckBox _dontWrapJarCheck = new JCheckBox();
|
||||
protected final JTextField _jarField = new JTextField();
|
||||
protected final JTextField _outfileField = new JTextField();
|
||||
protected final JLabel _errorTitleLabel = new JLabel();
|
||||
protected final JTextField _errorTitleField = new JTextField();
|
||||
protected final JLabel _downloadUrlLabel = new JLabel();
|
||||
protected final JTextField _downloadUrlField = new JTextField();
|
||||
protected final JLabel _supportUrlLabel = new JLabel();
|
||||
protected final JTextField _supportUrlField = new JTextField();
|
||||
protected final JTextField _manifestField = new JTextField();
|
||||
protected final JButton _manifestButton = new JButton();
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public BasicForm()
|
||||
{
|
||||
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:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT: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: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:9DLU:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_outfileButton.setIcon(loadImage("images/open16.png"));
|
||||
_outfileButton.setName("outfileButton");
|
||||
jpanel1.add(_outfileButton,cc.xy(12,2));
|
||||
|
||||
_outfileLabel.setIcon(loadImage("images/asterix.gif"));
|
||||
_outfileLabel.setName("outfileLabel");
|
||||
_outfileLabel.setText(Messages.getString("outfile"));
|
||||
jpanel1.add(_outfileLabel,cc.xy(2,2));
|
||||
|
||||
_iconLabel.setName("iconLabel");
|
||||
_iconLabel.setText(Messages.getString("icon"));
|
||||
jpanel1.add(_iconLabel,cc.xy(2,10));
|
||||
|
||||
_jarLabel.setIcon(loadImage("images/asterix.gif"));
|
||||
_jarLabel.setName("jarLabel");
|
||||
_jarLabel.setText(Messages.getString("jar"));
|
||||
jpanel1.add(_jarLabel,cc.xy(2,4));
|
||||
|
||||
_jarButton.setIcon(loadImage("images/open16.png"));
|
||||
_jarButton.setName("jarButton");
|
||||
jpanel1.add(_jarButton,cc.xy(12,4));
|
||||
|
||||
_iconButton.setIcon(loadImage("images/open16.png"));
|
||||
_iconButton.setName("iconButton");
|
||||
jpanel1.add(_iconButton,cc.xy(12,10));
|
||||
|
||||
_cmdLineLabel.setName("cmdLineLabel");
|
||||
_cmdLineLabel.setText(Messages.getString("cmdLine"));
|
||||
_cmdLineLabel.setToolTipText("");
|
||||
jpanel1.add(_cmdLineLabel,cc.xy(2,14));
|
||||
|
||||
_optionsLabel.setName("optionsLabel");
|
||||
_optionsLabel.setText(Messages.getString("options"));
|
||||
jpanel1.add(_optionsLabel,cc.xy(2,18));
|
||||
|
||||
_chdirLabel.setName("chdirLabel");
|
||||
_chdirLabel.setText(Messages.getString("chdir"));
|
||||
jpanel1.add(_chdirLabel,cc.xy(2,12));
|
||||
|
||||
_processPriorityLabel.setName("processPriorityLabel");
|
||||
_processPriorityLabel.setText(Messages.getString("priority"));
|
||||
jpanel1.add(_processPriorityLabel,cc.xy(2,16));
|
||||
|
||||
_normalPriorityRadio.setActionCommand(Messages.getString("normalPriority"));
|
||||
_normalPriorityRadio.setName("normalPriorityRadio");
|
||||
_normalPriorityRadio.setText(Messages.getString("normalPriority"));
|
||||
_buttongroup1.add(_normalPriorityRadio);
|
||||
jpanel1.add(_normalPriorityRadio,cc.xy(4,16));
|
||||
|
||||
_idlePriorityRadio.setActionCommand(Messages.getString("idlePriority"));
|
||||
_idlePriorityRadio.setName("idlePriorityRadio");
|
||||
_idlePriorityRadio.setText(Messages.getString("idlePriority"));
|
||||
_buttongroup1.add(_idlePriorityRadio);
|
||||
jpanel1.add(_idlePriorityRadio,cc.xy(6,16));
|
||||
|
||||
_highPriorityRadio.setActionCommand(Messages.getString("highPriority"));
|
||||
_highPriorityRadio.setName("highPriorityRadio");
|
||||
_highPriorityRadio.setText(Messages.getString("highPriority"));
|
||||
_buttongroup1.add(_highPriorityRadio);
|
||||
jpanel1.add(_highPriorityRadio,cc.xy(8,16));
|
||||
|
||||
_customProcNameCheck.setActionCommand("Custom process name");
|
||||
_customProcNameCheck.setName("customProcNameCheck");
|
||||
_customProcNameCheck.setText(Messages.getString("customProcName"));
|
||||
jpanel1.add(_customProcNameCheck,cc.xywh(4,18,7,1));
|
||||
|
||||
_stayAliveCheck.setActionCommand("Stay alive after launching a GUI application");
|
||||
_stayAliveCheck.setName("stayAliveCheck");
|
||||
_stayAliveCheck.setText(Messages.getString("stayAlive"));
|
||||
jpanel1.add(_stayAliveCheck,cc.xywh(4,20,7,1));
|
||||
|
||||
_cmdLineField.setName("cmdLineField");
|
||||
_cmdLineField.setToolTipText(Messages.getString("cmdLineTip"));
|
||||
jpanel1.add(_cmdLineField,cc.xywh(4,14,7,1));
|
||||
|
||||
_chdirField.setName("chdirField");
|
||||
_chdirField.setToolTipText(Messages.getString("chdirTip"));
|
||||
jpanel1.add(_chdirField,cc.xywh(4,12,7,1));
|
||||
|
||||
_iconField.setName("iconField");
|
||||
_iconField.setToolTipText(Messages.getString("iconTip"));
|
||||
jpanel1.add(_iconField,cc.xywh(4,10,7,1));
|
||||
|
||||
_dontWrapJarCheck.setActionCommand("Don't wrap the jar, launch it only");
|
||||
_dontWrapJarCheck.setName("dontWrapJarCheck");
|
||||
_dontWrapJarCheck.setText(Messages.getString("dontWrapJar"));
|
||||
jpanel1.add(_dontWrapJarCheck,cc.xywh(4,6,7,1));
|
||||
|
||||
_jarField.setName("jarField");
|
||||
_jarField.setToolTipText(Messages.getString("jarTip"));
|
||||
jpanel1.add(_jarField,cc.xywh(4,4,7,1));
|
||||
|
||||
_outfileField.setName("outfileField");
|
||||
_outfileField.setToolTipText(Messages.getString("outfileTip"));
|
||||
jpanel1.add(_outfileField,cc.xywh(4,2,7,1));
|
||||
|
||||
TitledSeparator titledseparator1 = new TitledSeparator();
|
||||
titledseparator1.setText(Messages.getString("downloadAndSupport"));
|
||||
jpanel1.add(titledseparator1,cc.xywh(2,22,11,1));
|
||||
|
||||
_errorTitleLabel.setName("errorTitleLabel");
|
||||
_errorTitleLabel.setText(Messages.getString("errorTitle"));
|
||||
jpanel1.add(_errorTitleLabel,cc.xy(2,24));
|
||||
|
||||
_errorTitleField.setName("errorTitleField");
|
||||
_errorTitleField.setToolTipText(Messages.getString("errorTitleTip"));
|
||||
jpanel1.add(_errorTitleField,cc.xywh(4,24,7,1));
|
||||
|
||||
_downloadUrlLabel.setIcon(loadImage("images/asterix.gif"));
|
||||
_downloadUrlLabel.setName("downloadUrlLabel");
|
||||
_downloadUrlLabel.setText(Messages.getString("downloadUrl"));
|
||||
jpanel1.add(_downloadUrlLabel,cc.xy(2,26));
|
||||
|
||||
_downloadUrlField.setName("downloadUrlField");
|
||||
jpanel1.add(_downloadUrlField,cc.xywh(4,26,7,1));
|
||||
|
||||
_supportUrlLabel.setName("supportUrlLabel");
|
||||
_supportUrlLabel.setText(Messages.getString("supportUrl"));
|
||||
jpanel1.add(_supportUrlLabel,cc.xy(2,28));
|
||||
|
||||
_supportUrlField.setName("supportUrlField");
|
||||
jpanel1.add(_supportUrlField,cc.xywh(4,28,7,1));
|
||||
|
||||
JLabel jlabel1 = new JLabel();
|
||||
jlabel1.setText(Messages.getString("manifest"));
|
||||
jpanel1.add(jlabel1,cc.xy(2,8));
|
||||
|
||||
_manifestField.setName("manifestField");
|
||||
_manifestField.setToolTipText(Messages.getString("manifestTip"));
|
||||
jpanel1.add(_manifestField,cc.xywh(4,8,7,1));
|
||||
|
||||
_manifestButton.setIcon(loadImage("images/open16.png"));
|
||||
_manifestButton.setName("manifestButton");
|
||||
jpanel1.add(_manifestButton,cc.xy(12,8));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializer
|
||||
*/
|
||||
protected void initializePanel()
|
||||
{
|
||||
setLayout(new BorderLayout());
|
||||
add(createPanel(), BorderLayout.CENTER);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
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.JTextField;
|
||||
|
||||
public abstract class BasicForm extends JPanel
|
||||
{
|
||||
protected final JButton _outfileButton = new JButton();
|
||||
protected final JLabel _outfileLabel = new JLabel();
|
||||
protected final JLabel _iconLabel = new JLabel();
|
||||
protected final JLabel _jarLabel = new JLabel();
|
||||
protected final JButton _jarButton = new JButton();
|
||||
protected final JButton _iconButton = new JButton();
|
||||
protected final JLabel _cmdLineLabel = new JLabel();
|
||||
protected final JLabel _optionsLabel = new JLabel();
|
||||
protected final JLabel _chdirLabel = new JLabel();
|
||||
protected final JLabel _processPriorityLabel = new JLabel();
|
||||
protected final JRadioButton _normalPriorityRadio = new JRadioButton();
|
||||
protected final ButtonGroup _buttongroup1 = new ButtonGroup();
|
||||
protected final JRadioButton _idlePriorityRadio = new JRadioButton();
|
||||
protected final JRadioButton _highPriorityRadio = new JRadioButton();
|
||||
protected final JCheckBox _customProcNameCheck = new JCheckBox();
|
||||
protected final JCheckBox _stayAliveCheck = new JCheckBox();
|
||||
protected final JTextField _cmdLineField = new JTextField();
|
||||
protected final JTextField _chdirField = new JTextField();
|
||||
protected final JTextField _iconField = new JTextField();
|
||||
protected final JCheckBox _dontWrapJarCheck = new JCheckBox();
|
||||
protected final JTextField _jarField = new JTextField();
|
||||
protected final JTextField _outfileField = new JTextField();
|
||||
protected final JLabel _errorTitleLabel = new JLabel();
|
||||
protected final JTextField _errorTitleField = new JTextField();
|
||||
protected final JLabel _downloadUrlLabel = new JLabel();
|
||||
protected final JTextField _downloadUrlField = new JTextField();
|
||||
protected final JLabel _supportUrlLabel = new JLabel();
|
||||
protected final JTextField _supportUrlField = new JTextField();
|
||||
protected final JTextField _manifestField = new JTextField();
|
||||
protected final JButton _manifestButton = new JButton();
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public BasicForm()
|
||||
{
|
||||
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:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT: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: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:9DLU:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_outfileButton.setIcon(loadImage("images/open16.png"));
|
||||
_outfileButton.setName("outfileButton");
|
||||
jpanel1.add(_outfileButton,cc.xy(12,2));
|
||||
|
||||
_outfileLabel.setIcon(loadImage("images/asterix.gif"));
|
||||
_outfileLabel.setName("outfileLabel");
|
||||
_outfileLabel.setText(Messages.getString("outfile"));
|
||||
jpanel1.add(_outfileLabel,cc.xy(2,2));
|
||||
|
||||
_iconLabel.setName("iconLabel");
|
||||
_iconLabel.setText(Messages.getString("icon"));
|
||||
jpanel1.add(_iconLabel,cc.xy(2,10));
|
||||
|
||||
_jarLabel.setIcon(loadImage("images/asterix.gif"));
|
||||
_jarLabel.setName("jarLabel");
|
||||
_jarLabel.setText(Messages.getString("jar"));
|
||||
jpanel1.add(_jarLabel,cc.xy(2,4));
|
||||
|
||||
_jarButton.setIcon(loadImage("images/open16.png"));
|
||||
_jarButton.setName("jarButton");
|
||||
jpanel1.add(_jarButton,cc.xy(12,4));
|
||||
|
||||
_iconButton.setIcon(loadImage("images/open16.png"));
|
||||
_iconButton.setName("iconButton");
|
||||
jpanel1.add(_iconButton,cc.xy(12,10));
|
||||
|
||||
_cmdLineLabel.setName("cmdLineLabel");
|
||||
_cmdLineLabel.setText(Messages.getString("cmdLine"));
|
||||
_cmdLineLabel.setToolTipText("");
|
||||
jpanel1.add(_cmdLineLabel,cc.xy(2,14));
|
||||
|
||||
_optionsLabel.setName("optionsLabel");
|
||||
_optionsLabel.setText(Messages.getString("options"));
|
||||
jpanel1.add(_optionsLabel,cc.xy(2,18));
|
||||
|
||||
_chdirLabel.setName("chdirLabel");
|
||||
_chdirLabel.setText(Messages.getString("chdir"));
|
||||
jpanel1.add(_chdirLabel,cc.xy(2,12));
|
||||
|
||||
_processPriorityLabel.setName("processPriorityLabel");
|
||||
_processPriorityLabel.setText(Messages.getString("priority"));
|
||||
jpanel1.add(_processPriorityLabel,cc.xy(2,16));
|
||||
|
||||
_normalPriorityRadio.setActionCommand(Messages.getString("normalPriority"));
|
||||
_normalPriorityRadio.setName("normalPriorityRadio");
|
||||
_normalPriorityRadio.setText(Messages.getString("normalPriority"));
|
||||
_buttongroup1.add(_normalPriorityRadio);
|
||||
jpanel1.add(_normalPriorityRadio,cc.xy(4,16));
|
||||
|
||||
_idlePriorityRadio.setActionCommand(Messages.getString("idlePriority"));
|
||||
_idlePriorityRadio.setName("idlePriorityRadio");
|
||||
_idlePriorityRadio.setText(Messages.getString("idlePriority"));
|
||||
_buttongroup1.add(_idlePriorityRadio);
|
||||
jpanel1.add(_idlePriorityRadio,cc.xy(6,16));
|
||||
|
||||
_highPriorityRadio.setActionCommand(Messages.getString("highPriority"));
|
||||
_highPriorityRadio.setName("highPriorityRadio");
|
||||
_highPriorityRadio.setText(Messages.getString("highPriority"));
|
||||
_buttongroup1.add(_highPriorityRadio);
|
||||
jpanel1.add(_highPriorityRadio,cc.xy(8,16));
|
||||
|
||||
_customProcNameCheck.setActionCommand("Custom process name");
|
||||
_customProcNameCheck.setName("customProcNameCheck");
|
||||
_customProcNameCheck.setText(Messages.getString("customProcName"));
|
||||
jpanel1.add(_customProcNameCheck,cc.xywh(4,18,7,1));
|
||||
|
||||
_stayAliveCheck.setActionCommand("Stay alive after launching a GUI application");
|
||||
_stayAliveCheck.setName("stayAliveCheck");
|
||||
_stayAliveCheck.setText(Messages.getString("stayAlive"));
|
||||
jpanel1.add(_stayAliveCheck,cc.xywh(4,20,7,1));
|
||||
|
||||
_cmdLineField.setName("cmdLineField");
|
||||
_cmdLineField.setToolTipText(Messages.getString("cmdLineTip"));
|
||||
jpanel1.add(_cmdLineField,cc.xywh(4,14,7,1));
|
||||
|
||||
_chdirField.setName("chdirField");
|
||||
_chdirField.setToolTipText(Messages.getString("chdirTip"));
|
||||
jpanel1.add(_chdirField,cc.xywh(4,12,7,1));
|
||||
|
||||
_iconField.setName("iconField");
|
||||
_iconField.setToolTipText(Messages.getString("iconTip"));
|
||||
jpanel1.add(_iconField,cc.xywh(4,10,7,1));
|
||||
|
||||
_dontWrapJarCheck.setActionCommand("Don't wrap the jar, launch it only");
|
||||
_dontWrapJarCheck.setName("dontWrapJarCheck");
|
||||
_dontWrapJarCheck.setText(Messages.getString("dontWrapJar"));
|
||||
jpanel1.add(_dontWrapJarCheck,cc.xywh(4,6,7,1));
|
||||
|
||||
_jarField.setName("jarField");
|
||||
_jarField.setToolTipText(Messages.getString("jarTip"));
|
||||
jpanel1.add(_jarField,cc.xywh(4,4,7,1));
|
||||
|
||||
_outfileField.setName("outfileField");
|
||||
_outfileField.setToolTipText(Messages.getString("outfileTip"));
|
||||
jpanel1.add(_outfileField,cc.xywh(4,2,7,1));
|
||||
|
||||
TitledSeparator titledseparator1 = new TitledSeparator();
|
||||
titledseparator1.setText(Messages.getString("downloadAndSupport"));
|
||||
jpanel1.add(titledseparator1,cc.xywh(2,22,11,1));
|
||||
|
||||
_errorTitleLabel.setName("errorTitleLabel");
|
||||
_errorTitleLabel.setText(Messages.getString("errorTitle"));
|
||||
jpanel1.add(_errorTitleLabel,cc.xy(2,24));
|
||||
|
||||
_errorTitleField.setName("errorTitleField");
|
||||
_errorTitleField.setToolTipText(Messages.getString("errorTitleTip"));
|
||||
jpanel1.add(_errorTitleField,cc.xywh(4,24,7,1));
|
||||
|
||||
_downloadUrlLabel.setIcon(loadImage("images/asterix.gif"));
|
||||
_downloadUrlLabel.setName("downloadUrlLabel");
|
||||
_downloadUrlLabel.setText(Messages.getString("downloadUrl"));
|
||||
jpanel1.add(_downloadUrlLabel,cc.xy(2,26));
|
||||
|
||||
_downloadUrlField.setName("downloadUrlField");
|
||||
jpanel1.add(_downloadUrlField,cc.xywh(4,26,7,1));
|
||||
|
||||
_supportUrlLabel.setName("supportUrlLabel");
|
||||
_supportUrlLabel.setText(Messages.getString("supportUrl"));
|
||||
jpanel1.add(_supportUrlLabel,cc.xy(2,28));
|
||||
|
||||
_supportUrlField.setName("supportUrlField");
|
||||
jpanel1.add(_supportUrlField,cc.xywh(4,28,7,1));
|
||||
|
||||
JLabel jlabel1 = new JLabel();
|
||||
jlabel1.setText(Messages.getString("manifest"));
|
||||
jpanel1.add(jlabel1,cc.xy(2,8));
|
||||
|
||||
_manifestField.setName("manifestField");
|
||||
_manifestField.setToolTipText(Messages.getString("manifestTip"));
|
||||
jpanel1.add(_manifestField,cc.xywh(4,8,7,1));
|
||||
|
||||
_manifestButton.setIcon(loadImage("images/open16.png"));
|
||||
_manifestButton.setName("manifestButton");
|
||||
jpanel1.add(_manifestButton,cc.xy(12,8));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializer
|
||||
*/
|
||||
protected void initializePanel()
|
||||
{
|
||||
setLayout(new BorderLayout());
|
||||
add(createPanel(), BorderLayout.CENTER);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,266 +1,266 @@
|
|||
package net.sf.launch4j.form;
|
||||
|
||||
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.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
public abstract class JreForm extends JPanel
|
||||
{
|
||||
protected final JLabel _jrePathLabel = new JLabel();
|
||||
protected final JLabel _jreMinLabel = new JLabel();
|
||||
protected final JLabel _jreMaxLabel = new JLabel();
|
||||
protected final JLabel _jvmOptionsTextLabel = new JLabel();
|
||||
protected final JTextField _jrePathField = new JTextField();
|
||||
protected final JTextField _jreMinField = new JTextField();
|
||||
protected final JTextField _jreMaxField = new JTextField();
|
||||
protected final JTextArea _jvmOptionsTextArea = 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 JComboBox _varCombo = new JComboBox();
|
||||
protected final JButton _propertyButton = new JButton();
|
||||
protected final JButton _optionButton = new JButton();
|
||||
protected final JButton _envPropertyButton = new JButton();
|
||||
protected final JButton _envOptionButton = new JButton();
|
||||
protected final JTextField _envVarField = new JTextField();
|
||||
protected final JTextField _maxHeapPercentField = new JTextField();
|
||||
protected final JTextField _initialHeapPercentField = new JTextField();
|
||||
protected final JComboBox _jdkPreferenceCombo = new JComboBox();
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public JreForm()
|
||||
{
|
||||
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:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:60DLU: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:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:50DLU:GROW(1.0),CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_jrePathLabel.setName("jrePathLabel");
|
||||
_jrePathLabel.setText(Messages.getString("jrePath"));
|
||||
jpanel1.add(_jrePathLabel,cc.xy(2,2));
|
||||
|
||||
_jreMinLabel.setName("jreMinLabel");
|
||||
_jreMinLabel.setText(Messages.getString("jreMin"));
|
||||
jpanel1.add(_jreMinLabel,cc.xy(2,4));
|
||||
|
||||
_jreMaxLabel.setName("jreMaxLabel");
|
||||
_jreMaxLabel.setText(Messages.getString("jreMax"));
|
||||
jpanel1.add(_jreMaxLabel,cc.xy(2,6));
|
||||
|
||||
_jvmOptionsTextLabel.setName("jvmOptionsTextLabel");
|
||||
_jvmOptionsTextLabel.setText(Messages.getString("jvmOptions"));
|
||||
jpanel1.add(_jvmOptionsTextLabel,new CellConstraints(2,12,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
_jrePathField.setName("jrePathField");
|
||||
_jrePathField.setToolTipText(Messages.getString("jrePathTip"));
|
||||
jpanel1.add(_jrePathField,cc.xywh(4,2,7,1));
|
||||
|
||||
_jreMinField.setName("jreMinField");
|
||||
jpanel1.add(_jreMinField,cc.xy(4,4));
|
||||
|
||||
_jreMaxField.setName("jreMaxField");
|
||||
jpanel1.add(_jreMaxField,cc.xy(4,6));
|
||||
|
||||
_jvmOptionsTextArea.setName("jvmOptionsTextArea");
|
||||
_jvmOptionsTextArea.setToolTipText(Messages.getString("jvmOptionsTip"));
|
||||
JScrollPane jscrollpane1 = new JScrollPane();
|
||||
jscrollpane1.setViewportView(_jvmOptionsTextArea);
|
||||
jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane1,cc.xywh(4,12,7,1));
|
||||
|
||||
_initialHeapSizeLabel.setName("initialHeapSizeLabel");
|
||||
_initialHeapSizeLabel.setText(Messages.getString("initialHeapSize"));
|
||||
jpanel1.add(_initialHeapSizeLabel,cc.xy(2,8));
|
||||
|
||||
_maxHeapSizeLabel.setName("maxHeapSizeLabel");
|
||||
_maxHeapSizeLabel.setText(Messages.getString("maxHeapSize"));
|
||||
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(createPanel1(),cc.xywh(2,14,9,1));
|
||||
_maxHeapPercentField.setName("maxHeapPercentField");
|
||||
jpanel1.add(_maxHeapPercentField,cc.xy(8,10));
|
||||
|
||||
_initialHeapPercentField.setName("initialHeapPercentField");
|
||||
jpanel1.add(_initialHeapPercentField,cc.xy(8,8));
|
||||
|
||||
_jdkPreferenceCombo.setName("jdkPreferenceCombo");
|
||||
jpanel1.add(_jdkPreferenceCombo,cc.xywh(8,4,3,1));
|
||||
|
||||
JLabel jlabel3 = new JLabel();
|
||||
jlabel3.setText(Messages.getString("freeMemory"));
|
||||
jpanel1.add(jlabel3,cc.xy(10,8));
|
||||
|
||||
JLabel jlabel4 = new JLabel();
|
||||
jlabel4.setText(Messages.getString("freeMemory"));
|
||||
jpanel1.add(jlabel4,cc.xy(10,10));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9,10,11 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
public JPanel createPanel1()
|
||||
{
|
||||
JPanel jpanel1 = new JPanel();
|
||||
FormLayout formlayout1 = new FormLayout("RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_varCombo.setName("varCombo");
|
||||
jpanel1.add(_varCombo,cc.xy(3,1));
|
||||
|
||||
_propertyButton.setActionCommand("Add");
|
||||
_propertyButton.setIcon(loadImage("images/edit_add16.png"));
|
||||
_propertyButton.setName("propertyButton");
|
||||
_propertyButton.setText(Messages.getString("property"));
|
||||
_propertyButton.setToolTipText(Messages.getString("propertyTip"));
|
||||
jpanel1.add(_propertyButton,cc.xy(5,1));
|
||||
|
||||
_optionButton.setActionCommand("Add");
|
||||
_optionButton.setIcon(loadImage("images/edit_add16.png"));
|
||||
_optionButton.setName("optionButton");
|
||||
_optionButton.setText(Messages.getString("option"));
|
||||
_optionButton.setToolTipText(Messages.getString("optionTip"));
|
||||
jpanel1.add(_optionButton,cc.xy(7,1));
|
||||
|
||||
_envPropertyButton.setActionCommand("Add");
|
||||
_envPropertyButton.setIcon(loadImage("images/edit_add16.png"));
|
||||
_envPropertyButton.setName("envPropertyButton");
|
||||
_envPropertyButton.setText(Messages.getString("property"));
|
||||
_envPropertyButton.setToolTipText(Messages.getString("propertyTip"));
|
||||
jpanel1.add(_envPropertyButton,cc.xy(5,3));
|
||||
|
||||
JLabel jlabel1 = new JLabel();
|
||||
jlabel1.setText(Messages.getString("varsAndRegistry"));
|
||||
jpanel1.add(jlabel1,cc.xy(1,1));
|
||||
|
||||
JLabel jlabel2 = new JLabel();
|
||||
jlabel2.setIcon(loadImage("images/asterix.gif"));
|
||||
jlabel2.setText(Messages.getString("envVar"));
|
||||
jpanel1.add(jlabel2,cc.xy(1,3));
|
||||
|
||||
_envOptionButton.setActionCommand("Add");
|
||||
_envOptionButton.setIcon(loadImage("images/edit_add16.png"));
|
||||
_envOptionButton.setName("envOptionButton");
|
||||
_envOptionButton.setText(Messages.getString("option"));
|
||||
_envOptionButton.setToolTipText(Messages.getString("optionTip"));
|
||||
jpanel1.add(_envOptionButton,cc.xy(7,3));
|
||||
|
||||
_envVarField.setName("envVarField");
|
||||
jpanel1.add(_envVarField,cc.xy(3,3));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 2,4,6 },new int[]{ 2 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializer
|
||||
*/
|
||||
protected void initializePanel()
|
||||
{
|
||||
setLayout(new BorderLayout());
|
||||
add(createPanel(), BorderLayout.CENTER);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
package net.sf.launch4j.form;
|
||||
|
||||
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.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
public abstract class JreForm extends JPanel
|
||||
{
|
||||
protected final JLabel _jrePathLabel = new JLabel();
|
||||
protected final JLabel _jreMinLabel = new JLabel();
|
||||
protected final JLabel _jreMaxLabel = new JLabel();
|
||||
protected final JLabel _jvmOptionsTextLabel = new JLabel();
|
||||
protected final JTextField _jrePathField = new JTextField();
|
||||
protected final JTextField _jreMinField = new JTextField();
|
||||
protected final JTextField _jreMaxField = new JTextField();
|
||||
protected final JTextArea _jvmOptionsTextArea = 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 JComboBox _varCombo = new JComboBox();
|
||||
protected final JButton _propertyButton = new JButton();
|
||||
protected final JButton _optionButton = new JButton();
|
||||
protected final JButton _envPropertyButton = new JButton();
|
||||
protected final JButton _envOptionButton = new JButton();
|
||||
protected final JTextField _envVarField = new JTextField();
|
||||
protected final JTextField _maxHeapPercentField = new JTextField();
|
||||
protected final JTextField _initialHeapPercentField = new JTextField();
|
||||
protected final JComboBox _jdkPreferenceCombo = new JComboBox();
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public JreForm()
|
||||
{
|
||||
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:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:60DLU: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:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:50DLU:GROW(1.0),CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_jrePathLabel.setName("jrePathLabel");
|
||||
_jrePathLabel.setText(Messages.getString("jrePath"));
|
||||
jpanel1.add(_jrePathLabel,cc.xy(2,2));
|
||||
|
||||
_jreMinLabel.setName("jreMinLabel");
|
||||
_jreMinLabel.setText(Messages.getString("jreMin"));
|
||||
jpanel1.add(_jreMinLabel,cc.xy(2,4));
|
||||
|
||||
_jreMaxLabel.setName("jreMaxLabel");
|
||||
_jreMaxLabel.setText(Messages.getString("jreMax"));
|
||||
jpanel1.add(_jreMaxLabel,cc.xy(2,6));
|
||||
|
||||
_jvmOptionsTextLabel.setName("jvmOptionsTextLabel");
|
||||
_jvmOptionsTextLabel.setText(Messages.getString("jvmOptions"));
|
||||
jpanel1.add(_jvmOptionsTextLabel,new CellConstraints(2,12,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
_jrePathField.setName("jrePathField");
|
||||
_jrePathField.setToolTipText(Messages.getString("jrePathTip"));
|
||||
jpanel1.add(_jrePathField,cc.xywh(4,2,7,1));
|
||||
|
||||
_jreMinField.setName("jreMinField");
|
||||
jpanel1.add(_jreMinField,cc.xy(4,4));
|
||||
|
||||
_jreMaxField.setName("jreMaxField");
|
||||
jpanel1.add(_jreMaxField,cc.xy(4,6));
|
||||
|
||||
_jvmOptionsTextArea.setName("jvmOptionsTextArea");
|
||||
_jvmOptionsTextArea.setToolTipText(Messages.getString("jvmOptionsTip"));
|
||||
JScrollPane jscrollpane1 = new JScrollPane();
|
||||
jscrollpane1.setViewportView(_jvmOptionsTextArea);
|
||||
jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane1,cc.xywh(4,12,7,1));
|
||||
|
||||
_initialHeapSizeLabel.setName("initialHeapSizeLabel");
|
||||
_initialHeapSizeLabel.setText(Messages.getString("initialHeapSize"));
|
||||
jpanel1.add(_initialHeapSizeLabel,cc.xy(2,8));
|
||||
|
||||
_maxHeapSizeLabel.setName("maxHeapSizeLabel");
|
||||
_maxHeapSizeLabel.setText(Messages.getString("maxHeapSize"));
|
||||
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(createPanel1(),cc.xywh(2,14,9,1));
|
||||
_maxHeapPercentField.setName("maxHeapPercentField");
|
||||
jpanel1.add(_maxHeapPercentField,cc.xy(8,10));
|
||||
|
||||
_initialHeapPercentField.setName("initialHeapPercentField");
|
||||
jpanel1.add(_initialHeapPercentField,cc.xy(8,8));
|
||||
|
||||
_jdkPreferenceCombo.setName("jdkPreferenceCombo");
|
||||
jpanel1.add(_jdkPreferenceCombo,cc.xywh(8,4,3,1));
|
||||
|
||||
JLabel jlabel3 = new JLabel();
|
||||
jlabel3.setText(Messages.getString("freeMemory"));
|
||||
jpanel1.add(jlabel3,cc.xy(10,8));
|
||||
|
||||
JLabel jlabel4 = new JLabel();
|
||||
jlabel4.setText(Messages.getString("freeMemory"));
|
||||
jpanel1.add(jlabel4,cc.xy(10,10));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9,10,11 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
public JPanel createPanel1()
|
||||
{
|
||||
JPanel jpanel1 = new JPanel();
|
||||
FormLayout formlayout1 = new FormLayout("RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_varCombo.setName("varCombo");
|
||||
jpanel1.add(_varCombo,cc.xy(3,1));
|
||||
|
||||
_propertyButton.setActionCommand("Add");
|
||||
_propertyButton.setIcon(loadImage("images/edit_add16.png"));
|
||||
_propertyButton.setName("propertyButton");
|
||||
_propertyButton.setText(Messages.getString("property"));
|
||||
_propertyButton.setToolTipText(Messages.getString("propertyTip"));
|
||||
jpanel1.add(_propertyButton,cc.xy(5,1));
|
||||
|
||||
_optionButton.setActionCommand("Add");
|
||||
_optionButton.setIcon(loadImage("images/edit_add16.png"));
|
||||
_optionButton.setName("optionButton");
|
||||
_optionButton.setText(Messages.getString("option"));
|
||||
_optionButton.setToolTipText(Messages.getString("optionTip"));
|
||||
jpanel1.add(_optionButton,cc.xy(7,1));
|
||||
|
||||
_envPropertyButton.setActionCommand("Add");
|
||||
_envPropertyButton.setIcon(loadImage("images/edit_add16.png"));
|
||||
_envPropertyButton.setName("envPropertyButton");
|
||||
_envPropertyButton.setText(Messages.getString("property"));
|
||||
_envPropertyButton.setToolTipText(Messages.getString("propertyTip"));
|
||||
jpanel1.add(_envPropertyButton,cc.xy(5,3));
|
||||
|
||||
JLabel jlabel1 = new JLabel();
|
||||
jlabel1.setText(Messages.getString("varsAndRegistry"));
|
||||
jpanel1.add(jlabel1,cc.xy(1,1));
|
||||
|
||||
JLabel jlabel2 = new JLabel();
|
||||
jlabel2.setIcon(loadImage("images/asterix.gif"));
|
||||
jlabel2.setText(Messages.getString("envVar"));
|
||||
jpanel1.add(jlabel2,cc.xy(1,3));
|
||||
|
||||
_envOptionButton.setActionCommand("Add");
|
||||
_envOptionButton.setIcon(loadImage("images/edit_add16.png"));
|
||||
_envOptionButton.setName("envOptionButton");
|
||||
_envOptionButton.setText(Messages.getString("option"));
|
||||
_envOptionButton.setToolTipText(Messages.getString("optionTip"));
|
||||
jpanel1.add(_envOptionButton,cc.xy(7,3));
|
||||
|
||||
_envVarField.setName("envVarField");
|
||||
jpanel1.add(_envVarField,cc.xy(3,3));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 2,4,6 },new int[]{ 2 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializer
|
||||
*/
|
||||
protected void initializePanel()
|
||||
{
|
||||
setLayout(new BorderLayout());
|
||||
add(createPanel(), BorderLayout.CENTER);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,183 +1,183 @@
|
|||
package net.sf.launch4j.form;
|
||||
|
||||
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.ImageIcon;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextArea;
|
||||
|
||||
public abstract class MessagesForm extends JPanel
|
||||
{
|
||||
protected final JTextArea _startupErrTextArea = new JTextArea();
|
||||
protected final JTextArea _bundledJreErrTextArea = new JTextArea();
|
||||
protected final JTextArea _jreVersionErrTextArea = new JTextArea();
|
||||
protected final JTextArea _launcherErrTextArea = new JTextArea();
|
||||
protected final JCheckBox _messagesCheck = new JCheckBox();
|
||||
protected final JTextArea _instanceAlreadyExistsMsgTextArea = new JTextArea();
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public MessagesForm()
|
||||
{
|
||||
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:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:9DLU:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_startupErrTextArea.setName("startupErrTextArea");
|
||||
JScrollPane jscrollpane1 = new JScrollPane();
|
||||
jscrollpane1.setViewportView(_startupErrTextArea);
|
||||
jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane1,cc.xy(4,4));
|
||||
|
||||
_bundledJreErrTextArea.setName("bundledJreErrTextArea");
|
||||
JScrollPane jscrollpane2 = new JScrollPane();
|
||||
jscrollpane2.setViewportView(_bundledJreErrTextArea);
|
||||
jscrollpane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane2,cc.xy(4,6));
|
||||
|
||||
_jreVersionErrTextArea.setName("jreVersionErrTextArea");
|
||||
_jreVersionErrTextArea.setToolTipText(Messages.getString("jreVersionErrTip"));
|
||||
JScrollPane jscrollpane3 = new JScrollPane();
|
||||
jscrollpane3.setViewportView(_jreVersionErrTextArea);
|
||||
jscrollpane3.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane3.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane3,cc.xy(4,8));
|
||||
|
||||
_launcherErrTextArea.setName("launcherErrTextArea");
|
||||
JScrollPane jscrollpane4 = new JScrollPane();
|
||||
jscrollpane4.setViewportView(_launcherErrTextArea);
|
||||
jscrollpane4.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane4.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane4,cc.xy(4,10));
|
||||
|
||||
JLabel jlabel1 = new JLabel();
|
||||
jlabel1.setText(Messages.getString("startupErr"));
|
||||
jpanel1.add(jlabel1,new CellConstraints(2,4,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
JLabel jlabel2 = new JLabel();
|
||||
jlabel2.setText(Messages.getString("bundledJreErr"));
|
||||
jpanel1.add(jlabel2,new CellConstraints(2,6,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
JLabel jlabel3 = new JLabel();
|
||||
jlabel3.setText(Messages.getString("jreVersionErr"));
|
||||
jpanel1.add(jlabel3,new CellConstraints(2,8,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
JLabel jlabel4 = new JLabel();
|
||||
jlabel4.setText(Messages.getString("launcherErr"));
|
||||
jpanel1.add(jlabel4,new CellConstraints(2,10,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
_messagesCheck.setActionCommand("Add version information");
|
||||
_messagesCheck.setName("messagesCheck");
|
||||
_messagesCheck.setText(Messages.getString("addMessages"));
|
||||
jpanel1.add(_messagesCheck,cc.xy(4,2));
|
||||
|
||||
JLabel jlabel5 = new JLabel();
|
||||
jlabel5.setText(Messages.getString("instanceAlreadyExistsMsg"));
|
||||
jpanel1.add(jlabel5,new CellConstraints(2,12,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
_instanceAlreadyExistsMsgTextArea.setName("instanceAlreadyExistsMsgTextArea");
|
||||
_instanceAlreadyExistsMsgTextArea.setToolTipText(Messages.getString("instanceAlreadyExistsMsgTip"));
|
||||
JScrollPane jscrollpane5 = new JScrollPane();
|
||||
jscrollpane5.setViewportView(_instanceAlreadyExistsMsgTextArea);
|
||||
jscrollpane5.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane5.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane5,cc.xy(4,12));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializer
|
||||
*/
|
||||
protected void initializePanel()
|
||||
{
|
||||
setLayout(new BorderLayout());
|
||||
add(createPanel(), BorderLayout.CENTER);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
package net.sf.launch4j.form;
|
||||
|
||||
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.ImageIcon;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextArea;
|
||||
|
||||
public abstract class MessagesForm extends JPanel
|
||||
{
|
||||
protected final JTextArea _startupErrTextArea = new JTextArea();
|
||||
protected final JTextArea _bundledJreErrTextArea = new JTextArea();
|
||||
protected final JTextArea _jreVersionErrTextArea = new JTextArea();
|
||||
protected final JTextArea _launcherErrTextArea = new JTextArea();
|
||||
protected final JCheckBox _messagesCheck = new JCheckBox();
|
||||
protected final JTextArea _instanceAlreadyExistsMsgTextArea = new JTextArea();
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public MessagesForm()
|
||||
{
|
||||
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:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:9DLU:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_startupErrTextArea.setName("startupErrTextArea");
|
||||
JScrollPane jscrollpane1 = new JScrollPane();
|
||||
jscrollpane1.setViewportView(_startupErrTextArea);
|
||||
jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane1,cc.xy(4,4));
|
||||
|
||||
_bundledJreErrTextArea.setName("bundledJreErrTextArea");
|
||||
JScrollPane jscrollpane2 = new JScrollPane();
|
||||
jscrollpane2.setViewportView(_bundledJreErrTextArea);
|
||||
jscrollpane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane2,cc.xy(4,6));
|
||||
|
||||
_jreVersionErrTextArea.setName("jreVersionErrTextArea");
|
||||
_jreVersionErrTextArea.setToolTipText(Messages.getString("jreVersionErrTip"));
|
||||
JScrollPane jscrollpane3 = new JScrollPane();
|
||||
jscrollpane3.setViewportView(_jreVersionErrTextArea);
|
||||
jscrollpane3.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane3.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane3,cc.xy(4,8));
|
||||
|
||||
_launcherErrTextArea.setName("launcherErrTextArea");
|
||||
JScrollPane jscrollpane4 = new JScrollPane();
|
||||
jscrollpane4.setViewportView(_launcherErrTextArea);
|
||||
jscrollpane4.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane4.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane4,cc.xy(4,10));
|
||||
|
||||
JLabel jlabel1 = new JLabel();
|
||||
jlabel1.setText(Messages.getString("startupErr"));
|
||||
jpanel1.add(jlabel1,new CellConstraints(2,4,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
JLabel jlabel2 = new JLabel();
|
||||
jlabel2.setText(Messages.getString("bundledJreErr"));
|
||||
jpanel1.add(jlabel2,new CellConstraints(2,6,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
JLabel jlabel3 = new JLabel();
|
||||
jlabel3.setText(Messages.getString("jreVersionErr"));
|
||||
jpanel1.add(jlabel3,new CellConstraints(2,8,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
JLabel jlabel4 = new JLabel();
|
||||
jlabel4.setText(Messages.getString("launcherErr"));
|
||||
jpanel1.add(jlabel4,new CellConstraints(2,10,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
_messagesCheck.setActionCommand("Add version information");
|
||||
_messagesCheck.setName("messagesCheck");
|
||||
_messagesCheck.setText(Messages.getString("addMessages"));
|
||||
jpanel1.add(_messagesCheck,cc.xy(4,2));
|
||||
|
||||
JLabel jlabel5 = new JLabel();
|
||||
jlabel5.setText(Messages.getString("instanceAlreadyExistsMsg"));
|
||||
jpanel1.add(jlabel5,new CellConstraints(2,12,1,1,CellConstraints.DEFAULT,CellConstraints.TOP));
|
||||
|
||||
_instanceAlreadyExistsMsgTextArea.setName("instanceAlreadyExistsMsgTextArea");
|
||||
_instanceAlreadyExistsMsgTextArea.setToolTipText(Messages.getString("instanceAlreadyExistsMsgTip"));
|
||||
JScrollPane jscrollpane5 = new JScrollPane();
|
||||
jscrollpane5.setViewportView(_instanceAlreadyExistsMsgTextArea);
|
||||
jscrollpane5.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
jscrollpane5.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
jpanel1.add(jscrollpane5,cc.xy(4,12));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializer
|
||||
*/
|
||||
protected void initializePanel()
|
||||
{
|
||||
setLayout(new BorderLayout());
|
||||
add(createPanel(), BorderLayout.CENTER);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,141 +1,141 @@
|
|||
package net.sf.launch4j.form;
|
||||
|
||||
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.ImageIcon;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
public abstract class SingleInstanceForm extends JPanel
|
||||
{
|
||||
protected final JLabel _splashFileLabel = new JLabel();
|
||||
protected final JTextField _mutexNameField = new JTextField();
|
||||
protected final JCheckBox _singleInstanceCheck = new JCheckBox();
|
||||
protected final JTextField _windowTitleField = new JTextField();
|
||||
protected final JLabel _splashFileLabel1 = new JLabel();
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public SingleInstanceForm()
|
||||
{
|
||||
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:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU: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:9DLU:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_splashFileLabel.setIcon(loadImage("images/asterix.gif"));
|
||||
_splashFileLabel.setName("splashFileLabel");
|
||||
_splashFileLabel.setText(Messages.getString("mutexName"));
|
||||
jpanel1.add(_splashFileLabel,cc.xy(2,4));
|
||||
|
||||
_mutexNameField.setName("mutexNameField");
|
||||
_mutexNameField.setToolTipText(Messages.getString("mutexNameTip"));
|
||||
jpanel1.add(_mutexNameField,cc.xywh(4,4,2,1));
|
||||
|
||||
_singleInstanceCheck.setActionCommand("Enable splash screen");
|
||||
_singleInstanceCheck.setName("singleInstanceCheck");
|
||||
_singleInstanceCheck.setText(Messages.getString("enableSingleInstance"));
|
||||
jpanel1.add(_singleInstanceCheck,cc.xywh(4,2,2,1));
|
||||
|
||||
_windowTitleField.setName("windowTitleField");
|
||||
_windowTitleField.setToolTipText(Messages.getString("windowTitleTip"));
|
||||
jpanel1.add(_windowTitleField,cc.xywh(4,6,2,1));
|
||||
|
||||
_splashFileLabel1.setName("splashFileLabel");
|
||||
_splashFileLabel1.setText(Messages.getString("windowTitle"));
|
||||
jpanel1.add(_splashFileLabel1,cc.xy(2,6));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6 },new int[]{ 1,2,3,4,5,6,7 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializer
|
||||
*/
|
||||
protected void initializePanel()
|
||||
{
|
||||
setLayout(new BorderLayout());
|
||||
add(createPanel(), BorderLayout.CENTER);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
package net.sf.launch4j.form;
|
||||
|
||||
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.ImageIcon;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
public abstract class SingleInstanceForm extends JPanel
|
||||
{
|
||||
protected final JLabel _splashFileLabel = new JLabel();
|
||||
protected final JTextField _mutexNameField = new JTextField();
|
||||
protected final JCheckBox _singleInstanceCheck = new JCheckBox();
|
||||
protected final JTextField _windowTitleField = new JTextField();
|
||||
protected final JLabel _splashFileLabel1 = new JLabel();
|
||||
|
||||
/**
|
||||
* Default constructor
|
||||
*/
|
||||
public SingleInstanceForm()
|
||||
{
|
||||
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:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU: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:9DLU:NONE");
|
||||
CellConstraints cc = new CellConstraints();
|
||||
jpanel1.setLayout(formlayout1);
|
||||
|
||||
_splashFileLabel.setIcon(loadImage("images/asterix.gif"));
|
||||
_splashFileLabel.setName("splashFileLabel");
|
||||
_splashFileLabel.setText(Messages.getString("mutexName"));
|
||||
jpanel1.add(_splashFileLabel,cc.xy(2,4));
|
||||
|
||||
_mutexNameField.setName("mutexNameField");
|
||||
_mutexNameField.setToolTipText(Messages.getString("mutexNameTip"));
|
||||
jpanel1.add(_mutexNameField,cc.xywh(4,4,2,1));
|
||||
|
||||
_singleInstanceCheck.setActionCommand("Enable splash screen");
|
||||
_singleInstanceCheck.setName("singleInstanceCheck");
|
||||
_singleInstanceCheck.setText(Messages.getString("enableSingleInstance"));
|
||||
jpanel1.add(_singleInstanceCheck,cc.xywh(4,2,2,1));
|
||||
|
||||
_windowTitleField.setName("windowTitleField");
|
||||
_windowTitleField.setToolTipText(Messages.getString("windowTitleTip"));
|
||||
jpanel1.add(_windowTitleField,cc.xywh(4,6,2,1));
|
||||
|
||||
_splashFileLabel1.setName("splashFileLabel");
|
||||
_splashFileLabel1.setText(Messages.getString("windowTitle"));
|
||||
jpanel1.add(_splashFileLabel1,cc.xy(2,6));
|
||||
|
||||
addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6 },new int[]{ 1,2,3,4,5,6,7 });
|
||||
return jpanel1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializer
|
||||
*/
|
||||
protected void initializePanel()
|
||||
{
|
||||
setLayout(new BorderLayout());
|
||||
add(createPanel(), BorderLayout.CENTER);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -333,7 +333,7 @@ public class MainFrame extends JFrame {
|
|||
String path = _outfile.getPath();
|
||||
if (Util.WINDOWS_OS) {
|
||||
log.append(Messages.getString("MainFrame.executing") + path);
|
||||
Util.exec(new String[] { path }, log);
|
||||
Util.exec(new String[] { path, "--l4j-debug" }, log);
|
||||
} else {
|
||||
log.append(Messages.getString("MainFrame.jar.integrity.test")
|
||||
+ path);
|
||||
|
|
|
@ -1,54 +1,54 @@
|
|||
/*
|
||||
Launch4j (http://launch4j.sourceforge.net/)
|
||||
Cross-platform Java application wrapper for creating Windows native executables.
|
||||
|
||||
Copyright (c) 2004, 2007 Grzegorz Kowal
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the Launch4j nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Created on 2007-09-22
|
||||
*/
|
||||
package net.sf.launch4j.formimpl;
|
||||
|
||||
import net.sf.launch4j.binding.Bindings;
|
||||
import net.sf.launch4j.config.SingleInstance;
|
||||
import net.sf.launch4j.form.SingleInstanceForm;
|
||||
|
||||
/**
|
||||
* @author Copyright (C) 2007 Grzegorz Kowal
|
||||
*/
|
||||
public class SingleInstanceFormImpl extends SingleInstanceForm {
|
||||
|
||||
public SingleInstanceFormImpl(Bindings bindings) {
|
||||
bindings.addOptComponent("singleInstance", SingleInstance.class,
|
||||
_singleInstanceCheck)
|
||||
.add("singleInstance.mutexName", _mutexNameField)
|
||||
.add("singleInstance.windowTitle", _windowTitleField);
|
||||
}
|
||||
}
|
||||
/*
|
||||
Launch4j (http://launch4j.sourceforge.net/)
|
||||
Cross-platform Java application wrapper for creating Windows native executables.
|
||||
|
||||
Copyright (c) 2004, 2007 Grzegorz Kowal
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the Launch4j nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Created on 2007-09-22
|
||||
*/
|
||||
package net.sf.launch4j.formimpl;
|
||||
|
||||
import net.sf.launch4j.binding.Bindings;
|
||||
import net.sf.launch4j.config.SingleInstance;
|
||||
import net.sf.launch4j.form.SingleInstanceForm;
|
||||
|
||||
/**
|
||||
* @author Copyright (C) 2007 Grzegorz Kowal
|
||||
*/
|
||||
public class SingleInstanceFormImpl extends SingleInstanceForm {
|
||||
|
||||
public SingleInstanceFormImpl(Bindings bindings) {
|
||||
bindings.addOptComponent("singleInstance", SingleInstance.class,
|
||||
_singleInstanceCheck)
|
||||
.add("singleInstance.mutexName", _mutexNameField)
|
||||
.add("singleInstance.windowTitle", _windowTitleField);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<body>
|
||||
<div id="container">
|
||||
<div id="top">
|
||||
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.1</span>
|
||||
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.2</span>
|
||||
</div>
|
||||
<div id="leftnav">
|
||||
<ul>
|
||||
|
@ -19,8 +19,8 @@
|
|||
<li><a href="docs.html">Docs</a></li>
|
||||
<li><a href="changelog.html">Changelog</a></li>
|
||||
<li><a href="http://sourceforge.net/project/screenshots.php?group_id=95944">Screenshots</a></li>
|
||||
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=95944&package_id=192323">Download</a></li>
|
||||
<li><a href="http://sourceforge.net/forum/?group_id=95944">Support</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j/files/launch4j-3/3.0.2">Download</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j/support">Support</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j">Project summary</a></li>
|
||||
<li><a href="http://sourceforge.net/tracker/?atid=613100&group_id=95944">Bug tracker</a></li>
|
||||
<li><a href="links.html">Links</a></li>
|
||||
|
@ -36,6 +36,14 @@
|
|||
<div id="content">
|
||||
<h2>Changelog</h2>
|
||||
|
||||
<h4>Changes in version 3.0.2 (02-01-2011)</h4>
|
||||
<ul class="changes">
|
||||
<li>Fixed the command line in Exec error message.</li>
|
||||
<li>Fixed set environment variable bug.</li>
|
||||
<li>Added wrapper logging to launch4j GUI.</li>
|
||||
<li>Fixed critical bug: heap size over the limit.</li>
|
||||
</ul>
|
||||
|
||||
<h4>Changes in version 3.0.1 (20-07-2008)</h4>
|
||||
<ul class="changes">
|
||||
<li>Enhanced the runtime logging (--l4j-debug).</li>
|
||||
|
@ -43,28 +51,28 @@
|
|||
<li>Fixed bug #1919406, #1989479 Not every option is loaded from saved xml file (found by Robert Lachner, Jan-Philipp Rathje).</li>
|
||||
<li>Fixed bug #1930222 Simple typo (found by Daniel).</li>
|
||||
</ul>
|
||||
|
||||
<h4>Changes in version 3.0.0 (16-03-2008)</h4>
|
||||
<ul class="changes">
|
||||
<li>FR #1390075 Added dynamic initial/max heap values.</li>
|
||||
<li>FR #1707827 Allow to prefer JDK private runtimes over JREs (Ian Roberts).</li>
|
||||
<li>FR #1730245 Allow to run only a single aplication instance (Sylvain Mina).</li>
|
||||
<li>FR #1391610 Added IBM JRE/JDK support.</li>
|
||||
<li>Added environment variable expansion in bundled JRE path.</li>
|
||||
<li>Fixed critical bug #1882524 JRE detection problem on 64-bit Windows.</li>
|
||||
<li>Fixed bug #1758912 Vista elevation to full administrator privileges.</li>
|
||||
<li>Fixed bug #1784341 Problems with spaces in paths under linux (Michael Piefel).</li>
|
||||
<li>Fixed bug where /bin was appended to path environment variable instead of jre_path/bin.</li>
|
||||
</ul>
|
||||
|
||||
<h4>Changed license to BSD, MIT (26-01-2008)</h4>
|
||||
<ul class="changes">
|
||||
<li>
|
||||
The upcoming Launch4j 3.0.0 release will be licensed under the much more
|
||||
liberal new BSD license. The head subproject (the binary header attached to wrapped jars)
|
||||
will be licensed under the similar MIT license.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Changes in version 3.0.0 (16-03-2008)</h4>
|
||||
<ul class="changes">
|
||||
<li>FR #1390075 Added dynamic initial/max heap values.</li>
|
||||
<li>FR #1707827 Allow to prefer JDK private runtimes over JREs (Ian Roberts).</li>
|
||||
<li>FR #1730245 Allow to run only a single aplication instance (Sylvain Mina).</li>
|
||||
<li>FR #1391610 Added IBM JRE/JDK support.</li>
|
||||
<li>Added environment variable expansion in bundled JRE path.</li>
|
||||
<li>Fixed critical bug #1882524 JRE detection problem on 64-bit Windows.</li>
|
||||
<li>Fixed bug #1758912 Vista elevation to full administrator privileges.</li>
|
||||
<li>Fixed bug #1784341 Problems with spaces in paths under linux (Michael Piefel).</li>
|
||||
<li>Fixed bug where /bin was appended to path environment variable instead of jre_path/bin.</li>
|
||||
</ul>
|
||||
|
||||
<h4>Changed license to BSD, MIT (26-01-2008)</h4>
|
||||
<ul class="changes">
|
||||
<li>
|
||||
The upcoming Launch4j 3.0.0 release will be licensed under the much more
|
||||
liberal new BSD license. The head subproject (the binary header attached to wrapped jars)
|
||||
will be licensed under the similar MIT license.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Changes in version 3.0.0-pre2 (29-10-2006)</h4>
|
||||
<ul class="changes">
|
||||
|
@ -342,9 +350,9 @@
|
|||
<li>Configuration parameter <em>'args'</em> changed to <em>'jvmArgs'</em></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer">
|
||||
All trademarks mentioned are properties of their respective owners.<br />
|
||||
Copyright © 2005-2008 Grzegorz Kowal
|
||||
Copyright © 2005-2011 Grzegorz Kowal
|
||||
<p style="margin-top: 2em">
|
||||
<a href="http://sourceforge.net"><img style="width: 125px; height: 37px; border: none" src="http://sourceforge.net/sflogo.php?group_id=95944&type=4" alt="sf.net"></a>
|
||||
<a href="http://www.nosoftwarepatents.com"><img style="width: 90px; height: 40px; border: none; margin-left: 5%" src="http://www.nosoftwarepatents.com/banners/90x40_3.jpg" alt=""></a>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<body>
|
||||
<div id="container">
|
||||
<div id="top">
|
||||
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.1</span>
|
||||
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.2</span>
|
||||
</div>
|
||||
<div id="leftnav">
|
||||
<ul>
|
||||
|
@ -19,8 +19,8 @@
|
|||
<li><a href="docs.html">Docs</a></li>
|
||||
<li><a href="changelog.html">Changelog</a></li>
|
||||
<li><a href="http://sourceforge.net/project/screenshots.php?group_id=95944">Screenshots</a></li>
|
||||
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=95944&package_id=192323">Download</a></li>
|
||||
<li><a href="http://sourceforge.net/forum/?group_id=95944">Support</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j/files/launch4j-3/3.0.2">Download</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j/support">Support</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j">Project summary</a></li>
|
||||
<li><a href="http://sourceforge.net/tracker/?atid=613100&group_id=95944">Bug tracker</a></li>
|
||||
<li><a href="links.html">Links</a></li>
|
||||
|
@ -90,10 +90,10 @@ may be absolute paths or relative to the configuration file path.
|
|||
<strong><mainClass></strong><span class="codeword">main class</span><strong></mainClass></strong>
|
||||
<strong><cp></strong><span class="codeword">classpath</span><strong></cp></strong>
|
||||
...
|
||||
</classPath>
|
||||
<singleInstance>
|
||||
<strong><mutexName></strong><span class="codeword">text</span><strong></mutexName></strong>
|
||||
<windowTitle><span class="codeword">text</span></windowTitle>
|
||||
</classPath>
|
||||
<singleInstance>
|
||||
<strong><mutexName></strong><span class="codeword">text</span><strong></mutexName></strong>
|
||||
<windowTitle><span class="codeword">text</span></windowTitle>
|
||||
</singleInstance>
|
||||
<strong><jre></strong>
|
||||
<!-- Specify one of the following or both -->
|
||||
|
@ -102,9 +102,9 @@ may be absolute paths or relative to the configuration file path.
|
|||
<maxVersion><span class="codeword">x.x.x[_xx]</span></maxVersion>
|
||||
<jdkPreference><span class="codeword">jreOnly|<u>preferJre</u>|preferJdk|jdkOnly</span></jdkPreference>
|
||||
<!-- Heap sizes in MB and % of free memory -->
|
||||
<initialHeapSize><span class="codeword">MB</span></initialHeapSize>
|
||||
<initialHeapSize><span class="codeword">MB</span></initialHeapSize>
|
||||
<initialHeapPercent><span class="codeword">%</span></initialHeapPercent>
|
||||
<maxHeapSize><span class="codeword">MB</span></maxHeapSize>
|
||||
<maxHeapSize><span class="codeword">MB</span></maxHeapSize>
|
||||
<maxHeapPercent><span class="codeword">%</span></maxHeapPercent>
|
||||
<opt><span class="codeword">text</span></opt>
|
||||
...
|
||||
|
@ -251,20 +251,20 @@ may be absolute paths or relative to the configuration file path.
|
|||
<dl>
|
||||
<dt><lib></dt>
|
||||
<dd>Optional, custom headers only. Ordered list of libraries used by header.</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><singleInstance></dt>
|
||||
<dd>Optional, allow to run only a single instance of the application.</dd>
|
||||
</dl>
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><mutexName></dt>
|
||||
<dd>Unique mutex name that will identify the application.</dd>
|
||||
<dt><windowTitle></dt>
|
||||
<dd>Optional, recognized by GUI header only. Title or title part of a window
|
||||
to bring up instead of running a new instance.
|
||||
</dd>
|
||||
</dl>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><singleInstance></dt>
|
||||
<dd>Optional, allow to run only a single instance of the application.</dd>
|
||||
</dl>
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><mutexName></dt>
|
||||
<dd>Unique mutex name that will identify the application.</dd>
|
||||
<dt><windowTitle></dt>
|
||||
<dd>Optional, recognized by GUI header only. Title or title part of a window
|
||||
to bring up instead of running a new instance.
|
||||
</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
<dl>
|
||||
<dt><jre></dt>
|
||||
|
@ -279,10 +279,10 @@ may be absolute paths or relative to the configuration file path.
|
|||
Note that this path is not checked until the actual application execution.
|
||||
If you'd like the wrapper to search for a JRE (public or SDK private)
|
||||
use the <em><minVersion></em> property, you may also specify
|
||||
the <em><maxVersion></em> to prevent it from using higher Java versions.
|
||||
the <em><maxVersion></em> to prevent it from using higher Java versions.
|
||||
Launch4j will always use the highest version available (in the min/max range of course).
|
||||
If a Sun's JRE is not available or does not satisfy the search criteria,
|
||||
the search will be repeated on IBM runtimes.
|
||||
If a Sun's JRE is not available or does not satisfy the search criteria,
|
||||
the search will be repeated on IBM runtimes.
|
||||
You can also combine these properties to change the startup process...
|
||||
</dd>
|
||||
</dl>
|
||||
|
@ -305,9 +305,9 @@ may be absolute paths or relative to the configuration file path.
|
|||
<dl>
|
||||
<dt><jdkPreference></dt>
|
||||
<dd>Optional, defaults to preferJre; Allows you to specify a preference
|
||||
for a public JRE or a private JDK runtime. Valid values are:
|
||||
</dd>
|
||||
</dl>
|
||||
for a public JRE or a private JDK runtime. Valid values are:
|
||||
</dd>
|
||||
</dl>
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt>jreOnly</dt>
|
||||
|
@ -325,33 +325,33 @@ may be absolute paths or relative to the configuration file path.
|
|||
<dt>jdkOnly</dt>
|
||||
<dd>Always use a private JDK runtime (fails
|
||||
if there is no JDK installed)</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
<dl>
|
||||
<dt>HeapSize, HeapPercent</dt>
|
||||
<dd>If size and percent are specified, then the setting which yields
|
||||
more memory will be chosen at runtime. In other words, setting both values
|
||||
means: percent of free memory no less than size in MB.
|
||||
</dd>
|
||||
</dl>
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><initialHeapSize></dt>
|
||||
<dd>Optional, initial heap size in MB.</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><initialHeapPercent></dt>
|
||||
<dd>Optional, initial heap size in % of free memory.</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><maxHeapSize></dt>
|
||||
<dd>Optional, max heap size in MB.</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><maxHeapPercent></dt>
|
||||
<dd>Optional, max heap size in % of free memory.</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
</dl>
|
||||
</blockquote>
|
||||
<dl>
|
||||
<dt>HeapSize, HeapPercent</dt>
|
||||
<dd>If size and percent are specified, then the setting which yields
|
||||
more memory will be chosen at runtime. In other words, setting both values
|
||||
means: percent of free memory no less than size in MB.
|
||||
</dd>
|
||||
</dl>
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><initialHeapSize></dt>
|
||||
<dd>Optional, initial heap size in MB.</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><initialHeapPercent></dt>
|
||||
<dd>Optional, initial heap size in % of free memory.</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><maxHeapSize></dt>
|
||||
<dd>Optional, max heap size in MB.</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><maxHeapPercent></dt>
|
||||
<dd>Optional, max heap size in % of free memory.</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
<dl>
|
||||
<dt><opt></dt>
|
||||
<dd>Optional, accepts everything you would normally pass to
|
||||
|
@ -571,9 +571,9 @@ expansion is supported, for example:
|
|||
<dd>Change the working directory if the default path contains spaces which windres cannot handle.</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer">
|
||||
All trademarks mentioned are properties of their respective owners.<br />
|
||||
Copyright © 2005-2008 Grzegorz Kowal
|
||||
Copyright © 2005-2011 Grzegorz Kowal
|
||||
<p style="margin-top: 2em">
|
||||
<a href="http://sourceforge.net"><img style="width: 125px; height: 37px; border: none" src="http://sourceforge.net/sflogo.php?group_id=95944&type=4" alt="sf.net"></a>
|
||||
<a href="http://www.nosoftwarepatents.com"><img style="width: 90px; height: 40px; border: none; margin-left: 5%" src="http://www.nosoftwarepatents.com/banners/90x40_3.jpg" alt=""></a>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<body>
|
||||
<div id="container">
|
||||
<div id="top">
|
||||
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.1</span>
|
||||
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.2</span>
|
||||
</div>
|
||||
<div id="leftnav">
|
||||
<ul>
|
||||
|
@ -19,8 +19,8 @@
|
|||
<li><a href="docs.html">Docs</a></li>
|
||||
<li><a href="changelog.html">Changelog</a></li>
|
||||
<li><a href="http://sourceforge.net/project/screenshots.php?group_id=95944">Screenshots</a></li>
|
||||
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=95944&package_id=192323">Download</a></li>
|
||||
<li><a href="http://sourceforge.net/forum/?group_id=95944">Support</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j/files/launch4j-3/3.0.2">Download</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j/support">Support</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j">Project summary</a></li>
|
||||
<li><a href="http://sourceforge.net/tracker/?atid=613100&group_id=95944">Bug tracker</a></li>
|
||||
<li><a href="links.html">Links</a></li>
|
||||
|
@ -114,9 +114,9 @@
|
|||
</p>
|
||||
<a href="http://sourceforge.net/forum/forum.php?forum_id=332683"></a>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer">
|
||||
All trademarks mentioned are properties of their respective owners.<br />
|
||||
Copyright © 2005-2008 Grzegorz Kowal
|
||||
Copyright © 2005-2011 Grzegorz Kowal
|
||||
<p style="margin-top: 2em">
|
||||
<a href="http://sourceforge.net"><img style="width: 125px; height: 37px; border: none" src="http://sourceforge.net/sflogo.php?group_id=95944&type=4" alt="sf.net"></a>
|
||||
<a href="http://www.nosoftwarepatents.com"><img style="width: 90px; height: 40px; border: none; margin-left: 5%" src="http://www.nosoftwarepatents.com/banners/90x40_3.jpg" alt=""></a>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<body>
|
||||
<div id="container">
|
||||
<div id="top">
|
||||
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.1</span>
|
||||
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.2</span>
|
||||
</div>
|
||||
<div id="leftnav">
|
||||
<ul>
|
||||
|
@ -19,8 +19,8 @@
|
|||
<li><a href="docs.html">Docs</a></li>
|
||||
<li><a href="changelog.html">Changelog</a></li>
|
||||
<li><a href="http://sourceforge.net/project/screenshots.php?group_id=95944">Screenshots</a></li>
|
||||
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=95944&package_id=192323">Download</a></li>
|
||||
<li><a href="http://sourceforge.net/forum/?group_id=95944">Support</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j/files/launch4j-3/3.0.2">Download</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j/support">Support</a></li>
|
||||
<li><a href="http://sourceforge.net/projects/launch4j">Project summary</a></li>
|
||||
<li><a href="http://sourceforge.net/tracker/?atid=613100&group_id=95944">Bug tracker</a></li>
|
||||
<li><a href="links.html">Links</a></li>
|
||||
|
@ -59,9 +59,9 @@
|
|||
<a href="http://www.izforge.com/izpack/">IzPack<a><br>
|
||||
</p>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer">
|
||||
All trademarks mentioned are properties of their respective owners.<br />
|
||||
Copyright © 2005-2008 Grzegorz Kowal
|
||||
Copyright © 2005-2011 Grzegorz Kowal
|
||||
<p style="margin-top: 2em">
|
||||
<a href="http://sourceforge.net"><img style="width: 125px; height: 37px; border: none" src="http://sourceforge.net/sflogo.php?group_id=95944&type=4" alt="sf.net"></a>
|
||||
<a href="http://www.nosoftwarepatents.com"><img style="width: 90px; height: 40px; border: none; margin-left: 5%" src="http://www.nosoftwarepatents.com/banners/90x40_3.jpg" alt=""></a>
|
||||
|
|
Loading…
Reference in New Issue