{CHOICE_TYPE,PRISM_LIN_EQ_METHOD,"iterative method","Jacobi","Power,Jacobi,Gauss-Seidel,Backwards Gauss-Seidel,Pseudo-Gauss-Seidel,Backwards Pseudo-Gauss-Seidel,JOR,SOR,Backwards SOR,Pseudo-SOR,Backwards Pseudo-SOR","Iterative method for linear equation system solution"},
{INTEGER_TYPE,PRISM_MAX_ITERS,"termination max iterations",newInteger(10000),"0,","Maximum iterations (iterative methods)"},
{INTEGER_TYPE,PRISM_CUDD_MAX_MEM,"cudd max memory (KB)",newInteger(204800),"0,","CUDD max memory (KB)"},
{DOUBLE_TYPE,PRISM_CUDD_EPSILON,"cudd epsilon",newDouble(1.0E-15),"0.0,","CUDD epsilon for terminal cache comparisions"},
{INTEGER_TYPE,PRISM_NUM_SB_LEVELS,"hybrid num. levels",newInteger(-1),"-1,","Number of MTBDD levels ascended when adding sparse matrices to hybrid engine data structures (-1 means use default)"},
{INTEGER_TYPE,PRISM_SB_MAX_MEM,"hybrid max memory",newInteger(1024),"0,","Maximum memory usage when adding sparse matrices to hybrid engine data structures"},
{INTEGER_TYPE,PRISM_NUM_SOR_LEVELS,"hybrid num. levels (GS/SOR)",newInteger(-1),"-1,","Number of MTBDD levels descended for hybrid engine data structures block division (GS/SOR)"},
{INTEGER_TYPE,PRISM_SOR_MAX_MEM,"hybrid max memory (GS/SOR)",newInteger(1024),"0,","Maximum memory usage for hybrid engine data structures block division (GS/SOR)"},
{BOOLEAN_TYPE,PRISM_DO_SS_DETECTION,"use steady-state detection?",newBoolean(true),"0,","Use steady-state detection for CTMC transient properties?"}
{CHOICE_TYPE,PRISM_LIN_EQ_METHOD,"iterative method","3.0","Jacobi","Power,Jacobi,Gauss-Seidel,Backwards Gauss-Seidel,Pseudo-Gauss-Seidel,Backwards Pseudo-Gauss-Seidel,JOR,SOR,Backwards SOR,Pseudo-SOR,Backwards Pseudo-SOR","Iterative method for linear equation system solution"},
{INTEGER_TYPE,PRISM_MAX_ITERS,"termination max iterations","3.0",newInteger(10000),"0,","Maximum iterations (iterative methods)"},
{INTEGER_TYPE,PRISM_CUDD_MAX_MEM,"cudd max memory (KB)","3.0",newInteger(204800),"0,","CUDD max memory (KB)"},
{DOUBLE_TYPE,PRISM_CUDD_EPSILON,"cudd epsilon","3.0",newDouble(1.0E-15),"0.0,","CUDD epsilon for terminal cache comparisions"},
{INTEGER_TYPE,PRISM_NUM_SB_LEVELS,"hybrid num. levels","3.0",newInteger(-1),"-1,","Number of MTBDD levels ascended when adding sparse matrices to hybrid engine data structures (-1 means use default)"},
{INTEGER_TYPE,PRISM_SB_MAX_MEM,"hybrid max memory","3.0",newInteger(1024),"0,","Maximum memory usage when adding sparse matrices to hybrid engine data structures"},
{INTEGER_TYPE,PRISM_NUM_SOR_LEVELS,"hybrid num. levels (GS/SOR)","3.0",newInteger(-1),"-1,","Number of MTBDD levels descended for hybrid engine data structures block division (GS/SOR)"},
{INTEGER_TYPE,PRISM_SOR_MAX_MEM,"hybrid max memory (GS/SOR)","3.0",newInteger(1024),"0,","Maximum memory usage for hybrid engine data structures block division (GS/SOR)"},
{BOOLEAN_TYPE,PRISM_DO_SS_DETECTION,"use steady-state detection?","3.0",newBoolean(true),"0,","Use steady-state detection for CTMC transient properties?"}
},
{
{BOOLEAN_TYPE,MODEL_AUTO_PARSE,"auto parse?",newBoolean(true),"","When set to true, prism models are parsed automatically as they are entered into the text editor."},
{BOOLEAN_TYPE,MODEL_AUTO_MANUAL,"manual parse for large model?",newBoolean(true),"","When set to true, the loading of large PRISM models turns off automatic parsing."},
{INTEGER_TYPE,MODEL_PARSE_DELAY,"parse delay (ms)",newInteger(1000),"0,","After typing has finished, the time delay before an automatic re-parse of the model is performed."},
{FONT_COLOUR_TYPE,MODEL_PRISM_EDITOR_FONT,"prism editor font",newFontColorPair(newFont("monospaced",Font.PLAIN,12),Color.black),"","The base font (without highlighting) for the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_BG_COLOUR,"prism editor background",newColor(255,255,255),"","The colour of the background of the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_NUMERIC_COLOUR,"prism editor numeric colour",newColor(0,0,255),"","The colour to highlight numeric characters of the text editor when editing PRISM models."},
{CHOICE_TYPE,MODEL_PRISM_EDITOR_NUMERIC_STYLE,"prism editor numeric style","Plain","Plain,Italic,Bold,Bold Italic","The style to highlight numeric characters of the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_IDENTIFIER_COLOUR,"prism editor identifier colour",newColor(255,0,0),"","The colour to highlight the characters of identifiers in the text editor when editing PRISM models."},
{CHOICE_TYPE,MODEL_PRISM_EDITOR_IDENTIFIER_STYLE,"prism editor identifier style","Plain","Plain,Italic,Bold,Bold Italic","The style to highlight the characters of identifiers in the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_KEYWORD_COLOUR,"prism editor keyword colour",newColor(0,0,0),"","The colour to highlight the characters of keywords in the text editor when editing PRISM models."},
{CHOICE_TYPE,MODEL_PRISM_EDITOR_KEYWORD_STYLE,"prism editor keyword style","Bold","Plain,Italic,Bold,Bold Italic","The style to highlight the characters of keywords in the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_COMMENT_COLOUR,"prism editor comment colour",newColor(0,99,0),"","The colour to highlight the characters of comments in the text editor when editing PRISM models."},
{CHOICE_TYPE,MODEL_PRISM_EDITOR_COMMENT_STYLE,"prism editor comment style","Italic","Plain,Italic,Bold,Bold Italic","The style to highlight the characters of comments in the text editor when editing PRISM models."},
{FONT_COLOUR_TYPE,MODEL_PEPA_EDITOR_FONT,"pepa editor font",newFontColorPair(newFont("monospaced",Font.PLAIN,12),Color.black),"","The base font (without highlighting) for the text editor when editing PEPA models."},
{COLOUR_TYPE,MODEL_PEPA_EDITOR_BG_COLOUR,"pepa editor background",newColor(255,250,240),"","The colour of the background of the text editor when editing PEPA models."},
{COLOUR_TYPE,MODEL_PEPA_EDITOR_COMMENT_COLOUR,"pepa editor comment colour",newColor(0,99,0),"","The colour to highlight the characters of comments in the text editor when editing PEPA models."},
{CHOICE_TYPE,MODEL_PEPA_EDITOR_COMMENT_STYLE,"pepa editor comment style","Italic","Plain,Italic,Bold,Bold Italic","The style to highlight the characters of comments in the text editor when editing PEPA models."}
{BOOLEAN_TYPE,MODEL_AUTO_PARSE,"auto parse?","3.0",newBoolean(true),"","When set to true, prism models are parsed automatically as they are entered into the text editor."},
{BOOLEAN_TYPE,MODEL_AUTO_MANUAL,"manual parse for large model?","3.0",newBoolean(true),"","When set to true, the loading of large PRISM models turns off automatic parsing."},
{INTEGER_TYPE,MODEL_PARSE_DELAY,"parse delay (ms)","3.0",newInteger(1000),"0,","After typing has finished, the time delay before an automatic re-parse of the model is performed."},
{FONT_COLOUR_TYPE,MODEL_PRISM_EDITOR_FONT,"prism editor font","3.0",newFontColorPair(newFont("monospaced",Font.PLAIN,12),Color.black),"","The base font (without highlighting) for the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_BG_COLOUR,"prism editor background","3.0",newColor(255,255,255),"","The colour of the background of the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_NUMERIC_COLOUR,"prism editor numeric colour","3.0",newColor(0,0,255),"","The colour to highlight numeric characters of the text editor when editing PRISM models."},
{CHOICE_TYPE,MODEL_PRISM_EDITOR_NUMERIC_STYLE,"prism editor numeric style","3.0","Plain","Plain,Italic,Bold,Bold Italic","The style to highlight numeric characters of the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_IDENTIFIER_COLOUR,"prism editor identifier colour","3.0",newColor(255,0,0),"","The colour to highlight the characters of identifiers in the text editor when editing PRISM models."},
{CHOICE_TYPE,MODEL_PRISM_EDITOR_IDENTIFIER_STYLE,"prism editor identifier style","3.0","Plain","Plain,Italic,Bold,Bold Italic","The style to highlight the characters of identifiers in the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_KEYWORD_COLOUR,"prism editor keyword colour","3.0",newColor(0,0,0),"","The colour to highlight the characters of keywords in the text editor when editing PRISM models."},
{CHOICE_TYPE,MODEL_PRISM_EDITOR_KEYWORD_STYLE,"prism editor keyword style","3.0","Bold","Plain,Italic,Bold,Bold Italic","The style to highlight the characters of keywords in the text editor when editing PRISM models."},
{COLOUR_TYPE,MODEL_PRISM_EDITOR_COMMENT_COLOUR,"prism editor comment colour","3.0",newColor(0,99,0),"","The colour to highlight the characters of comments in the text editor when editing PRISM models."},
{CHOICE_TYPE,MODEL_PRISM_EDITOR_COMMENT_STYLE,"prism editor comment style","3.0","Italic","Plain,Italic,Bold,Bold Italic","The style to highlight the characters of comments in the text editor when editing PRISM models."},
{FONT_COLOUR_TYPE,MODEL_PEPA_EDITOR_FONT,"pepa editor font","3.0",newFontColorPair(newFont("monospaced",Font.PLAIN,12),Color.black),"","The base font (without highlighting) for the text editor when editing PEPA models."},
{COLOUR_TYPE,MODEL_PEPA_EDITOR_BG_COLOUR,"pepa editor background","3.0",newColor(255,250,240),"","The colour of the background of the text editor when editing PEPA models."},
{COLOUR_TYPE,MODEL_PEPA_EDITOR_COMMENT_COLOUR,"pepa editor comment colour","3.0",newColor(0,99,0),"","The colour to highlight the characters of comments in the text editor when editing PEPA models."},
{CHOICE_TYPE,MODEL_PEPA_EDITOR_COMMENT_STYLE,"pepa editor comment style","3.0","Italic","Plain,Italic,Bold,Bold Italic","The style to highlight the characters of comments in the text editor when editing PEPA models."}
},
{
{FONT_COLOUR_TYPE,PROPERTIES_FONT,"display font",newFontColorPair(newFont("monospaced",Font.PLAIN,12),Color.black),"","The font for the properties list."},
{COLOUR_TYPE,PROPERTIES_WARNING_COLOUR,"warning colour",newColor(255,130,130),"","The colour to highlight a property when there is an error / problem."},
{CHOICE_TYPE,PROPERTIES_ADDITION_STRATEGY,"property addition strategy","Warn when invalid","Warn when invalid,Do not allow invalid","How to deal with properties that are invalid."},
{BOOLEAN_TYPE,PROPERTIES_CLEAR_LIST_ON_LOAD,"clear list when load model?",newBoolean(true),"","When set to true, the properties list is cleared whenever a new model is loaded."}
{FONT_COLOUR_TYPE,PROPERTIES_FONT,"display font","3.0",newFontColorPair(newFont("monospaced",Font.PLAIN,12),Color.black),"","The font for the properties list."},
{COLOUR_TYPE,PROPERTIES_WARNING_COLOUR,"warning colour","3.0",newColor(255,130,130),"","The colour to highlight a property when there is an error / problem."},
{CHOICE_TYPE,PROPERTIES_ADDITION_STRATEGY,"property addition strategy","3.0","Warn when invalid","Warn when invalid,Do not allow invalid","How to deal with properties that are invalid."},
{BOOLEAN_TYPE,PROPERTIES_CLEAR_LIST_ON_LOAD,"clear list when load model?","3.0",newBoolean(true),"","When set to true, the properties list is cleared whenever a new model is loaded."}
},
{
{CHOICE_TYPE,SIMULATOR_ENGINE,"simulator engine","PRISM simulator","PRISM simulator,APMC","The simulator engine for use in approximate model checking. The PRISM simulator supports DTMCs and CTMCs. APMC supports DTMCs and only runs on UNIX platforms."},
{DOUBLE_TYPE,SIMULATOR_DEFAULT_APPROX,"default approximation parameter",newDouble(1.0E-2),"0,1","The default approximation parameter for approximate model checking using the PRISM simulator or APMC."},
{DOUBLE_TYPE,SIMULATOR_DEFAULT_CONFIDENCE,"default confidence parameter",newDouble(1.0E-10),"0,1","The default confidence parameter for approximate model checking using the PRISM simulator or APMC."},
{INTEGER_TYPE,SIMULATOR_DEFAULT_NUM_SAMPLES,"default num. samples",newInteger(402412),"1,","The default number of samples for approximate model checking using the PRISM simulator or APMC."},
{INTEGER_TYPE,SIMULATOR_DEFAULT_MAX_PATH,"default max. path length",newInteger(10000),"1,","The default maximum path length for approximate model checking using the PRISM simulator or APMC."},
{BOOLEAN_TYPE,SIMULATOR_SIMULTANEOUS,"check properties simultaneously?",newBoolean(true),"","When set to true, all relevant properties are checked over the same execution paths, meaning only one set of sample paths need be generated. This feature is only supported by the PRISM simulator."},
{CHOICE_TYPE,SIMULATOR_FIELD_CHOICE,"values used in dialog","Last used values","Last used values,Always use defaults","This setting allows the choice between whether the values used in the simulation dialog are taken from the defaults every time, or from the last used values."},
{BOOLEAN_TYPE,SIMULATOR_NEW_PATH_ASK_INITIAL,"ask for initial state?",newBoolean(true),"","When set to true, creating a new path in the simulator user interface prompts for an initial state rather than using default values for the model."},
{CHOICE_TYPE,SIMULATOR_RENDER_ALL_VALUES,"path render style","Render changes","Render changes,Render all values","How the execution path in the simulator user interface should display the different states. The \'render changes\' option displays a value only if it has changed."},
{INTEGER_TYPE,SIMULATOR_APMC_STRATEGY,"apmc strategy",newInteger(0),"","The strategy used by APMC"},
{FILE_TYPE,SIMULATOR_NETWORK_FILE,"network profile",newFile(""),"","This file is used to specify the network profile which should be used by the distributed PRISM simulator."}
{CHOICE_TYPE,SIMULATOR_ENGINE,"simulator engine","3.0","PRISM simulator","PRISM simulator,APMC","The simulator engine for use in approximate model checking. The PRISM simulator supports DTMCs and CTMCs. APMC supports DTMCs and only runs on UNIX platforms."},
{DOUBLE_TYPE,SIMULATOR_DEFAULT_APPROX,"default approximation parameter","3.0",newDouble(1.0E-2),"0,1","The default approximation parameter for approximate model checking using the PRISM simulator or APMC."},
{DOUBLE_TYPE,SIMULATOR_DEFAULT_CONFIDENCE,"default confidence parameter","3.0",newDouble(1.0E-10),"0,1","The default confidence parameter for approximate model checking using the PRISM simulator or APMC."},
{INTEGER_TYPE,SIMULATOR_DEFAULT_NUM_SAMPLES,"default num. samples","3.0",newInteger(402412),"1,","The default number of samples for approximate model checking using the PRISM simulator or APMC."},
{INTEGER_TYPE,SIMULATOR_DEFAULT_MAX_PATH,"default max. path length","3.0",newInteger(10000),"1,","The default maximum path length for approximate model checking using the PRISM simulator or APMC."},
{BOOLEAN_TYPE,SIMULATOR_SIMULTANEOUS,"check properties simultaneously?","3.0",newBoolean(true),"","When set to true, all relevant properties are checked over the same execution paths, meaning only one set of sample paths need be generated. This feature is only supported by the PRISM simulator."},
{CHOICE_TYPE,SIMULATOR_FIELD_CHOICE,"values used in dialog","3.0","Last used values","Last used values,Always use defaults","This setting allows the choice between whether the values used in the simulation dialog are taken from the defaults every time, or from the last used values."},
{BOOLEAN_TYPE,SIMULATOR_NEW_PATH_ASK_INITIAL,"ask for initial state?","3.0",newBoolean(true),"","When set to true, creating a new path in the simulator user interface prompts for an initial state rather than using default values for the model."},
{CHOICE_TYPE,SIMULATOR_RENDER_ALL_VALUES,"path render style","3.0","Render changes","Render changes,Render all values","How the execution path in the simulator user interface should display the different states. The \'render changes\' option displays a value only if it has changed."},
{INTEGER_TYPE,SIMULATOR_APMC_STRATEGY,"apmc strategy","3.0",newInteger(0),"","The strategy used by APMC"},
{FILE_TYPE,SIMULATOR_NETWORK_FILE,"network profile","3.0",newFile(""),"","This file is used to specify the network profile which should be used by the distributed PRISM simulator."}
},
{
{FONT_COLOUR_TYPE,LOG_FONT,"display font",newFontColorPair(newFont("monospaced",Font.PLAIN,12),Color.black),"","The font for the log display."},
{COLOUR_TYPE,LOG_BG_COLOUR,"background colour",newColor(255,255,255),"","The colour of the background of the log display."},
{INTEGER_TYPE,LOG_BUFFER_LENGTH,"buffer length",newInteger(10000),"1,","The length of the buffer for the log display."}
{FONT_COLOUR_TYPE,LOG_FONT,"display font","3.0",newFontColorPair(newFont("monospaced",Font.PLAIN,12),Color.black),"","The font for the log display."},
{COLOUR_TYPE,LOG_BG_COLOUR,"background colour","3.0",newColor(255,255,255),"","The colour of the background of the log display."},
{INTEGER_TYPE,LOG_BUFFER_LENGTH,"buffer length","3.0",newInteger(10000),"1,","The length of the buffer for the log display."}
}
};
@ -251,9 +245,10 @@ public class PrismSettings implements Observer
Object[]setting=propertyData[i][j];
Stringkey=(String)setting[1];
Stringdisplay=(String)setting[2];
Objectvalue=setting[3];
Stringconstraint=(String)setting[4];
Stringcomment=(String)setting[5];
Stringversion=(String)setting[3];
Objectvalue=setting[4];
Stringconstraint=(String)setting[5];
Stringcomment=(String)setting[6];
Settingset;
@ -264,6 +259,7 @@ public class PrismSettings implements Observer