All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sim.display.Prefs Maven / Gradle / Ivy

Go to download

MASON is a fast discrete-event multiagent simulation library core in Java, designed to be the foundation for large custom-purpose Java simulations, and also to provide more than enough functionality for many lightweight simulation needs. MASON contains both a model library and an optional suite of visualization tools in 2D and 3D.

The newest version!
/*
  Copyright 2006 by Sean Luke and George Mason University
  Licensed under the Academic Free License version 3.0
  See the file "LICENSE" for more information
*/

package sim.display;

import java.util.prefs.*;

/** A simple cover class for Java's preferences system.  MASON has both global and application-specific
    preferences.  Each Preferences object is associated with a unique namespace hung under the global
    Preferences or under an application-specific preferences.  You are responsible for defining 
    the namespace for your particular object.  Typically it's a single unique word like "Display2D"
    or "Bugaboo".  Do not include periods, whitespace, or begin or end with a slash.
        
    

Once you have retrieved the Preferences object and modified it, you must save it before MASON is terminated.

How this works with Java's Preferences: All preferences start with a certain path and then add a namespace onto it. Global preferences have a path which starts with "edu/gmu/mason/global/" -- Display2D's namespace is "Display2D", so for example, Display2D's global preferences are "edu/gmu/mason/global/Display2D". App-specific preferences also have unique paths. For example, HeatBugs's preferences path is "edu/gmu/mason/app/sim/app/heatbugs/", so Display2D's app preferences, when used with Heatbugs, is "edu/gmu/mason/app/sim/app/heatbugs/Display2D". You don't need to be concerned with this if you just want to retrieve and/or delete preferences objects. */ public class Prefs { public static final String MASON_PREFERENCES = "edu/gmu/mason/global/"; public static final String APP_PREFERENCES = "edu/gmu/mason/app/"; /** Returns the global preferences for MASON, with the given additional prefix as a namespace. */ public static Preferences getGlobalPreferences(String namespace) { return Preferences.userRoot().node(MASON_PREFERENCES + namespace); } /** Returns app-specific preferences for MASON, with the given additional prefix as a namespace. */ public static Preferences getAppPreferences(GUIState simulation, String namespace) { return Preferences.userRoot().node( APP_PREFERENCES + simulation.getClass().getName().replace('.','/') + "/" + namespace); } /** Deletes certain global preferences for MASON, with the given additional prefix as a namespace. */ public static boolean removeGlobalPreferences(String namespace) { try { getGlobalPreferences(namespace).removeNode(); return true; } catch (BackingStoreException e) { return false; } } /** Deletes certain app-specific preferences for MASON, with the given additional prefix as a namespace. */ public static boolean removeAppPreferences(GUIState simulation, String namespace) { try { getAppPreferences(simulation, namespace).removeNode(); return true; } catch (BackingStoreException e) { return false; } } /** Saves a given Preferences. */ public static boolean save(Preferences prefs) { try { prefs.flush(); return true; } catch (BackingStoreException ex) { return false; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy