diff --git a/prism/src/prism/Prism.java b/prism/src/prism/Prism.java index 3bb48e0c..9bdc1ca7 100644 --- a/prism/src/prism/Prism.java +++ b/prism/src/prism/Prism.java @@ -39,7 +39,7 @@ import simulator.*; // prism class - main class for model checker // (independent of user interface (command line or gui)) -public class Prism +public class Prism implements PrismSettingsListener { // prism version private static final String version = "3.0"; @@ -143,6 +143,23 @@ public class Prism // set up some default options settings = new PrismSettings(); + // load user's default settings + try { + settings.loadSettingsFile(); + } + catch(PrismException e) { + // if there were no user defaults to load, create them + try + { + settings.saveSettingsFile(); + } + catch(PrismException ex) + { + System.err.println("Warning: Failed to create new PRISM settings file."); + } + } + // add this Prism object as a listener + settings.addSettingsListener(this); // default values for miscellaneous options doReach = true; @@ -235,20 +252,11 @@ public class Prism public void setCUDDMaxMem(int i) throws PrismException { settings.set(PrismSettings.PRISM_CUDD_MAX_MEM, i); - if (cuddStarted) - { - JDD.SetCUDDMaxMem(settings.getInteger(PrismSettings.PRISM_CUDD_MAX_MEM)); - } } public void setCUDDEpsilon(double d) throws PrismException { settings.set(PrismSettings.PRISM_CUDD_EPSILON, d); - - if (cuddStarted) - { - JDD.SetCUDDEpsilon(settings.getDouble(PrismSettings.PRISM_CUDD_EPSILON)); - } } public void setNumSBLevels(int i) throws PrismException @@ -431,6 +439,17 @@ public class Prism return theSimulator; } + // Let PrismSettings object notify us things have changed + + public void notifySettings(PrismSettings settings) + { + if (cuddStarted) + { + JDD.SetCUDDEpsilon(settings.getDouble(PrismSettings.PRISM_CUDD_EPSILON)); + JDD.SetCUDDMaxMem(settings.getInteger(PrismSettings.PRISM_CUDD_MAX_MEM)); + } + } + // initialise public void initialise() throws PrismException diff --git a/prism/src/userinterface/GUIPrism.java b/prism/src/userinterface/GUIPrism.java index 40518860..24be46f2 100644 --- a/prism/src/userinterface/GUIPrism.java +++ b/prism/src/userinterface/GUIPrism.java @@ -80,7 +80,6 @@ public class GUIPrism extends JFrame splash.display(); //new GUIPrismSplash().show(); gui = new GUIPrism(); - gui.importOptions(); gui.show(); EventQueue.invokeLater(new GUIPrism.SplashScreenCloser()); gui.passCLArgs(args); @@ -153,28 +152,6 @@ public class GUIPrism extends JFrame } - public void importOptions() - { - //options.readFromConfigFile(); - //options.readFromPropertiesFile(); - try - { - prism.getSettings().loadSettingsFile(); - } - catch(PrismException e) - { - try - { - prism.getSettings().saveSettingsFile(); - setTaskBarText("No PRISM settings file found. A new file was created using default values."); - } - catch(PrismException ex) - { - setTaskBarText("Warning: Failed to create new PRISM settings file."); - } - } - } - /** * Sets the URL for images properly, so that they are loaded from the * correct directory. This also loads in all of the resouces for