Clover coverage report - DrJava Test Coverage (drjava-20120304-r5456)
Coverage timestamp: Sun Mar 4 2012 03:13:23 CST
file stats: LOC: 648   Methods: 1
NCLOC: 466   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
ConfigDescriptions.java 100% 100% 100% 100%
coverage
 1    /*BEGIN_COPYRIGHT_BLOCK
 2    *
 3    * Copyright (c) 2001-2010, JavaPLT group at Rice University (drjava@rice.edu)
 4    * All rights reserved.
 5    *
 6    * Redistribution and use in source and binary forms, with or without
 7    * modification, are permitted provided that the following conditions are met:
 8    * * Redistributions of source code must retain the above copyright
 9    * notice, this list of conditions and the following disclaimer.
 10    * * Redistributions in binary form must reproduce the above copyright
 11    * notice, this list of conditions and the following disclaimer in the
 12    * documentation and/or other materials provided with the distribution.
 13    * * Neither the names of DrJava, the JavaPLT group, Rice University, nor the
 14    * names of its contributors may be used to endorse or promote products
 15    * derived from this software without specific prior written permission.
 16    *
 17    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 18    * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 19    * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 20    * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 21    * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 22    * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 23    * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 24    * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 25    * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 26    * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 27    * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 28    *
 29    * This software is Open Source Initiative approved Open Source Software.
 30    * Open Source Initative Approved is a trademark of the Open Source Initiative.
 31    *
 32    * This file is part of DrJava. Download the current version of this project
 33    * from http://www.drjava.org/ or http://sourceforge.net/projects/drjava/
 34    *
 35    * END_COPYRIGHT_BLOCK*/
 36   
 37    package edu.rice.cs.drjava.ui.config;
 38   
 39    import java.util.HashMap;
 40    import edu.rice.cs.util.StringOps;
 41    import edu.rice.cs.drjava.config.*;
 42   
 43    /** Descriptions for configuration items.
 44    * @version $Id$
 45    */
 46    public class ConfigDescriptions {
 47    public static final HashMap<OptionParser<?>,String> CONFIG_DESCRIPTIONS = new HashMap<OptionParser<?>,String>();
 48    public static final HashMap<OptionParser<?>,String> CONFIG_LONG_DESCRIPTIONS = new HashMap<OptionParser<?>,String>();
 49    protected static final String SEPS = " \t\n-,;.(";
 50   
 51  876 public static void add(Option<?> o, String s, String l) {
 52  876 CONFIG_DESCRIPTIONS.put(o, s);
 53  876 CONFIG_LONG_DESCRIPTIONS.put(o, l);
 54    }
 55   
 56    static {
 57  6 add(OptionConstants.BROWSER_FILE, "Web Browser",
 58    "<html>Location of a web browser to use for Javadoc and Help links.<br>" +
 59    "If left blank, only the Web Browser Command will be used.<br>" +
 60    "This is not necessary if a default browser is available on your system.");
 61  6 add(OptionConstants.BROWSER_STRING, "Web Browser Command",
 62    "<html>Command to send to the web browser to view a web location.<br>" +
 63    "The string <code>&lt;URL&gt;</code> will be replaced with the URL address.<br>" +
 64    "This is not necessary if a default browser is available on your system.");
 65  6 add(OptionConstants.JAVAC_LOCATION, "Tools.jar Location",
 66    "Optional location of the JDK's tools.jar, which contains the compiler and debugger.");
 67  6 add(OptionConstants.DISPLAY_ALL_COMPILER_VERSIONS, "Display All Compiler Versions",
 68    "Display all compiler versions, even if they have the same major version.");
 69  6 add(OptionConstants.EXTRA_CLASSPATH, "Extra Classpath",
 70    "<html>Any directories or jar files to add to the classpath<br>"+
 71    "of the Compiler and Interactions Pane.</html>");
 72  6 add(OptionConstants.LOOK_AND_FEEL, "Look and Feel",
 73    "Changes the general appearance of DrJava.");
 74  6 add(OptionConstants.PLASTIC_THEMES, "Plastic Theme",
 75    "Pick the theme to be used by the Plastic family of Look and Feels");
 76   
 77    //ToolbarOptionComponent is a degenerate option component
 78    // addOptionComponent(panel, new ToolbarOptionComponent("Toolbar Buttons"
 79    // "How to display the toolbar buttons."));
 80  6 add(OptionConstants.LINEENUM_ENABLED,
 81    "Show All Line Numbers",
 82    "Whether to show line numbers on the left side of the Definitions Pane.");
 83   
 84  6 add(OptionConstants.SHOW_SOURCE_WHEN_SWITCHING,
 85    "Show sample of source code when fast switching",
 86    "Whether to show a sample of the source code under the document's filename when fast switching documents.");
 87  6 add(OptionConstants.SHOW_CODE_PREVIEW_POPUPS,
 88    "Show Code Preview Popups",
 89    "<html>Whether to show a popup window with a code preview when the mouse is hovering<br>"+
 90    "over an item in the Breakpoints, Bookmarks and Find All panes.</html>");
 91   
 92  6 add(OptionConstants.CLIPBOARD_HISTORY_SIZE,
 93    "Size of Clipboard History",
 94    "Determines how many entries are kept in the clipboard history.");
 95   
 96  6 add(OptionConstants.DIALOG_GOTOFILE_FULLY_QUALIFIED,
 97    "<html><p align=\"right\">" +
 98    StringOps.
 99    splitStringAtWordBoundaries("Display Fully-Qualified Class Names in \"Go to File\" Dialog",
 100    40, "<br>", SEPS)+"</p></html>",
 101    "<html>Whether to also display fully-qualified class names in the \"Go to File\" dialog.<br>"+
 102    "Enabling this option on network drives might cause the dialog to display after a slight delay.</html>");
 103   
 104  6 add(OptionConstants.DIALOG_COMPLETE_SCAN_CLASS_FILES,
 105    "<html><p align=\"right\">" +
 106    StringOps.
 107    splitStringAtWordBoundaries("Scan Class Files After Each Compile for Auto-Completion and Auto-Import",
 108    40, "<br>", SEPS)+"</p></html>",
 109    "<html>Whether to scan the class files after a compile to generate class names<br>"+
 110    "used for auto-completion and auto-import.<br>"+
 111    "Enabling this option will slow compiles down.</html>");
 112   
 113  6 add(OptionConstants.DIALOG_COMPLETE_JAVAAPI,
 114    "<html><p align=\"right\">" +
 115    StringOps.
 116    splitStringAtWordBoundaries("Consider Java API Classes for Auto-Completion",
 117    40, "<br>", SEPS)+"</p></html>",
 118    "Whether to use the names of the Java API classes for auto-completion as well.");
 119   
 120  6 add(OptionConstants.DISPLAY_RIGHT_MARGIN, "Display right margin",
 121    "Whether to display a line at the right margin.");
 122   
 123  6 add(OptionConstants.RIGHT_MARGIN_COLUMNS,
 124    "Right Margin Position",
 125    "The number of columns after which the right margin is displayed.");
 126   
 127  6 add(OptionConstants.FONT_MAIN, "Main Font",
 128    "The font used for most text in DrJava.");
 129  6 add(OptionConstants.FONT_LINE_NUMBERS, "Line Numbers Font",
 130    "<html>The font for displaying line numbers on the left side of<br>" +
 131    "the Definitions Pane if Show All Line Numbers is enabled.<br>" +
 132    "Cannot be displayed larger than the Main Font.</html>");
 133  6 add(OptionConstants.FONT_DOCLIST, "Document List Font",
 134    "The font used in the list of open documents.");
 135  6 add(OptionConstants.FONT_TOOLBAR, "Toolbar Font",
 136    "The font used in the toolbar buttons.");
 137  6 add(OptionConstants.TEXT_ANTIALIAS, "Use anti-aliased text",
 138    "Whether to graphically smooth the text.");
 139   
 140  6 add(OptionConstants.DEFINITIONS_NORMAL_COLOR, "Normal Color",
 141    "The default color for text in the Definitions Pane.");
 142  6 add(OptionConstants.DEFINITIONS_KEYWORD_COLOR, "Keyword Color",
 143    "The color for Java keywords in the Definitions Pane.");
 144  6 add(OptionConstants.DEFINITIONS_TYPE_COLOR, "Type Color",
 145    "The color for classes and types in the Definitions Pane.");
 146  6 add(OptionConstants.DEFINITIONS_COMMENT_COLOR, "Comment Color",
 147    "The color for comments in the Definitions Pane.");
 148  6 add(OptionConstants.DEFINITIONS_DOUBLE_QUOTED_COLOR, "Double-quoted Color",
 149    "The color for quoted strings (eg. \"...\") in the Definitions Pane.");
 150  6 add(OptionConstants.DEFINITIONS_SINGLE_QUOTED_COLOR, "Single-quoted Color",
 151    "The color for quoted characters (eg. 'a') in the Definitions Pane.");
 152  6 add(OptionConstants.DEFINITIONS_NUMBER_COLOR, "Number Color",
 153    "The color for numbers in the Definitions Pane.");
 154  6 add(OptionConstants.DEFINITIONS_BACKGROUND_COLOR, "Background Color",
 155    "The background color of the Definitions Pane.");
 156  6 add(OptionConstants.DEFINITIONS_LINE_NUMBER_COLOR, "Line Number Color",
 157    "The color for line numbers in the Definitions Pane.");
 158  6 add(OptionConstants.DEFINITIONS_LINE_NUMBER_BACKGROUND_COLOR, "Line Number Background Color",
 159    "The background color for line numbers in the Definitions Pane.");
 160  6 add(OptionConstants.DEFINITIONS_MATCH_COLOR, "Brace-matching Color",
 161    "The color for matching brace highlights in the Definitions Pane.");
 162  6 add(OptionConstants.COMPILER_ERROR_COLOR, "Compiler Error Color",
 163    "The color for compiler error highlights in the Definitions Pane.");
 164  6 add(OptionConstants.BOOKMARK_COLOR, "Bookmark Color",
 165    "The color for bookmarks in the Definitions Pane.");
 166  6 for (int i = 0; i < OptionConstants.FIND_RESULTS_COLORS.length; ++i) {
 167  48 add(OptionConstants.FIND_RESULTS_COLORS[i], "Find Results Color "+(i+1),
 168    "A color for highlighting find results in the Definitions Pane.");
 169    }
 170  6 add(OptionConstants.DEBUG_BREAKPOINT_COLOR, "Debugger Breakpoint Color",
 171    "The color for breakpoints in the Definitions Pane.");
 172  6 add(OptionConstants.DEBUG_BREAKPOINT_DISABLED_COLOR, "Disabled Debugger Breakpoint Color",
 173    "The color for disabled breakpoints in the Definitions Pane.");
 174  6 add(OptionConstants.DEBUG_THREAD_COLOR, "Debugger Location Color",
 175    "The color for the location of the current suspended thread in the Definitions Pane.");
 176  6 add(OptionConstants.SYSTEM_OUT_COLOR, "System.out Color",
 177    "The color for System.out in the Interactions and Console Panes.");
 178  6 add(OptionConstants.SYSTEM_ERR_COLOR, "System.err Color",
 179    "The color for System.err in the Interactions and Console Panes.");
 180  6 add(OptionConstants.SYSTEM_IN_COLOR, "System.in Color",
 181    "The color for System.in in the Interactions Pane.");
 182  6 add(OptionConstants.INTERACTIONS_ERROR_COLOR, "Interactions Error Color",
 183    "The color for interactions errors in the Interactions Pane.");
 184  6 add(OptionConstants.DEBUG_MESSAGE_COLOR, "Debug Message Color",
 185    "The color for debugger messages in the Interactions Pane.");
 186  6 add(OptionConstants.DRJAVA_ERRORS_BUTTON_COLOR, "DrJava Errors Button Background Color",
 187    "The background color of the \"Errors\" button used to show internal DrJava errors.");
 188  6 add(OptionConstants.RIGHT_MARGIN_COLOR, "Right Margin Color",
 189    "The color of the right margin line, if displayed.");
 190   
 191  6 add(OptionConstants.WINDOW_STORE_POSITION,
 192    "Save Main Window Position",
 193    "Whether to save and restore the size and position of the main window.");
 194   
 195  6 add(OptionConstants.DIALOG_CLIPBOARD_HISTORY_STORE_POSITION,
 196    "Save \"Clipboard History\" Dialog Position",
 197    "Whether to save and restore the size and position of the \"Clipboard History\" dialog.");
 198  6 add(OptionConstants.DIALOG_GOTOFILE_STORE_POSITION,
 199    "Save \"Go to File\" Dialog Position",
 200    "Whether to save and restore the size and position of the \"Go to File\" dialog.");
 201  6 add(OptionConstants.DIALOG_COMPLETE_WORD_STORE_POSITION,
 202    "Save \"Auto-Complete Word\" Dialog Position",
 203    "Whether to save and restore the size and position of the \"Auto-Complete Word\" dialog.");
 204   
 205  6 add(OptionConstants.DIALOG_JAROPTIONS_STORE_POSITION,
 206    "Save \"Create Jar File from Project\" Dialog Position",
 207    "Whether to save and restore the position of the \"Create Jar File from Project\" dialog.");
 208  6 add(OptionConstants.DIALOG_OPENJAVADOC_STORE_POSITION,
 209    "Save \"Open Javadoc\" Dialog Position",
 210    "Whether to save and restore the size and position of the \"Open Javadoc\" dialog.");
 211  6 add(OptionConstants.DIALOG_AUTOIMPORT_STORE_POSITION,
 212    "Save \"Auto Import\" Dialog Position",
 213    "Whether to save and restore the size and position of the \"Auto Import\" dialog.");
 214   
 215  6 add(OptionConstants.DIALOG_EXTERNALPROCESS_STORE_POSITION,
 216    "Save \"Execute External Process\" Dialog Position",
 217    "Whether to save and restore the position of the \"Execute External Process\" dialog.");
 218   
 219  6 add(OptionConstants.DIALOG_EDITEXTERNALPROCESS_STORE_POSITION,
 220    "Save \"Edit External Process\" Dialog Position",
 221    "Whether to save and restore the position of the \"Edit External Process\" dialog.");
 222   
 223  6 add(OptionConstants.DIALOG_OPENJAVADOC_STORE_POSITION,
 224    "Save \"Open Javadoc\" Dialog Position",
 225    "Whether to save and restore the position of the \"Open Javadoc\" dialog.");
 226  6 add(OptionConstants.DIALOG_TABBEDPANES_STORE_POSITION,
 227    "Save \"Tabbed Panes\" Window Position",
 228    "Whether to save and restore the position of the \"Tabbed Panes\" window.");
 229   
 230  6 add(OptionConstants.DETACH_TABBEDPANES,
 231    "Detach Tabbed Panes",
 232    "Whether to detach the tabbed panes and display them in a separate window.");
 233   
 234  6 add(OptionConstants.DIALOG_DEBUGFRAME_STORE_POSITION,
 235    "Save \"Debugger\" Window Position",
 236    "Whether to save and restore the position of the \"Debugger\" window.");
 237   
 238  6 add(OptionConstants.DETACH_DEBUGGER,
 239    "Detach Debugger",
 240    "Whether to detach the debugger and display it in a separate window.");
 241   
 242    /** Adds all of the components for the Key Bindings panel of the preferences window.
 243    */
 244   
 245  6 add(OptionConstants.DEBUG_SOURCEPATH, "Sourcepath",
 246    "<html>Any directories in which to search for source<br>" +
 247    "files when stepping in the Debugger.</html>");
 248  6 add(OptionConstants.DEBUG_STEP_JAVA,
 249    "Step Into Java Classes",
 250    "<html>Whether the Debugger should step into Java library classes,<br>" +
 251    "including java.*, javax.*, sun.*, com.sun.*, com.apple.eawt.*, and com.apple.eio.*</html>");
 252  6 add(OptionConstants.DEBUG_STEP_INTERPRETER,
 253    "Step Into Interpreter Classes",
 254    "<html>Whether the Debugger should step into the classes<br>" +
 255    "used by the Interactions Pane (DynamicJava).</html>");
 256  6 add(OptionConstants.DEBUG_STEP_DRJAVA,
 257    "Step Into DrJava Classes",
 258    "Whether the Debugger should step into DrJava's own class files.");
 259  6 add(OptionConstants.DEBUG_STEP_EXCLUDE,
 260    "Classes/Packages To Exclude",
 261    "<html>Any classes that the debuggger should not step into.<br>" +
 262    "Should be a list of fully-qualified class names.<br>" +
 263    "To exclude a package, add <code>packagename.*</code> to the list.</html>");
 264  6 add(OptionConstants.DEBUG_AUTO_IMPORT,
 265    "Auto-Import after Breakpoint/Step",
 266    "<html>Whether the Debugger should automatically import packages<br>"+
 267    "and classes again after a breakpoint or step.</html>");
 268   
 269  6 add(OptionConstants.AUTO_STEP_RATE,
 270    "Auto-Step Rate in ms",
 271    "<html>A defined rate in ms at which the debugger automatically steps into/over each line of code.<br>" +
 272    "Value entered must be an integer value. </html>");
 273  6 add(OptionConstants.DEBUG_EXPRESSIONS_AND_METHODS_IN_WATCHES,
 274    "Allow Expressions and Method Calls in Watches",
 275    "<html>Whether the Debugger should allow expressions and method<br>"+
 276    "calls in watches. These may have side effects and can cause<br>"+
 277    "delays during the debug process.</html>");
 278   
 279  6 add(OptionConstants.JAVADOC_API_REF_VERSION,
 280    "Java Version for \"Open Java API Javadoc\"",
 281    "Version of the Java API documentation to be used.");
 282  6 add(OptionConstants.JAVADOC_ACCESS_LEVEL,
 283    "Access Level",
 284    "<html>Fields and methods with access modifiers at this level<br>" +
 285    "or higher will be included in the generated Javadoc.</html>");
 286  6 add(OptionConstants.JAVADOC_LINK_VERSION,
 287    "Java Version for Javadoc Links",
 288    "Version of Java for generating links to online Javadoc documentation.");
 289  6 add(OptionConstants.JAVADOC_1_5_LINK,
 290    "Javadoc 1.5 URL",
 291    "URL for the Java 1.5 API, for generating links to library classes.");
 292  6 add(OptionConstants.JAVADOC_1_6_LINK,
 293    "Javadoc 1.6 URL",
 294    "URL for the Java 1.6 API, for generating links to library classes.");
 295  6 add(OptionConstants.JAVADOC_1_7_LINK,
 296    "Javadoc 1.7 URL",
 297    "URL for the Java 1.7 API, for generating links to library classes.");
 298  6 add(OptionConstants.JUNIT_LINK,
 299    "JUnit URL",
 300    "URL for the JUnit API, for \"Open Java API Javadoc\".");
 301   
 302  6 add(OptionConstants.JAVADOC_ADDITIONAL_LINKS, "Additional Javadoc URLs",
 303    "<html>Additional URLs with Javadoc, for \"Open Java API Javadoc\"<br>" +
 304    "and auto-completion.</html>");
 305  6 add(OptionConstants.JAVADOC_DESTINATION,
 306    "Default Destination Directory",
 307    "Optional default directory for saving Javadoc documentation.");
 308   
 309  6 add(OptionConstants.JAVADOC_CUSTOM_PARAMS,
 310    "Custom Javadoc Parameters",
 311    "Any extra flags or parameters to pass to Javadoc.");
 312   
 313    // Note: JAVADOC_FROM_ROOTS is intended to set the -subpackages flag, but I don't think that's something
 314    // we should support -- in general, we only support performing operations on the files that are open.
 315    // (dlsmith r4189)
 316    // add(OptionConstants.JAVADOC_FROM_ROOTS,
 317    // "Generate Javadoc From Source Roots"
 318    // "<html>Whether \"Javadoc All\" should generate Javadoc for all packages<br>" +
 319    // "in an open document's source tree, rather than just the document's<br>" +
 320    // "own package and sub-packages.</html>");
 321   
 322  6 add(OptionConstants.QUIT_PROMPT, "Prompt Before Quit",
 323    "Whether DrJava should prompt the user before quitting.");
 324   
 325   
 326    // Interactions
 327  6 add(OptionConstants.INTERACTIONS_RESET_PROMPT,
 328    "Prompt Before Resetting Interactions Pane",
 329    "<html>Whether DrJava should prompt the user before<br>" +
 330    "manually resetting the interactions pane.</html>");
 331   
 332   
 333  6 add(OptionConstants.INTERACTIONS_EXIT_PROMPT,
 334    "Prompt if Interactions Pane Exits Unexpectedly",
 335    "<html>Whether DrJava should show a dialog box if a program<br>" +
 336    "in the Interactions Pane exits without the user clicking Reset.</html>");
 337   
 338   
 339    // Javadoc
 340  6 add(OptionConstants.JAVADOC_PROMPT_FOR_DESTINATION,
 341    "Prompt for Javadoc Destination",
 342    "<html>Whether Javadoc should always prompt the user<br>" +
 343    "to select a destination directory.</html>");
 344   
 345   
 346   
 347    // Clean
 348  6 add(OptionConstants.PROMPT_BEFORE_CLEAN,
 349    "Prompt before Cleaning Build Directory",
 350    "<html>Whether DrJava should prompt before cleaning the<br>" +
 351    "build directory of a project</html>");
 352   
 353   
 354    // Prompt to change the language level extensions (.dj0/.dj1->.dj, .dj2->.java)
 355  6 add(OptionConstants.PROMPT_RENAME_LL_FILES, "Prompt to Rename Old Language Level Files When Saving",
 356    "<html>Whether DrJava should prompt the user to rename old language level files.<br>"+
 357    "DrJava suggests to rename .dj0 and .dj1 files to .dj, and .dj2 files to .java.</html>");
 358   
 359   
 360   
 361    // Save before X
 362  6 add(OptionConstants.ALWAYS_SAVE_BEFORE_COMPILE,
 363    "Automatically Save Before Compiling",
 364    "<html>Whether DrJava should automatically save before<br>" +
 365    "recompiling or ask the user each time.</html>");
 366   
 367   
 368  6 add(OptionConstants.ALWAYS_COMPILE_BEFORE_JUNIT,
 369    "Automatically Compile Before Testing",
 370    "<html>Whether DrJava should automatically compile before<br>" +
 371    "testing with JUnit or ask the user each time.</html>");
 372   
 373   
 374  6 add(OptionConstants.ALWAYS_SAVE_BEFORE_JAVADOC,
 375    "Automatically Save Before Generating Javadoc",
 376    "<html>Whether DrJava should automatically save before<br>" +
 377    "generating Javadoc or ask the user each time.</html>");
 378   
 379   
 380  6 add(OptionConstants.ALWAYS_COMPILE_BEFORE_JAVADOC,
 381    "Automatically Compile Before Generating Javadoc",
 382    "<html>Whether DrJava should automatically compile before<br>" +
 383    "generating Javadoc or ask the user each time.</html>");
 384   
 385   
 386   
 387    // These are very problematic features, and so are disabled for the forseeable future.
 388    // addOptionComponent(panel,
 389    // new BooleanOptionComponent(OptionConstants.ALWAYS_SAVE_BEFORE_RUN,
 390    // "Automatically Save and Compile Before Running Main Method",
 391    // this,
 392    // "<html>Whether DrJava automatically saves and compiles before running<br>" +
 393    // "a document's main method or explicitly asks the user each time.</html>");
 394    // addOptionComponent(panel,
 395    // new BooleanOptionComponent(OptionConstants.ALWAYS_SAVE_BEFORE_DEBUG,
 396    // "Automatically Save and Compile Before Debugging",
 397    // this,
 398    // "<html>Whether DrJava automatically saves and compiles before<br>" +
 399    // "debugging or explicitly asks the user each time.</html>");
 400   
 401    // Warnings
 402  6 add(OptionConstants.WARN_BREAKPOINT_OUT_OF_SYNC,
 403    "Warn on Breakpoint if Out of Sync",
 404    "<html>Whether DrJava should warn the user if the class file<br>" +
 405    "is out of sync before setting a breakpoint in that file.</html>");
 406   
 407  6 add(OptionConstants.WARN_DEBUG_MODIFIED_FILE,
 408    "Warn if Debugging Modified File",
 409    "<html>Whether DrJava should warn the user if the file being<br>" +
 410    "debugged has been modified since its last save.</html>");
 411   
 412  6 add(OptionConstants.WARN_CHANGE_LAF,
 413    "Warn to Restart to Change Look and Feel",
 414    "<html>Whether DrJava should warn the user that look and feel<br>" +
 415    "changes will not be applied until DrJava is restarted.</html>.");
 416   
 417  6 add(OptionConstants.WARN_CHANGE_THEME,
 418    "Warn to Restart to Change Theme",
 419    "<html>Whether DrJava should warn the user that theme<br>" +
 420    "changes will not be applied until DrJava is restarted.</html>.");
 421   
 422  6 add(OptionConstants.WARN_CHANGE_DCP,
 423    "Warn to Restart to Change Default Compiler Preference",
 424    "<html>Whether DrJava should warn the user that default compiler preference<br>" +
 425    "changes will not be applied until DrJava is restarted.</html>.");
 426   
 427  6 add(OptionConstants.WARN_CHANGE_MISC,
 428    "Warn to Restart to Change Preferences (other)",
 429    "<html>Whether DrJava should warn the user that preference<br>" +
 430    "changes will not be applied until DrJava is restarted.</html>.");
 431   
 432  6 add(OptionConstants.WARN_CHANGE_INTERACTIONS,
 433    "Warn to Reset to Change Interactions",
 434    "<html>Whether DrJava should warn the user that preference<br>" +
 435    "changes will not be applied until the Interactions Pane<br>" +
 436    "is reset.</html>.");
 437   
 438  6 add(OptionConstants.WARN_PATH_CONTAINS_POUND,
 439    "Warn if File's Path Contains a '#' Symbol",
 440    "<html>Whether DrJava should warn the user if the file being<br>" +
 441    "saved has a path that contains a '#' symbol.<br>" +
 442    "Users cannot use such files in the Interactions Pane<br>" +
 443    "because of a bug in Java.</html>");
 444   
 445   
 446  6 add(OptionConstants.DIALOG_DRJAVA_ERROR_POPUP_ENABLED,
 447    "Show a notification window when the first DrJava error occurs",
 448    "<html>Whether to show a notification window when the first DrJava error occurs.<br>" +
 449    "If this is disabled, only the \"DrJava Error\" button will appear.</html>");
 450   
 451  6 add(OptionConstants.WARN_IF_COMPIZ,
 452    "Warn If Compiz Detected",
 453    "<html>Whether DrJava should warn the user if Compiz is running.<br>"+
 454    "Compiz and Java Swing are incompatible and can lead to crashes.</html>");
 455   
 456  6 add(OptionConstants.DELETE_LL_CLASS_FILES,
 457    "Delete language level class files?",
 458    "Whether DrJava should delete class files in directories with language level files.");
 459   
 460  6 add(OptionConstants.NEW_VERSION_NOTIFICATION,
 461    "Check for new versions?",
 462    "Whether DrJava should check for new versions on drjava.org.");
 463  6 add(OptionConstants.NEW_VERSION_NOTIFICATION_DAYS,
 464    "Days between new version check",
 465    "The number of days between automatic new version checks.");
 466   
 467    /* Dialog box options */
 468  6 add(OptionConstants.INDENT_LEVEL,
 469    "Indent Level",
 470    "The number of spaces to use for each level of indentation.");
 471  6 add(OptionConstants.RECENT_FILES_MAX_SIZE, "Recent Files List Size",
 472    "<html>The number of files to remember in<br>" +
 473    "the recently used files list in the File menu.</html>");
 474  6 add(OptionConstants.BROWSER_HISTORY_MAX_SIZE,
 475    "Maximum Size of Browser History",
 476    "Determines how many entries are kept in the browser history.");
 477   
 478    /* Check box options */
 479  6 add(OptionConstants.AUTO_CLOSE_COMMENTS, "Automatically Close Block Comments",
 480    "<html>Whether to automatically insert a closing comment tag (\"*/\")<br>" +
 481    "when the enter key is pressed after typing a new block comment<br>" +
 482    "tag (\"/*\" or \"/**\").</html>");
 483  6 String runWithAssertMsg =
 484    "<html>Whether to execute <code>assert</code> statements in classes running in the interactions pane.</html>";
 485  6 add(OptionConstants.RUN_WITH_ASSERT, "Enable Assert Statement Execution",
 486    runWithAssertMsg);
 487   
 488  6 add(OptionConstants.BACKUP_FILES, "Keep Emacs-style Backup Files",
 489    "<html>Whether DrJava should keep a backup copy of each file that<br>" +
 490    "the user modifies, saved with a '~' at the end of the filename.</html>");
 491  6 add(OptionConstants.RESET_CLEAR_CONSOLE, "Clear Console After Interactions Reset",
 492    "Whether to clear the Console output after resetting the Interactions Pane.");
 493   
 494  6 add(OptionConstants.FIND_REPLACE_FOCUS_IN_DEFPANE,
 495    "Focus on the definitions pane after find/replace",
 496    "<html>Whether to focus on the definitions pane after executing a find/replace operation.<br>" +
 497    "If this is not selected, the focus will be in the Find/Replace pane.</html>");
 498  6 add(OptionConstants.DRJAVA_USE_FORCE_QUIT,
 499    "Forcefully Quit DrJava",
 500    "<html>On some platforms, DrJava does not shut down properly when files are open<br>"+
 501    "(namely tablet PCs). Check this option to force DrJava to close.</html>");
 502  6 add(OptionConstants.REMOTE_CONTROL_ENABLED,
 503    "Enable Remote Control",
 504    "<html>Whether DrJava should listen to a socket (see below) so it<br>"+
 505    "can be remote controlled and told to open files.<br>"+
 506    "(Changes will not be applied until DrJava is restarted.)</html>");
 507  6 add(OptionConstants.REMOTE_CONTROL_PORT,
 508    "Remote Control Port",
 509    "<html>A running instance of DrJava can be remote controlled and<br>"+
 510    "told to open files. This specifies the port used for remote control.<br>" +
 511    "(Changes will not be applied until DrJava is restarted.)</html>");
 512  6 add(OptionConstants.FOLLOW_FILE_DELAY,
 513    "Follow File Delay",
 514    "<html>The delay in milliseconds that has to elapse before DrJava will check<br>"+
 515    "if a file that is being followed or the output of an external process has changed.</html>");
 516  6 add(OptionConstants.FOLLOW_FILE_LINES,
 517    "Maximum Lines in \"Follow File\" Window",
 518    "<html>The maximum number of lines to keep in a \"Follow File\"<br>"+
 519    "or \"External Process\" pane. Enter 0 for unlimited.</html>");
 520   
 521    // Any lightweight parsing has been disabled until we have something that is beneficial and works better in the background.
 522    // add(OptionConstants.LIGHTWEIGHT_PARSING_ENABLED,
 523    // "Perform lightweight parsing"
 524    // "<html>Whether to continuously parse the source file for useful information.<br>" +
 525    // "Enabling this option might introduce delays when editing files.<html>"));
 526    // add(OptionConstants.DIALOG_LIGHTWEIGHT_PARSING_DELAY, "Light-weight parsing delay in milliseconds"
 527    // "The amount of time DrJava will wait after the last keypress before beginning to parse."));
 528   
 529  6 add(OptionConstants.MASTER_JVM_XMX,
 530    "Maximum Heap Size for Main JVM in MB",
 531    "The maximum heap the Main JVM can use. Select blank for default.");
 532  6 add(OptionConstants.MASTER_JVM_ARGS, "JVM Args for Main JVM",
 533    "The command-line arguments to pass to the Main JVM.");
 534  6 add(OptionConstants.SLAVE_JVM_XMX,
 535    "Maximum Heap Size for Interactions JVM in MB",
 536    "The maximum heap the Interactions JVM can use. Select blank for default");
 537  6 add(OptionConstants.SLAVE_JVM_ARGS, "JVM Args for Interactions JVM",
 538    "The command-line arguments to pass to the Interactions JVM.");
 539   
 540    /** Adds all of the components for the Compiler Options Panel of the preferences window
 541    */
 542  6 add(OptionConstants.SHOW_UNCHECKED_WARNINGS, "Show Unchecked Warnings",
 543    "<html>Warn about unchecked conversions involving parameterized types.</html>");
 544   
 545   
 546  6 add(OptionConstants.SHOW_DEPRECATION_WARNINGS, "Show Deprecation Warnings",
 547    "<html>Warn about each use or override of a deprecated method, field, or class.</html>");
 548   
 549   
 550  6 add(OptionConstants.SHOW_PATH_WARNINGS, "Show Path Warnings",
 551    "<html>Warn about nonexistent members of the classpath and sourcepath.</html>");
 552   
 553   
 554  6 add(OptionConstants.SHOW_SERIAL_WARNINGS, "Show Serial Warnings",
 555    "<html>Warn about missing <code>serialVersionUID</code> definitions on serializable classes.</html>");
 556   
 557   
 558  6 add(OptionConstants.SHOW_FINALLY_WARNINGS, "Show Finally Warnings",
 559    "<html>Warn about <code>finally</code> clauses that cannot complete normally.</html>");
 560   
 561   
 562  6 add(OptionConstants.SHOW_FALLTHROUGH_WARNINGS, "Show Fall-Through Warnings",
 563    "<html>Warn about <code>switch</code> block cases that fall through to the next case.</html>");
 564   
 565    /*
 566    * The drop down box containing the compiler names
 567    */
 568  6 add(OptionConstants.COMPILER_PREFERENCE_CONTROL.evaluate(), "Compiler Preference",
 569    "Which compiler is prefered?");
 570   
 571   
 572    /** Add all of the components for the Interactions panel of the preferences window. */
 573  6 add(OptionConstants.FIXED_INTERACTIONS_DIRECTORY,
 574    "Interactions Working Directory",
 575    "<html>Working directory for the Interactions Pane (unless<br>"+
 576    "a project working directory has been set).</html>");
 577  6 add(OptionConstants.STICKY_INTERACTIONS_DIRECTORY,
 578    "<html><p align=\"right\">" +
 579    StringOps.
 580    splitStringAtWordBoundaries("Restore last working directory of the Interactions pane on start up",
 581    33, "<br>", SEPS),
 582    "<html>Whether to restore the last working directory of the Interaction pane on start up,<br>" +
 583    "or to always use the value of the \"user.home\" Java property<br>"+
 584    "(currently "+System.getProperty("user.home")+").");
 585   
 586  6 add(OptionConstants.SMART_RUN_FOR_APPLETS_AND_PROGRAMS,
 587    "Smart Run Command",
 588    "<html>Whether the Run button and meni item should automatically detect<br>"+
 589    "applets and ACM Java Task Force programs (subclasses of acm.program.Program).</html>");
 590   
 591  6 add(OptionConstants.HISTORY_MAX_SIZE, "Size of Interactions History",
 592    "The number of interactions to remember in the history.");
 593  6 add(OptionConstants.DIALOG_AUTOIMPORT_ENABLED,
 594    "Enable the \"Auto Import\" Dialog",
 595    "<html>Whether DrJava should open the \"Auto Import\" dialog when<br>"+
 596    "an undefined class is encountered in the Interactions Pane.</html>");
 597  6 add(OptionConstants.INTERACTIONS_AUTO_IMPORT_CLASSES, "Classes to Auto-Import",
 598    "<html>List of classes to auto-import every time the<br>"+
 599    "Interaction Pane is reset or started. Examples:<br><br>"+
 600    "java.io.File<br>"+
 601    "java.util.*</html>");
 602   
 603  6 add(OptionConstants.DYNAMICJAVA_ACCESS_CONTROL,
 604    "Enforce access control",
 605    "What kind of access control should DrJava enforce in the Interactions Pane?");
 606  6 add(OptionConstants.DYNAMICJAVA_REQUIRE_SEMICOLON,
 607    "Require Semicolon",
 608    "<html>Whether DrJava should require a semicolon at the<br>"+
 609    "end of a statement in the Interactions Pane.</html>");
 610  6 add(OptionConstants.DYNAMICJAVA_REQUIRE_VARIABLE_TYPE,
 611    "Require Variable Type",
 612    "<html>Whether DrJava should require a variable type for<br>"+
 613    "variable declarations in the Interactions Pane.</html>");
 614   
 615    /** Add all of the components for the JUnit panel of the preferences window. */
 616  6 add(OptionConstants.JUNIT_LOCATION_ENABLED, "Use external JUnit",
 617    "<html>If this is enabled, DrJava will use the JUnit configured<br>"+
 618    "below under 'JUnit/ConcJUnit Location'. If it is disabled,<br>"+
 619    "DrJava will use the JUnit that is built-in.</html>");
 620  6 add(OptionConstants.JUNIT_LOCATION, "JUnit/ConcJUnit Location",
 621    "<html>Optional location of the JUnit or ConcJUnit jar file.<br>"+
 622    "(Changes will not be applied until the Interactions Pane<br>"+
 623    "is reset.)</html>");
 624  6 add(OptionConstants.CONCJUNIT_CHECKS_ENABLED, "Enabled ConcJUnit Checks",
 625    "<html>The concurrent unit testing checks that should be performed.<br>"+
 626    "'none' uses plain JUnit. ConcJUnit can also detect failures in<br>"+
 627    "all threads ('all-threads'), detect threads that did not end in<br>"+
 628    "time ('all-threads, join'), and threads that ended in time only<br>"+
 629    "because they were lucky ('all-threads, nojoin, lucky).<br>"+
 630    "The last setting requires a 'ConcJUnit Runtime Location' to be set.</html>");
 631   
 632  6 add(OptionConstants.RT_CONCJUNIT_LOCATION, "ConcJUnit Runtime Location",
 633    "<html>Optional location of the Java Runtime Library processed<br>"+
 634    "to generate &quot;lucky&quot; warnings. If left blank, &quot;lucky&quot; warnings<br>"+
 635    "will not be generated. This setting is deactivated if the path to<br>"+
 636    "ConcJUnit has not been specified above.<br>" +
 637    "(Changes will not be applied until the Interactions Pane is reset.)</html>");
 638   
 639   
 640  6 add(OptionConstants.FORCE_TEST_SUFFIX,
 641    "Require test classes in projects to end in \"Test\"",
 642    "Whether to force test classes in projects to end in \"Test\".");
 643   
 644  6 add(OptionConstants.LANGUAGE_LEVEL,
 645    "Language Level",
 646    "The language level DrJava currently uses.");
 647    }
 648    }