159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta/* 259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Copyright (c) 2009-2012 jMonkeyEngine 359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * All rights reserved. 459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Redistribution and use in source and binary forms, with or without 659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * modification, are permitted provided that the following conditions are 759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * met: 859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * * Redistributions of source code must retain the above copyright 1059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * notice, this list of conditions and the following disclaimer. 1159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 1259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * * Redistributions in binary form must reproduce the above copyright 1359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * notice, this list of conditions and the following disclaimer in the 1459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * documentation and/or other materials provided with the distribution. 1559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 1659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * * Neither the name of 'jMonkeyEngine' nor the names of its contributors 1759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * may be used to endorse or promote products derived from this software 1859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * without specific prior written permission. 1959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 2059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 2259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 2459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 2559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 2659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 2759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 2859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 2959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 3059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 3259b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartapackage com.jme3.system; 3359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 3459b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.io.IOException; 3559b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.io.InputStream; 3659b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.io.OutputStream; 3759b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.io.UnsupportedEncodingException; 3859b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.util.HashMap; 3959b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.util.Map; 4059b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.util.Properties; 4159b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.util.prefs.BackingStoreException; 4259b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.util.prefs.Preferences; 4359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 4459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta/** 4559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <code>AppSettings</code> provides a store of configuration 4659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * to be used by the application. 4759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 4859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * By default only the {@link JmeContext context} uses the configuration, 4959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * however the user may set and retrieve the settings as well. 5059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 5159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @author Kirill Vainer 5259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 5359b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartapublic final class AppSettings extends HashMap<String, Object> { 5459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 5559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta private static final AppSettings defaults = new AppSettings(false); 5659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 5759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 5859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Use LWJGL as the display system and force using the OpenGL1.1 renderer. 5959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 6059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see AppSettings#setRenderer(java.lang.String) 6159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 6259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public static final String LWJGL_OPENGL1 = "LWJGL-OPENGL1"; 6359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 6459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 6559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Use LWJGL as the display system and force using the OpenGL2.0 renderer. 6659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 6759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * If the underlying system does not support OpenGL2.0, then the context 6859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * initialization will throw an exception. 6959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 7059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see AppSettings#setRenderer(java.lang.String) 7159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 7259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public static final String LWJGL_OPENGL2 = "LWJGL-OpenGL2"; 7359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 7459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 7559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Use LWJGL as the display system and force using the core OpenGL3.3 renderer. 7659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 7759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * If the underlying system does not support OpenGL3.3, then the context 7859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * initialization will throw an exception. Note that currently jMonkeyEngine 7959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * does not have any shaders that support OpenGL3.3 therefore this 8059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * option is not useful. 8159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 8259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 8359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see AppSettings#setRenderer(java.lang.String) 8459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 8559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public static final String LWJGL_OPENGL3 = "LWJGL-OpenGL3"; 8659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 8759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 8859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Use LWJGL as the display system and allow the context 8959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * to choose an appropriate renderer based on system capabilities. 9059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 9159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * If the GPU supports OpenGL2 or later, then the OpenGL2.0 renderer will 9259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * be used, otherwise, the OpenGL1.1 renderer is used. 9359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 9459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see AppSettings#setRenderer(java.lang.String) 9559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 9659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public static final String LWJGL_OPENGL_ANY = "LWJGL-OpenGL-Any"; 9759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 9859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 9959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * The JOGL renderer is no longer supported by jME. 10059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 10159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @deprecated Use the LWJGL renderer instead. 10259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 10359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see AppSettings#setRenderer(java.lang.String) 10459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 10559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta @Deprecated 10659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public static final String JOGL = "JOGL"; 10759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 10859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 10959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * The "NULL" option is no longer supported 11059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 11159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @deprecated Specify the "null" value instead 11259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 11359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see AppSettings#setRenderer(java.lang.String) 11459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see AppSettings#setAudioRenderer(java.lang.String) 11559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 11659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta @Deprecated 11759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public static final String NULL = "NULL"; 11859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 11959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 12059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Use the LWJGL OpenAL based renderer for audio capabilities. 12159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 12259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see AppSettings#setAudioRenderer(java.lang.String) 12359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 12459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public static final String LWJGL_OPENAL = "LWJGL"; 12559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 12659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta static { 12759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("Width", 640); 12859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("Height", 480); 12959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("BitsPerPixel", 24); 13059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("Frequency", 60); 13159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("DepthBits", 24); 13259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("StencilBits", 0); 13359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("Samples", 0); 13459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("Fullscreen", false); 13559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("Title", "jMonkey Engine 3.0"); 13659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("Renderer", LWJGL_OPENGL2); 13759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("AudioRenderer", LWJGL_OPENAL); 13859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("DisableJoysticks", true); 13959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("UseInput", true); 14059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("VSync", false); 14159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("FrameRate", -1); 14259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta defaults.put("SettingsDialogImage", "/com/jme3/app/Monkey.png"); 14359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta // defaults.put("Icons", null); 14459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 14559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 14659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 14759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Create a new instance of <code>AppSettings</code>. 14859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 14959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * If <code>loadDefaults</code> is true, then the default settings 15059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * will be set on the AppSettings. 15159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Use false if you want to change some settings but you would like the 15259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * application to load settings from previous launches. 15359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 15459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param loadDefaults If default settings are to be loaded. 15559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 15659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public AppSettings(boolean loadDefaults) { 15759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (loadDefaults) { 15859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putAll(defaults); 15959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 16059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 16159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 16259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 16359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Copies all settings from <code>other</code> to <code>this</code> 16459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * AppSettings. 16559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 16659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Any settings that are specified in other will overwrite settings 16759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * set on this AppSettings. 16859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 16959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param other The AppSettings to copy the settings from 17059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 17159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void copyFrom(AppSettings other) { 17259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta this.putAll(other); 17359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 17459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 17559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 17659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Same as {@link #copyFrom(com.jme3.system.AppSettings) }, except 17759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * doesn't overwrite settings that are already set. 17859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 17959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param other The AppSettings to merge the settings from 18059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 18159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void mergeFrom(AppSettings other) { 18259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta for (String key : other.keySet()) { 18359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (get(key) == null) { 18459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta put(key, other.get(key)); 18559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 18659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 18759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 18859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 18959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 19059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Loads the settings from the given properties input stream. 19159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 19259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param in The InputStream to load from 19359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @throws IOException If an IOException occurs 19459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 19559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #save(java.io.OutputStream) 19659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 19759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void load(InputStream in) throws IOException { 19859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Properties props = new Properties(); 19959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta props.load(in); 20059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta for (Map.Entry<Object, Object> entry : props.entrySet()) { 20159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta String key = (String) entry.getKey(); 20259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta String val = (String) entry.getValue(); 20359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (val != null) { 20459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta val = val.trim(); 20559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 20659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (key.endsWith("(int)")) { 20759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta key = key.substring(0, key.length() - 5); 20859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta int iVal = Integer.parseInt(val); 20959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putInteger(key, iVal); 21059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } else if (key.endsWith("(string)")) { 21159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putString(key.substring(0, key.length() - 8), val); 21259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } else if (key.endsWith("(bool)")) { 21359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta boolean bVal = Boolean.parseBoolean(val); 21459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putBoolean(key.substring(0, key.length() - 6), bVal); 21559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } else { 21659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta throw new IOException("Cannot parse key: " + key); 21759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 21859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 21959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 22059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 22159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 22259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Saves all settings to the given properties output stream. 22359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 22459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param out The OutputStream to write to 22559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @throws IOException If an IOException occurs 22659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 22759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #load(java.io.InputStream) 22859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 22959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void save(OutputStream out) throws IOException { 23059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Properties props = new Properties(); 23159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta for (Map.Entry<String, Object> entry : entrySet()) { 23259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Object val = entry.getValue(); 23359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta String type; 23459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (val instanceof Integer) { 23559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta type = "(int)"; 23659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } else if (val instanceof String) { 23759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta type = "(string)"; 23859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } else if (val instanceof Boolean) { 23959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta type = "(bool)"; 24059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } else { 24159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta throw new UnsupportedEncodingException(); 24259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 24359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta props.setProperty(entry.getKey() + type, val.toString()); 24459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 24559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta props.store(out, "jME3 AppSettings"); 24659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 24759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 24859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 24959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Loads settings previously saved in the Java preferences. 25059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 25159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param preferencesKey The preferencesKey previously used to save the settings. 25259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @throws BackingStoreException If an exception occurs with the preferences 25359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 25459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #save(java.lang.String) 25559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 25659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void load(String preferencesKey) throws BackingStoreException { 25759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Preferences prefs = Preferences.userRoot().node(preferencesKey); 25859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta String[] keys = prefs.keys(); 25959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (keys != null) { 26059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta for (String key : keys) { 26159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Object defaultValue = defaults.get(key); 26259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (defaultValue instanceof Integer) { 26359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta put(key, prefs.getInt(key, (Integer) defaultValue)); 26459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } else if (defaultValue instanceof String) { 26559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta put(key, prefs.get(key, (String) defaultValue)); 26659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } else if (defaultValue instanceof Boolean) { 26759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta put(key, prefs.getBoolean(key, (Boolean) defaultValue)); 26859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 26959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 27059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 27159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 27259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 27359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 27459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Saves settings into the Java preferences. 27559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 27659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * On the Windows operating system, the preferences are saved in the registry 27759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * at the following key:<br> 27859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <code>HKEY_CURRENT_USER\Software\JavaSoft\Prefs\[preferencesKey]</code> 27959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 28059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param preferencesKey The preferences key to save at. Generally the 28159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * application's unique name. 28259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 28359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @throws BackingStoreException If an exception occurs with the preferences 28459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 28559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void save(String preferencesKey) throws BackingStoreException { 28659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Preferences prefs = Preferences.userRoot().node(preferencesKey); 28759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta for (String key : keySet()) { 28859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta prefs.put(key, get(key).toString()); 28959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 29059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 29159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 29259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 29359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get an integer from the settings. 29459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 29559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * If the key is not set, then 0 is returned. 29659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 29759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public int getInteger(String key) { 29859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Integer i = (Integer) get(key); 29959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (i == null) { 30059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return 0; 30159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 30259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 30359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return i.intValue(); 30459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 30559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 30659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 30759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get a boolean from the settings. 30859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 30959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * If the key is not set, then false is returned. 31059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 31159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public boolean getBoolean(String key) { 31259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta Boolean b = (Boolean) get(key); 31359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (b == null) { 31459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return false; 31559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 31659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 31759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return b.booleanValue(); 31859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 31959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 32059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 32159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get a string from the settings. 32259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 32359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * If the key is not set, then null is returned. 32459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 32559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public String getString(String key) { 32659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta String s = (String) get(key); 32759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta if (s == null) { 32859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return null; 32959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 33059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 33159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return s; 33259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 33359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 33459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 33559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set an integer on the settings. 33659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 33759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void putInteger(String key, int value) { 33859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta put(key, Integer.valueOf(value)); 33959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 34059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 34159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 34259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set a boolean on the settings. 34359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 34459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void putBoolean(String key, boolean value) { 34559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta put(key, Boolean.valueOf(value)); 34659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 34759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 34859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 34959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set a string on the settings. 35059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 35159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void putString(String key, String value) { 35259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta put(key, value); 35359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 35459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 35559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 35659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param frameRate The frame-rate is the upper limit on how high 35759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * the application's frames-per-second can go. 35859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: -1 no frame rate limit imposed) 35959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 36059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setFrameRate(int frameRate) { 36159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putInteger("FrameRate", frameRate); 36259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 36359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 36459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 36559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param use If true, the application will initialize and use input. 36659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set to false for headless applications that do not require keyboard 36759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * or mouse input. 36859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: true) 36959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 37059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setUseInput(boolean use) { 37159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putBoolean("UseInput", use); 37259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 37359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 37459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 37559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param use If true, the application will initialize and use joystick 37659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * input. Set to false if no joystick input is desired. 37759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: false) 37859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 37959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setUseJoysticks(boolean use) { 38059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putBoolean("DisableJoysticks", !use); 38159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 38259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 38359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 38459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set the graphics renderer to use, one of:<br> 38559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <ul> 38659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <li>AppSettings.LWJGL_OPENGL1 - Force OpenGL1.1 compatability</li> 38759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <li>AppSettings.LWJGL_OPENGL2 - Force OpenGL2 compatability</li> 38859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <li>AppSettings.LWJGL_OPENGL3 - Force OpenGL3.3 compatability</li> 38959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <li>AppSettings.LWJGL_OPENGL_ANY - Choose an appropriate 39059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * OpenGL version based on system capabilities</li> 39159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <li>null - Disable graphics rendering</li> 39259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * </ul> 39359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param renderer The renderer to set 39459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: AppSettings.LWJGL_OPENGL2) 39559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 39659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setRenderer(String renderer) { 39759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putString("Renderer", renderer); 39859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 39959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 40059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 40159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set a custom graphics renderer to use. The class should implement 40259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * the {@link JmeContext} interface. 40359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param clazz The custom context class. 40459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: not set) 40559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 40659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setCustomRenderer(Class<? extends JmeContext> clazz){ 40759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta put("Renderer", "CUSTOM" + clazz.getName()); 40859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 40959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 41059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 41159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set the audio renderer to use. One of:<br> 41259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <ul> 41359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <li>AppSettings.LWJGL_OPENAL - Default for LWJGL</li> 41459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <li>null - Disable audio</li> 41559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * </ul> 41659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param audioRenderer 41759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: LWJGL) 41859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 41959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setAudioRenderer(String audioRenderer) { 42059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putString("AudioRenderer", audioRenderer); 42159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 42259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 42359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 42459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value the width for the rendering display. 42559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: 640) 42659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 42759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setWidth(int value) { 42859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putInteger("Width", value); 42959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 43059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 43159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 43259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value the height for the rendering display. 43359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: 480) 43459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 43559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setHeight(int value) { 43659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putInteger("Height", value); 43759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 43859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 43959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 44059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set the resolution for the rendering display 44159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param width The width 44259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param height The height 44359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: 640x480) 44459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 44559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setResolution(int width, int height) { 44659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta setWidth(width); 44759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta setHeight(height); 44859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 44959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 45059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 45159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set the frequency, also known as refresh rate, for the 45259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * rendering display. 45359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value The frequency 45459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: 60) 45559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 45659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setFrequency(int value) { 45759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putInteger("Frequency", value); 45859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 45959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 46059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 46159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Sets the number of depth bits to use. 46259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 46359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * The number of depth bits specifies the precision of the depth buffer. 46459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * To increase precision, specify 32 bits. To decrease precision, specify 46559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 16 bits. On some platforms 24 bits might not be supported, in that case, 46659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * specify 16 bits.<p> 46759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: 24) 46859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 46959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value The depth bits 47059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 47159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setDepthBits(int value){ 47259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putInteger("DepthBits", value); 47359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 47459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 47559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 47659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set the number of stencil bits. 47759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 47859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * This value is only relevant when the stencil buffer is being used. 47959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Specify 8 to indicate an 8-bit stencil buffer, specify 0 to disable 48059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * the stencil buffer. 48159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * </p> 48259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: 0) 48359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 48459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value Number of stencil bits 48559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 48659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setStencilBits(int value){ 48759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putInteger("StencilBits", value); 48859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 48959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 49059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 49159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set the bits per pixel for the display. Appropriate 49259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * values are 16 for RGB565 color format, or 24 for RGB8 color format. 49359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 49459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value The bits per pixel to set 49559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: 24) 49659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 49759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setBitsPerPixel(int value) { 49859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putInteger("BitsPerPixel", value); 49959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 50059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 50159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 50259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set the number of samples per pixel. A value of 1 indicates 50359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * each pixel should be single-sampled, higher values indicate 50459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * a pixel should be multi-sampled. 50559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 50659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value The number of samples 50759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: 1) 50859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 50959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setSamples(int value) { 51059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putInteger("Samples", value); 51159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 51259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 51359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 51459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param title The title of the rendering display 51559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: jMonkeyEngine 3.0) 51659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 51759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setTitle(String title) { 51859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putString("Title", title); 51959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 52059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 52159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 52259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value true to enable full-screen rendering, false to render in a window 52359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: false) 52459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 52559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setFullscreen(boolean value) { 52659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putBoolean("Fullscreen", value); 52759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 52859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 52959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 53059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Set to true to enable vertical-synchronization, limiting and synchronizing 53159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * every frame rendered to the monitor's refresh rate. 53259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value 53359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: false) 53459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 53559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setVSync(boolean value) { 53659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putBoolean("VSync", value); 53759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 53859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 53959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 54059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Enable 3D stereo. 54159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p>This feature requires hardware support from the GPU driver. 54259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see <a href="http://en.wikipedia.org/wiki/Quad_buffering">http://en.wikipedia.org/wiki/Quad_buffering</a><br /> 54359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Once enabled, filters or scene processors that handle 3D stereo rendering 54459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * could use this feature to render using hardware 3D stereo.</p> 54559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: false) 54659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 54759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setStereo3D(boolean value){ 54859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putBoolean("Stereo3D", value); 54959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 55059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 55159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 55259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Sets the application icons to be used, with the most preferred first. 55359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * For Windows you should supply at least one 16x16 icon and one 32x32. The former is used for the title/task bar, 55459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * the latter for the alt-tab icon. 55559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Linux (and similar platforms) expect one 32x32 icon. 55659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Mac OS X should be supplied one 128x128 icon. 55759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <br/> 55859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * The icon is used for the settings window, and the LWJGL render window. Not currently supported for JOGL. 55959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Note that a bug in Java 6 (bug ID 6445278, currently hidden but available in Google cache) currently prevents 56059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * the icon working for alt-tab on the settings dialog in Windows. 56159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 56259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param value An array of BufferedImages to use as icons. 56359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: not set) 56459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 56559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setIcons(Object[] value) { 56659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta put("Icons", value); 56759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 56859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 56959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 57059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Sets the path of the settings dialog image to use. 57159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * <p> 57259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * The image will be displayed in the settings dialog when the 57359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * application is started. 57459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * </p> 57559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * (Default: /com/jme3/app/Monkey.png) 57659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * 57759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @param path The path to the image in the classpath. 57859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 57959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public void setSettingsDialogImage(String path) { 58059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta putString("SettingsDialogImage", path); 58159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 58259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 58359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 58459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the framerate. 58559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setFrameRate(int) 58659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 58759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public int getFrameRate() { 58859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getInteger("FrameRate"); 58959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 59059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 59159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 59259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the use input state. 59359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setUseInput(boolean) 59459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 59559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public boolean useInput() { 59659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getBoolean("UseInput"); 59759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 59859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 59959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 60059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the renderer 60159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setRenderer(java.lang.String) 60259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 60359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public String getRenderer() { 60459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getString("Renderer"); 60559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 60659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 60759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 60859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the width 60959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setWidth(int) 61059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 61159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public int getWidth() { 61259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getInteger("Width"); 61359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 61459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 61559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 61659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the height 61759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setHeight(int) 61859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 61959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public int getHeight() { 62059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getInteger("Height"); 62159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 62259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 62359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 62459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the bits per pixel 62559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setBitsPerPixel(int) 62659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 62759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public int getBitsPerPixel() { 62859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getInteger("BitsPerPixel"); 62959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 63059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 63159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 63259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the frequency 63359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setFrequency(int) 63459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 63559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public int getFrequency() { 63659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getInteger("Frequency"); 63759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 63859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 63959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 64059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the number of depth bits 64159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setDepthBits(int) 64259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 64359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public int getDepthBits() { 64459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getInteger("DepthBits"); 64559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 64659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 64759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 64859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the number of stencil bits 64959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setStencilBits(int) 65059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 65159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public int getStencilBits() { 65259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getInteger("StencilBits"); 65359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 65459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 65559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 65659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the number of samples 65759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setSamples(int) 65859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 65959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public int getSamples() { 66059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getInteger("Samples"); 66159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 66259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 66359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 66459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the application title 66559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setTitle(java.lang.String) 66659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 66759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public String getTitle() { 66859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getString("Title"); 66959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 67059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 67159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 67259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the vsync state 67359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setVSync(boolean) 67459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 67559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public boolean isVSync() { 67659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getBoolean("VSync"); 67759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 67859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 67959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 68059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the fullscreen state 68159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setFullscreen(boolean) 68259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 68359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public boolean isFullscreen() { 68459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getBoolean("Fullscreen"); 68559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 68659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 68759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 68859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the use joysticks state 68959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setUseJoysticks(boolean) 69059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 69159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public boolean useJoysticks() { 69259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return !getBoolean("DisableJoysticks"); 69359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 69459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 69559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 69659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the audio renderer 69759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setAudioRenderer(java.lang.String) 69859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 69959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public String getAudioRenderer() { 70059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getString("AudioRenderer"); 70159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 70259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 70359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 70459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the stereo 3D state 70559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setStereo3D(boolean) 70659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 70759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public boolean useStereo3D(){ 70859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getBoolean("Stereo3D"); 70959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 71059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 71159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 71259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the icon array 71359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setIcons(java.lang.Object[]) 71459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 71559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public Object[] getIcons() { 71659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return (Object[]) get("Icons"); 71759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 71859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta 71959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta /** 72059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * Get the settings dialog image 72159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta * @see #setSettingsDialogImage(java.lang.String) 72259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta */ 72359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta public String getSettingsDialogImage() { 72459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta return getString("SettingsDialogImage"); 72559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta } 72659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta} 727