1 33 34 package edu.rice.cs.drjava.config; 35 36 import java.io.File ; 37 import java.util.Vector ; 38 import java.util.ArrayList ; 39 import java.util.Arrays ; 40 import java.awt.Color ; 41 import java.awt.Font ; 42 import java.awt.Toolkit ; 43 import java.awt.event.KeyEvent ; 44 import java.awt.event.InputEvent ; 45 import javax.swing.KeyStroke ; 46 import javax.swing.LookAndFeel ; 47 import javax.swing.UIManager ; 48 import javax.swing.UIManager.LookAndFeelInfo; 49 import edu.rice.cs.drjava.platform.PlatformFactory; 50 51 52 55 public interface OptionConstants { 56 57 59 60 61 62 public static final FileOption BROWSER_FILE = new FileOption("browser.file", FileOption.NULL_FILE); 63 64 65 public static final StringOption BROWSER_STRING = new StringOption("browser.string", ""); 66 67 68 public static final String PROJECT_FILE_EXTENSION = ".pjt"; 69 70 public static final FileOption JAVAC_LOCATION = new FileOption("javac.location", FileOption.NULL_FILE); 71 72 public static final VectorOption<File > EXTRA_CLASSPATH = new ClassPathOption().evaluate("extra.classpath"); 73 74 public static final VectorOption<String > EXTRA_COMPILERS = 75 new VectorOption<String >("extra.compilers", new StringOption("",""), new Vector <String >()); 76 77 78 79 public static final ColorOption DEFINITIONS_NORMAL_COLOR = new ColorOption("definitions.normal.color", Color.black); 80 public static final ColorOption DEFINITIONS_KEYWORD_COLOR = new ColorOption("definitions.keyword.color", Color.blue); 81 public static final ColorOption DEFINITIONS_TYPE_COLOR = 82 new ColorOption("definitions.type.color", Color.blue.darker().darker()); 83 public static final ColorOption DEFINITIONS_COMMENT_COLOR = 84 new ColorOption("definitions.comment.color", Color.green.darker().darker()); 85 public static final ColorOption DEFINITIONS_DOUBLE_QUOTED_COLOR = 86 new ColorOption("definitions.double.quoted.color", Color.red.darker()); 87 public static final ColorOption DEFINITIONS_SINGLE_QUOTED_COLOR = 88 new ColorOption("definitions.single.quoted.color", Color.magenta); 89 public static final ColorOption DEFINITIONS_NUMBER_COLOR = 90 new ColorOption("definitions.number.color", Color.cyan.darker()); 91 public static final ColorOption SYSTEM_OUT_COLOR = new ColorOption("system.out.color", Color.green.darker().darker()); 92 public static final ColorOption SYSTEM_ERR_COLOR = new ColorOption("system.err.color", Color.red); 93 public static final ColorOption SYSTEM_IN_COLOR = new ColorOption("system.in.color", Color.magenta.darker().darker()); 94 public static final ColorOption INTERACTIONS_ERROR_COLOR = 95 new ColorOption("interactions.error.color", Color.red.darker()); 96 public static final ColorOption DEBUG_MESSAGE_COLOR = new ColorOption("debug.message.color", Color.blue.darker()); 97 98 99 public static final ColorOption DEFINITIONS_BACKGROUND_COLOR = 100 new ColorOption("definitions.background.color", Color.white); 101 102 103 public static final ColorOption DEFINITIONS_MATCH_COLOR = 104 new ColorOption("definitions.match.color", new Color (190, 255, 230)); 105 106 107 public static final ColorOption COMPILER_ERROR_COLOR = new ColorOption("compiler.error.color", Color.yellow); 108 109 110 public static final ColorOption BOOKMARK_COLOR = new ColorOption("bookmark.color", Color.green); 111 112 113 public static final ColorOption FIND_RESULTS_COLOR1 = 114 new ColorOption("find.results.color1", new Color (0xFF, 0x99, 0x33)); 115 public static final ColorOption FIND_RESULTS_COLOR2 = 116 new ColorOption("find.results.color2", new Color (0x30, 0xC9, 0x96)); 117 public static final ColorOption FIND_RESULTS_COLOR3 = 118 new ColorOption("find.results.color3", new Color (0x30, 0xFC, 0xFC)); 119 public static final ColorOption FIND_RESULTS_COLOR4 = 120 new ColorOption("find.results.color4", new Color (0xFF, 0x66, 0xCC)); 121 122 public static final ColorOption[] FIND_RESULTS_COLORS = new ColorOption[] { 123 FIND_RESULTS_COLOR1, 124 FIND_RESULTS_COLOR2, 125 FIND_RESULTS_COLOR3, 126 FIND_RESULTS_COLOR4 127 }; 128 129 130 public static final ColorOption DEBUG_BREAKPOINT_COLOR = new ColorOption("debug.breakpoint.color", Color.red); 131 132 133 public static final ColorOption DEBUG_BREAKPOINT_DISABLED_COLOR = 134 new ColorOption("debug.breakpoint.disabled.color", new Color (128,0,0)); 135 136 137 public static final ColorOption DEBUG_THREAD_COLOR = new ColorOption("debug.thread.color", new Color (100,255,255)); 138 139 140 public static final ColorOption DRJAVA_ERRORS_BUTTON_COLOR = new ColorOption("drjava.errors.button.color", Color.red); 141 142 143 144 145 public static final FontOption FONT_MAIN = new FontOption("font.main", DefaultFont.getDefaultMainFont()); 146 147 148 static class DefaultFont { 149 public static Font getDefaultMainFont() { 150 if (PlatformFactory.ONLY.isMacPlatform()) return Font.decode("Monaco-12"); 151 else return Font.decode("Monospaced-12"); 152 } 153 public static Font getDefaultLineNumberFont() { 154 if (PlatformFactory.ONLY.isMacPlatform()) return Font.decode("Monaco-12"); 155 else return Font.decode("Monospaced-12"); 156 } 157 public static Font getDefaultDocListFont() { 158 if (PlatformFactory.ONLY.isMacPlatform()) return Font.decode("Monaco-10"); 159 else return Font.decode("Monospaced-10"); 160 } 161 } 162 163 164 public static final FontOption FONT_LINE_NUMBERS = 165 new FontOption("font.line.numbers", DefaultFont.getDefaultLineNumberFont()); 166 167 168 public static final FontOption FONT_DOCLIST = new FontOption("font.doclist", DefaultFont.getDefaultDocListFont()); 169 170 171 public static final FontOption FONT_TOOLBAR = new FontOption("font.toolbar", Font.decode("dialog-10")); 172 173 174 public static final BooleanOption TEXT_ANTIALIAS = new BooleanOption("text.antialias", Boolean.FALSE); 175 176 177 178 179 180 public static final BooleanOption TOOLBAR_ICONS_ENABLED = 181 new BooleanOption("toolbar.icons.enabled", Boolean.TRUE); 182 183 184 public static final BooleanOption TOOLBAR_TEXT_ENABLED = new BooleanOption("toolbar.text.enabled", Boolean.TRUE); 185 186 187 public static final BooleanOption TOOLBAR_ENABLED = new BooleanOption("toolbar.enabled", Boolean.TRUE); 188 189 190 public static final BooleanOption LINEENUM_ENABLED = new BooleanOption("lineenum.enabled", Boolean.FALSE); 191 192 193 public static final BooleanOption WINDOW_STORE_POSITION = new BooleanOption("window.store.position", Boolean.TRUE); 194 195 196 public static final BooleanOption SHOW_SOURCE_WHEN_SWITCHING = 197 new BooleanOption("show.source.for.fast.switch", Boolean.TRUE); 198 199 200 public static final ForcedChoiceOption LOOK_AND_FEEL = 201 new ForcedChoiceOption("look.and.feel", LookAndFeels.getDefaultLookAndFeel(), LookAndFeels.getLookAndFeels()); 202 203 204 static class LookAndFeels { 205 206 209 public static String getDefaultLookAndFeel() { 210 if (PlatformFactory.ONLY.isMacPlatform()) return UIManager.getSystemLookAndFeelClassName(); 211 else 212 return UIManager.getCrossPlatformLookAndFeelClassName(); 213 } 214 220 public static ArrayList <String > getLookAndFeels() { 221 ArrayList <String > lookAndFeels = new ArrayList <String >(); 222 LookAndFeelInfo[] lafis = UIManager.getInstalledLookAndFeels(); 223 if (lafis != null) { 224 for (int i = 0; i < lafis.length; i++) { 225 try { 226 String currName = lafis[i].getClassName(); 227 LookAndFeel currLAF = (LookAndFeel ) Class.forName(currName).newInstance(); 228 if (currLAF.isSupportedLookAndFeel()) { 229 lookAndFeels.add(currName); 230 } 231 } 232 catch (Exception ex) { 233 } 236 } 237 } 238 return lookAndFeels; 239 } 240 } 241 242 243 static int mask = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(); 244 247 public static final KeyStrokeOption KEY_NEW_FILE = 248 new KeyStrokeOption("key.new.file", 249 KeyStroke.getKeyStroke(KeyEvent.VK_N, mask)); 250 254 public static final KeyStrokeOption KEY_OPEN_PROJECT = 255 new KeyStrokeOption("key.open.project", 256 KeyStroke.getKeyStroke(KeyEvent.VK_I, mask)); 257 260 public static final KeyStrokeOption KEY_NEW_TEST = 261 new KeyStrokeOption("key.new.test", 262 KeyStrokeOption.NULL_KEYSTROKE); 263 264 267 public static final KeyStrokeOption KEY_OPEN_FOLDER = 268 new KeyStrokeOption("key.open.folder", 269 KeyStrokeOption.NULL_KEYSTROKE); 270 273 public static final KeyStrokeOption KEY_OPEN_FILE = 274 new KeyStrokeOption("key.open.file", 275 KeyStroke.getKeyStroke(KeyEvent.VK_O, mask)); 276 279 public static final KeyStrokeOption KEY_SAVE_FILE = 280 new KeyStrokeOption("key.save.file", 281 KeyStroke.getKeyStroke(KeyEvent.VK_S, mask)); 282 285 public static final KeyStrokeOption KEY_SAVE_FILE_AS = 286 new KeyStrokeOption("key.save.file.as", 287 KeyStroke.getKeyStroke(KeyEvent.VK_S, mask | 288 InputEvent.SHIFT_MASK)); 289 292 public static final KeyStrokeOption KEY_SAVE_ALL_FILES = 293 new KeyStrokeOption("key.save.all.files", 294 KeyStroke.getKeyStroke(KeyEvent.VK_S, mask | 295 InputEvent.ALT_MASK)); 296 297 300 public static final KeyStrokeOption KEY_RENAME_FILE = 301 new KeyStrokeOption("key.rename.file", KeyStrokeOption.NULL_KEYSTROKE); 302 303 306 public static final KeyStrokeOption KEY_REVERT_FILE = 307 new KeyStrokeOption("key.revert.file", 308 KeyStroke.getKeyStroke(KeyEvent.VK_R, mask)); 309 312 public static final KeyStrokeOption KEY_CLOSE_FILE = 313 new KeyStrokeOption("key.close.file", 314 KeyStroke.getKeyStroke(KeyEvent.VK_W, mask)); 315 318 public static final KeyStrokeOption KEY_CLOSE_ALL_FILES = 319 new KeyStrokeOption("key.close.all.files", 320 KeyStroke.getKeyStroke(KeyEvent.VK_W, mask | 321 InputEvent.ALT_MASK)); 322 323 public static final KeyStrokeOption KEY_CLOSE_PROJECT = 324 new KeyStrokeOption("key.close.project", 325 KeyStroke.getKeyStroke(KeyEvent.VK_W, mask | InputEvent.SHIFT_MASK)); 326 327 328 public static final KeyStrokeOption KEY_PAGE_SETUP = 329 new KeyStrokeOption("key.page.setup", KeyStrokeOption.NULL_KEYSTROKE); 330 331 332 public static final KeyStrokeOption KEY_PRINT_PREVIEW = 333 new KeyStrokeOption("key.print.preview", KeyStroke.getKeyStroke(KeyEvent.VK_P, mask | InputEvent.SHIFT_MASK)); 334 335 336 public static final KeyStrokeOption KEY_PRINT = 337 new KeyStrokeOption("key.print", KeyStroke.getKeyStroke(KeyEvent.VK_P, mask)); 338 339 340 public static final KeyStrokeOption KEY_QUIT = 341 new KeyStrokeOption("key.quit", KeyStroke.getKeyStroke(KeyEvent.VK_Q, mask)); 342 343 344 public static final KeyStrokeOption KEY_FORCE_QUIT = 345 new KeyStrokeOption("key.force.quit", KeyStrokeOption.NULL_KEYSTROKE); 346 347 348 public static final KeyStrokeOption KEY_UNDO = 349 new KeyStrokeOption("key.undo", KeyStroke.getKeyStroke(KeyEvent.VK_Z, mask)); 350 351 352 public static final KeyStrokeOption KEY_REDO = 353 new KeyStrokeOption("key.redo", KeyStroke.getKeyStroke(KeyEvent.VK_Z, mask | InputEvent.SHIFT_MASK)); 354 355 356 public static final KeyStrokeOption KEY_CUT = 357 new KeyStrokeOption("key.cut", KeyStroke.getKeyStroke(KeyEvent.VK_X, mask)); 358 359 360 public static final KeyStrokeOption KEY_COPY = 361 new KeyStrokeOption("key.copy", KeyStroke.getKeyStroke(KeyEvent.VK_C, mask)); 362 363 364 public static final KeyStrokeOption KEY_PASTE = 365 new KeyStrokeOption("key.paste", KeyStroke.getKeyStroke(KeyEvent.VK_V, mask)); 366 367 368 public static final KeyStrokeOption KEY_PASTE_FROM_HISTORY = 369 new KeyStrokeOption("key.paste.from.history", KeyStroke.getKeyStroke(KeyEvent.VK_V , mask | InputEvent.SHIFT_MASK)); 370 371 372 public static final KeyStrokeOption KEY_SELECT_ALL = 373 new KeyStrokeOption("key.select.all", KeyStroke.getKeyStroke(KeyEvent.VK_A, mask)); 374 375 376 public static final KeyStrokeOption KEY_FIND_NEXT = 377 new KeyStrokeOption("key.find.next", KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0)); 378 379 380 public static final KeyStrokeOption KEY_FIND_PREV = 381 new KeyStrokeOption("key.find.prev", 382 KeyStroke.getKeyStroke(KeyEvent.VK_F3, InputEvent.SHIFT_MASK)); 383 386 public static final KeyStrokeOption KEY_FIND_REPLACE = 387 new KeyStrokeOption("key.find.replace", 388 KeyStroke.getKeyStroke(KeyEvent.VK_F, mask)); 389 392 public static final KeyStrokeOption KEY_GOTO_LINE = 393 new KeyStrokeOption("key.goto.line", 394 KeyStroke.getKeyStroke(KeyEvent.VK_G, mask)); 395 396 399 public static final KeyStrokeOption KEY_GOTO_FILE = 400 new KeyStrokeOption("key.goto.file", 401 KeyStroke.getKeyStroke(KeyEvent.VK_G, mask|KeyEvent.SHIFT_MASK)); 402 403 406 public static final KeyStrokeOption KEY_GOTO_FILE_UNDER_CURSOR = 407 new KeyStrokeOption("key.goto.file.under.cursor", 408 KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0)); 409 410 413 public static final KeyStrokeOption KEY_OPEN_JAVADOC = 414 new KeyStrokeOption("key.open.javadoc", 415 KeyStroke.getKeyStroke(KeyEvent.VK_F6, KeyEvent.SHIFT_MASK)); 416 417 420 public static final KeyStrokeOption KEY_OPEN_JAVADOC_UNDER_CURSOR = 421 new KeyStrokeOption("key.open.javadoc.under.cursor", 422 KeyStroke.getKeyStroke(KeyEvent.VK_F6, mask)); 423 424 427 public static final KeyStrokeOption KEY_COMPLETE_FILE = 428 new KeyStrokeOption("key.complete.file", 429 KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, mask|KeyEvent.SHIFT_MASK)); 430 431 437 438 441 public static final KeyStrokeOption KEY_COMMENT_LINES = 442 new KeyStrokeOption("key.comment.lines", 443 KeyStroke.getKeyStroke(KeyEvent.VK_SLASH, mask)); 444 445 448 public static final KeyStrokeOption KEY_UNCOMMENT_LINES = 449 new KeyStrokeOption("key.uncomment.lines", 450 KeyStroke.getKeyStroke(KeyEvent.VK_SLASH, 451 (mask | InputEvent.SHIFT_MASK))); 452 453 456 public static final KeyStrokeOption KEY_PREVIOUS_DOCUMENT = 457 new KeyStrokeOption("key.previous.document", 458 KeyStroke.getKeyStroke(KeyEvent.VK_COMMA, mask)); 459 462 public static final KeyStrokeOption KEY_NEXT_DOCUMENT = 463 new KeyStrokeOption("key.next.document", 464 KeyStroke.getKeyStroke(KeyEvent.VK_PERIOD, mask)); 465 466 469 public static final KeyStrokeOption KEY_PREVIOUS_PANE = 470 new KeyStrokeOption("key.previous.pane", 471 KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, mask)); 472 473 476 public static final KeyStrokeOption KEY_NEXT_PANE = 477 new KeyStrokeOption("key.next.pane", 478 KeyStroke.getKeyStroke(KeyEvent.VK_CLOSE_BRACKET, mask)); 479 480 483 public static final KeyStrokeOption KEY_OPENING_BRACE = 484 new KeyStrokeOption("key.goto.opening.brace", 485 KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, mask|InputEvent.SHIFT_MASK)); 486 487 490 public static final KeyStrokeOption KEY_CLOSING_BRACE = 491 new KeyStrokeOption("key.goto.closing.brace", 492 KeyStroke.getKeyStroke(KeyEvent.VK_CLOSE_BRACKET, mask|InputEvent.SHIFT_MASK)); 493 494 497 public static final KeyStrokeOption KEY_BROWSE_FORWARD = 498 new KeyStrokeOption("key.browse.forward", 499 KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, InputEvent.ALT_MASK|InputEvent.SHIFT_MASK)); 500 501 504 public static final KeyStrokeOption KEY_BROWSE_BACK = 505 new KeyStrokeOption("key.browse.back", 506 KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, InputEvent.ALT_MASK|InputEvent.SHIFT_MASK)); 507 508 511 public static final KeyStrokeOption KEY_PREFERENCES = 512 new KeyStrokeOption("key.preferences", 513 KeyStroke.getKeyStroke(KeyEvent.VK_SEMICOLON, mask)); 514 515 518 public static final KeyStrokeOption KEY_COMPILE = 519 new KeyStrokeOption("key.compile", KeyStroke.getKeyStroke(KeyEvent.VK_F5, InputEvent.SHIFT_MASK)); 520 521 524 public static final KeyStrokeOption KEY_COMPILE_ALL = 525 new KeyStrokeOption("key.compile.all", KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0)); 526 527 530 public static final KeyStrokeOption KEY_RUN = 531 new KeyStrokeOption("key.run", KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0)); 532 533 536 public static final KeyStrokeOption KEY_RUN_MAIN = 537 new KeyStrokeOption("key.run.main", KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0)); 538 539 542 public static final KeyStrokeOption KEY_TEST = 543 new KeyStrokeOption("key.test", 544 KeyStroke.getKeyStroke(KeyEvent.VK_T, mask | InputEvent.SHIFT_MASK)); 545 546 549 public static final KeyStrokeOption KEY_TEST_ALL = 550 new KeyStrokeOption("key.test.all", KeyStroke.getKeyStroke(KeyEvent.VK_T, mask)); 551 552 555 public static final KeyStrokeOption KEY_JAVADOC_ALL = 556 new KeyStrokeOption("key.javadoc.all", KeyStroke.getKeyStroke(KeyEvent.VK_J, mask)); 557 558 561 public static final KeyStrokeOption KEY_JAVADOC_CURRENT = 562 new KeyStrokeOption("key.javadoc.current", 563 KeyStroke.getKeyStroke(KeyEvent.VK_J, mask | InputEvent.SHIFT_MASK)); 564 565 568 public static final KeyStrokeOption KEY_EXECUTE_HISTORY = 569 new KeyStrokeOption("key.execute.history", KeyStrokeOption.NULL_KEYSTROKE); 570 571 574 public static final KeyStrokeOption KEY_LOAD_HISTORY_SCRIPT = 575 new KeyStrokeOption("key.load.history.script", KeyStrokeOption.NULL_KEYSTROKE); 576 577 580 public static final KeyStrokeOption KEY_SAVE_HISTORY = 581 new KeyStrokeOption("key.save.history", KeyStrokeOption.NULL_KEYSTROKE); 582 583 586 public static final KeyStrokeOption KEY_CLEAR_HISTORY = 587 new KeyStrokeOption("key.clear.history", KeyStrokeOption.NULL_KEYSTROKE); 588 589 592 public static final KeyStrokeOption KEY_RESET_INTERACTIONS = 593 new KeyStrokeOption("key.reset.interactions", KeyStrokeOption.NULL_KEYSTROKE); 594 595 598 public static final KeyStrokeOption KEY_VIEW_INTERACTIONS_CLASSPATH = 599 new KeyStrokeOption("key.view.interactions.classpath", KeyStrokeOption.NULL_KEYSTROKE); 600 601 604 public static final KeyStrokeOption KEY_PRINT_INTERACTIONS = 605 new KeyStrokeOption("key.view.print.interactions", KeyStrokeOption.NULL_KEYSTROKE); 606 607 610 public static final KeyStrokeOption KEY_LIFT_CURRENT_INTERACTION = 611 new KeyStrokeOption("key.lift.current.interaction", KeyStrokeOption.NULL_KEYSTROKE); 612 613 620 621 624 public static final KeyStrokeOption KEY_CLEAR_CONSOLE = 625 new KeyStrokeOption("key.clear.console", KeyStrokeOption.NULL_KEYSTROKE); 626 627 630 public static final KeyStrokeOption KEY_PRINT_CONSOLE = 631 new KeyStrokeOption("key.view.print.console", KeyStrokeOption.NULL_KEYSTROKE); 632 633 636 public static final KeyStrokeOption KEY_BACKWARD = 637 new KeyStrokeOption("key.backward", KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0)); 638 639 642 public static final KeyStrokeOption KEY_BEGIN_DOCUMENT = 643 new KeyStrokeOption("key.begin.document", KeyStroke.getKeyStroke(KeyEvent.VK_HOME, mask)); 644 645 648 public static final KeyStrokeOption KEY_BEGIN_LINE = 649 new KeyStrokeOption("key.begin.line", KeyStroke.getKeyStroke(KeyEvent.VK_HOME, 0)); 650 651 659 660 663 public static final KeyStrokeOption KEY_PREVIOUS_WORD = 664 new KeyStrokeOption("key.previous.word", KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, mask)); 665 666 669 public static final KeyStrokeOption KEY_DELETE_NEXT = 670 new KeyStrokeOption("key.delete.next", 671 KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0)); 672 675 public static final KeyStrokeOption KEY_DELETE_PREVIOUS = 676 new KeyStrokeOption("key.delete.previous", KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0)); 677 678 681 public static final KeyStrokeOption KEY_SHIFT_DELETE_NEXT = 682 new KeyStrokeOption("key.delete.next", 683 KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, InputEvent.SHIFT_MASK)); 684 687 public static final KeyStrokeOption KEY_SHIFT_DELETE_PREVIOUS = 688 new KeyStrokeOption("key.delete.previous", KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, InputEvent.SHIFT_MASK)); 689 690 693 public static final KeyStrokeOption KEY_DOWN = 694 new KeyStrokeOption("key.down", KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0)); 695 696 699 public static final KeyStrokeOption KEY_UP = 700 new KeyStrokeOption("key.up", KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0)); 701 702 705 public static final KeyStrokeOption KEY_END_DOCUMENT = 706 new KeyStrokeOption("key.end.document", 707 KeyStroke.getKeyStroke(KeyEvent.VK_END, mask)); 708 711 public static final KeyStrokeOption KEY_END_LINE = 712 new KeyStrokeOption("key.end.line", 713 KeyStroke.getKeyStroke(KeyEvent.VK_END, 0)); 714 715 719 720 public static final KeyStrokeOption KEY_NEXT_WORD = 721 new KeyStrokeOption("key.next.word", KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, mask)); 722 723 724 public static final KeyStrokeOption KEY_FORWARD = 725 new KeyStrokeOption("key.forward", KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0)); 726 727 728 public static final KeyStrokeOption KEY_PAGE_DOWN = 729 new KeyStrokeOption("key.page.down", KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, 0)); 730 731 732 public static final KeyStrokeOption KEY_PAGE_UP = 733 new KeyStrokeOption("key.page.up", KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, 0)); 734 735 736 public static final KeyStrokeOption KEY_CUT_LINE = 737 new KeyStrokeOption("key.cut.line", KeyStroke.getKeyStroke(KeyEvent.VK_K, (mask | InputEvent.ALT_MASK))); 738 739 740 public static final KeyStrokeOption KEY_CLEAR_LINE = 741 new KeyStrokeOption("key.clear.line", KeyStroke.getKeyStroke(KeyEvent.VK_K, mask)); 742 743 744 public static final KeyStrokeOption KEY_DEBUG_MODE_TOGGLE = 745 new KeyStrokeOption("key.debug.mode.toggle", KeyStroke.getKeyStroke(KeyEvent.VK_D, mask)); 746 747 751 752 public static final KeyStrokeOption KEY_DEBUG_RESUME = 753 new KeyStrokeOption("key.debug.resume", KeyStroke.getKeyStroke(KeyEvent.VK_F7, 0)); 754 755 756 public static final KeyStrokeOption KEY_DEBUG_STEP_INTO = 757 new KeyStrokeOption("key.debug.step.into", KeyStroke.getKeyStroke(KeyEvent.VK_F12, 0)); 758 759 760 public static final KeyStrokeOption KEY_DEBUG_STEP_OVER = 761 new KeyStrokeOption("key.debug.step.over", KeyStroke.getKeyStroke(KeyEvent.VK_F11, 0)); 762 763 764 public static final KeyStrokeOption KEY_DEBUG_STEP_OUT = 765 new KeyStrokeOption("key.debug.step.out", KeyStroke.getKeyStroke(KeyEvent.VK_F12, InputEvent.SHIFT_MASK)); 766 767 768 public static final KeyStrokeOption KEY_DEBUG_BREAKPOINT_TOGGLE = 769 new KeyStrokeOption("key.debug.breakpoint.toggle", KeyStroke.getKeyStroke(KeyEvent.VK_B, mask)); 770 771 772 public static final KeyStrokeOption KEY_DEBUG_BREAKPOINT_PANEL = 773 new KeyStrokeOption("key.debug.breakpoint.panel", KeyStroke.getKeyStroke(KeyEvent.VK_B, mask | InputEvent.SHIFT_MASK)); 774 775 776 public static final KeyStrokeOption KEY_DEBUG_CLEAR_ALL_BREAKPOINTS = 777 new KeyStrokeOption("key.debug.clear.all.breakpoints", KeyStrokeOption.NULL_KEYSTROKE); 778 779 780 public static final KeyStrokeOption KEY_BOOKMARKS_TOGGLE = 781 new KeyStrokeOption("key.bookmarks.toggle", KeyStroke.getKeyStroke(KeyEvent.VK_M, mask)); 782 783 784 public static final KeyStrokeOption KEY_BOOKMARKS_PANEL = 785 new KeyStrokeOption("key.bookmarks.panel", KeyStroke.getKeyStroke(KeyEvent.VK_M, mask | InputEvent.SHIFT_MASK)); 786 787 788 public static final KeyStrokeOption KEY_HELP = 789 new KeyStrokeOption("key.help", KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0)); 790 791 792 public static final KeyStrokeOption KEY_QUICKSTART = 793 new KeyStrokeOption("key.quickstart", KeyStrokeOption.NULL_KEYSTROKE); 794 795 796 public static final KeyStrokeOption KEY_ABOUT = 797 new KeyStrokeOption("key.about", KeyStrokeOption.NULL_KEYSTROKE); 798 799 800 public static final KeyStrokeOption KEY_DRJAVA_ERRORS = 801 new KeyStrokeOption("key.drjava.errors", KeyStrokeOption.NULL_KEYSTROKE); 802 803 804 805 806 public static final BooleanOption FIND_MATCH_CASE = 807 new BooleanOption("find.replace.match.case", Boolean.TRUE); 808 809 public static final BooleanOption FIND_SEARCH_BACKWARDS = 810 new BooleanOption("find.replace.search.backwards", Boolean.FALSE); 811 812 public static final BooleanOption FIND_WHOLE_WORD = 813 new BooleanOption("find.replace.whole.word", Boolean.FALSE); 814 815 public static final BooleanOption FIND_ALL_DOCUMENTS = 816 new BooleanOption("find.replace.all.documents", Boolean.FALSE); 817 818 public static final BooleanOption FIND_NO_COMMENTS_STRINGS = 819 new BooleanOption("find.replace.no.comments.strings", Boolean.FALSE); 820 821 822 823 824 828 public static final VectorOption<File > DEBUG_SOURCEPATH = 829 new ClassPathOption().evaluate("debug.sourcepath"); 830 831 834 public static final BooleanOption DEBUG_STEP_JAVA = 835 new BooleanOption("debug.step.java", Boolean.FALSE); 836 837 840 public static final BooleanOption DEBUG_STEP_INTERPRETER = 841 new BooleanOption("debug.step.interpreter", Boolean.FALSE); 842 843 846 public static final BooleanOption DEBUG_STEP_DRJAVA = 847 new BooleanOption("debug.step.drjava", Boolean.FALSE); 848 849 852 public static final StringOption DEBUG_STEP_EXCLUDE = 853 new StringOption("debug.step.exclude", ""); 854 855 856 857 858 859 862 static final ArrayList <String > accessLevelChoices = 863 AccessLevelChoices.evaluate(); 864 static class AccessLevelChoices { 865 public static ArrayList <String > evaluate() { 866 ArrayList <String > aList = new ArrayList <String >(4); 867 aList.add("public"); 868 aList.add("protected"); 869 aList.add("package"); 870 aList.add("private"); 871 return aList; 872 } 873 } 874 875 876 public static final ForcedChoiceOption JAVADOC_ACCESS_LEVEL = 877 new ForcedChoiceOption("javadoc.access.level", "package", accessLevelChoices); 878 879 880 static final String JAVADOC_NONE_TEXT = "none"; 881 static final String JAVADOC_1_3_TEXT = "1.3"; 882 static final String JAVADOC_1_4_TEXT = "1.4"; 883 static final String JAVADOC_1_5_TEXT = "1.5"; 884 885 static final String [] choices = new String []{JAVADOC_NONE_TEXT, JAVADOC_1_3_TEXT, JAVADOC_1_4_TEXT, JAVADOC_1_5_TEXT}; 886 887 static final ArrayList <String > linkVersionChoices = new ArrayList <String >(Arrays.asList(choices)); 888 889 890 public static final StringOption JAVADOC_1_3_LINK = 891 new StringOption("javadoc.1.3.link", "http://java.sun.com/j2se/1.3/docs/api"); 892 public static final StringOption JAVADOC_1_4_LINK = 893 new StringOption("javadoc.1.4.link", "http://java.sun.com/j2se/1.4/docs/api"); 894 public static final StringOption JAVADOC_1_5_LINK = 895 new StringOption("javadoc.1.5.link", "http://java.sun.com/j2se/1.5/docs/api"); 896 897 898 public static final ForcedChoiceOption JAVADOC_LINK_VERSION = 899 new ForcedChoiceOption("javadoc.link.version", 900 (System.getProperty("java.specification.version").equals("1.3") ? JAVADOC_1_3_TEXT : 901 (System.getProperty("java.specification.version").equals("1.4") ? JAVADOC_1_4_TEXT : 902 JAVADOC_1_5_TEXT)), 903 linkVersionChoices); 904 905 906 public static final BooleanOption JAVADOC_FROM_ROOTS = new BooleanOption("javadoc.from.roots", Boolean.FALSE); 907 908 911 public static final StringOption JAVADOC_CUSTOM_PARAMS = 912 new StringOption("javadoc.custom.params", "-author -version"); 913 914 915 public static final FileOption JAVADOC_DESTINATION = new FileOption("javadoc.destination", FileOption.NULL_FILE); 916 917 918 public static final BooleanOption JAVADOC_PROMPT_FOR_DESTINATION = 919 new BooleanOption("javadoc.prompt.for.destination", Boolean.TRUE); 920 921 922 923 924 public static final BooleanOption INTERACTIONS_EXIT_PROMPT = 925 new BooleanOption("interactions.exit.prompt", Boolean.TRUE); 926 927 928 public static final BooleanOption QUIT_PROMPT = 929 new BooleanOption("quit.prompt", Boolean.TRUE); 930 931 932 public static final BooleanOption INTERACTIONS_RESET_PROMPT = 933 new BooleanOption("interactions.reset.prompt", Boolean.TRUE); 934 935 936 public static final BooleanOption ALWAYS_SAVE_BEFORE_COMPILE = 937 new BooleanOption("save.before.compile", Boolean.FALSE); 938 939 940 public static final BooleanOption ALWAYS_SAVE_BEFORE_RUN = 941 new BooleanOption("save.before.run", Boolean.FALSE); 942 943 944 public static final BooleanOption ALWAYS_COMPILE_BEFORE_JUNIT = 945 new BooleanOption("compile.before.junit", Boolean.FALSE); 946 947 950 public static final BooleanOption ALWAYS_SAVE_BEFORE_JAVADOC = 951 new BooleanOption("save.before.javadoc", Boolean.FALSE); 952 953 954 public static final BooleanOption ALWAYS_SAVE_BEFORE_DEBUG = 955 new BooleanOption("save.before.debug", Boolean.FALSE); 956 957 958 public static final BooleanOption WARN_BREAKPOINT_OUT_OF_SYNC = 959 new BooleanOption("warn.breakpoint.out.of.sync", Boolean.TRUE); 960 961 962 public static final BooleanOption WARN_DEBUG_MODIFIED_FILE = 963 new BooleanOption("warn.debug.modified.file", Boolean.TRUE); 964 965 966 public static final BooleanOption WARN_CHANGE_LAF = new BooleanOption("warn.change.laf", Boolean.TRUE); 967 968 969 public static final BooleanOption WARN_PATH_CONTAINS_POUND = 970 new BooleanOption("warn.path.contains.pound", Boolean.TRUE); 971 972 973 974 975 public static final BooleanOption PROMPT_BEFORE_CLEAN = new BooleanOption("prompt.before.clean", Boolean.TRUE); 976 977 978 public static final BooleanOption OPEN_FOLDER_RECURSIVE = new BooleanOption("open.folder.recursive", Boolean.FALSE); 979 980 981 public static final NonNegativeIntegerOption INDENT_LEVEL = 982 new NonNegativeIntegerOption("indent.level",new Integer (2)); 983 984 985 public static final NonNegativeIntegerOption HISTORY_MAX_SIZE = 986 new NonNegativeIntegerOption("history.max.size", new Integer (500)); 987 988 989 public static final NonNegativeIntegerOption RECENT_FILES_MAX_SIZE = 990 new NonNegativeIntegerOption("recent.files.max.size", new Integer (5)); 991 992 993 public static final BooleanOption AUTO_CLOSE_COMMENTS = 994 new BooleanOption("auto.close.comments", Boolean.FALSE); 995 996 997 public static final BooleanOption RESET_CLEAR_CONSOLE = 998 new BooleanOption("reset.clear.console", Boolean.TRUE); 999 1000 1001 public static final BooleanOption RUN_WITH_ASSERT = 1002 new BooleanOption("run.with.assert", Boolean.TRUE); 1003 1004 1005 public static final BooleanOption BACKUP_FILES = new BooleanOption("files.backup", Boolean.TRUE); 1006 1007 1008 public static final BooleanOption ALLOW_PRIVATE_ACCESS = new BooleanOption("allow.private.access", Boolean.FALSE); 1009 1010 1011 public static final BooleanOption FORCE_TEST_SUFFIX = new BooleanOption("force.test.suffix", Boolean.FALSE); 1012 1013 1014 1015 1016 public static final BooleanOption SHOW_UNCHECKED_WARNINGS = 1017 new BooleanOption("show.unchecked.warnings", Boolean.TRUE); 1018 1019 1020 public static final BooleanOption SHOW_DEPRECATION_WARNINGS = 1021 new BooleanOption("show.deprecation.warnings", Boolean.TRUE); 1022 1023 1024 public static final BooleanOption SHOW_FINALLY_WARNINGS = new BooleanOption("show.finally.warnings", Boolean.FALSE); 1025 1026 1027 public static final BooleanOption SHOW_SERIAL_WARNINGS = 1028 new BooleanOption("show.serial.warnings", Boolean.FALSE); 1029 1030 1031 public static final BooleanOption SHOW_FALLTHROUGH_WARNINGS = 1032 new BooleanOption("show.fallthrough.warnings", Boolean.FALSE); 1033 1034 1035 public static final BooleanOption SHOW_PATH_WARNINGS = 1036 new BooleanOption("show.path.warnings", Boolean.FALSE); 1037 1038 1039 1040 1041 public static final IntegerOption LANGUAGE_LEVEL = new IntegerOption("language.level", new Integer (0)); 1042 1043 1044 public static final VectorOption<File > RECENT_FILES = 1045 new VectorOption<File >("recent.files",new FileOption("",null),new Vector <File >()); 1046 1047 1048 public static final VectorOption<File > RECENT_PROJECTS = 1049 new VectorOption<File >("recent.projects",new FileOption("",null),new Vector <File >()); 1050 1051 1052 public static final BooleanOption SHOW_DEBUG_CONSOLE = new BooleanOption("show.debug.console", Boolean.FALSE); 1053 1054 1055 public static final NonNegativeIntegerOption WINDOW_HEIGHT = 1056 new NonNegativeIntegerOption("window.height",new Integer (700)); 1057 1058 1059 public static final NonNegativeIntegerOption WINDOW_WIDTH = 1060 new NonNegativeIntegerOption("window.width",new Integer (800)); 1061 1062 1065 public static final IntegerOption WINDOW_X = new IntegerOption("window.x", new Integer (Integer.MAX_VALUE)); 1066 1067 1070 public static final IntegerOption WINDOW_Y = new IntegerOption("window.y", new Integer (Integer.MAX_VALUE)); 1071 1072 1073 public static final NonNegativeIntegerOption DOC_LIST_WIDTH = 1074 new NonNegativeIntegerOption("doc.list.width",new Integer (150)); 1075 1076 1079 public static final NonNegativeIntegerOption TABS_HEIGHT = 1080 new NonNegativeIntegerOption("tabs.height",new Integer (120)); 1081 1082 1085 public static final NonNegativeIntegerOption DEBUG_PANEL_HEIGHT = 1086 new NonNegativeIntegerOption("debug.panel.height",new Integer (0)); 1087 1088 1089 public static final FileOption LAST_DIRECTORY = new FileOption("last.dir", FileOption.NULL_FILE); 1090 1091 1092 public static final FileOption LAST_INTERACTIONS_DIRECTORY = new FileOption("last.interactions.dir", FileOption.NULL_FILE); 1093 1094 1096 public static final BooleanOption STICKY_INTERACTIONS_DIRECTORY = 1097 new BooleanOption("sticky.interactions.dir", Boolean.TRUE); 1098 1099 1100 public static final StringOption MASTER_JVM_ARGS = new StringOption("master.jvm.args", ""); 1101 1102 1103 public static final StringOption SLAVE_JVM_ARGS = new StringOption("slave.jvm.args", ""); 1104 1105 1106 public static final StringOption DIALOG_CLIPBOARD_HISTORY_STATE = new StringOption("dialog.clipboard.history.state", "default"); 1107 1108 1109 public static final BooleanOption DIALOG_CLIPBOARD_HISTORY_STORE_POSITION = 1110 new BooleanOption("dialog.clipboardhistory.store.position", Boolean.TRUE); 1111 1112 1113 public static final NonNegativeIntegerOption CLIPBOARD_HISTORY_SIZE = 1114 new NonNegativeIntegerOption("clipboardhistory.store.size", 10); 1115 1116 1117 public static final StringOption DIALOG_GOTOFILE_STATE = new StringOption("dialog.gotofile.state", "default"); 1118 1119 1120 public static final BooleanOption DIALOG_GOTOFILE_STORE_POSITION = 1121 new BooleanOption("dialog.gotofile.store.position", Boolean.TRUE); 1122 1123 1124 public static final StringOption DIALOG_OPENJAVADOC_STATE = new StringOption("dialog.openjavadoc.state", "default"); 1125 1126 1127 public static final BooleanOption DIALOG_OPENJAVADOC_STORE_POSITION = 1128 new BooleanOption("dialog.openjavadoc.store.position", Boolean.TRUE); 1129 1130 1131 public static final NonNegativeIntegerOption BROWSER_HISTORY_MAX_SIZE = 1132 new NonNegativeIntegerOption("browser.history.max.size", new Integer (50)); 1133 1134 1137 public static final BooleanOption DIALOG_GOTOFILE_FULLY_QUALIFIED = 1138 new BooleanOption("dialog.gotofile.fully.qualified", Boolean.FALSE); 1139 1140 1141 public static final StringOption DIALOG_COMPLETE_WORD_STATE = new StringOption("dialog.completeword.state", "default"); 1142 1143 1144 public static final BooleanOption DIALOG_COMPLETE_WORD_STORE_POSITION = 1145 new BooleanOption("dialog.completeword.store.position", Boolean.TRUE); 1146 1147 1148 public static final BooleanOption DIALOG_COMPLETE_SCAN_CLASS_FILES = 1149 new BooleanOption("dialog.completeword.scan.class.files", Boolean.FALSE); 1150 1151 1153 public static final BooleanOption LIGHTWEIGHT_PARSING_ENABLED = 1154 new BooleanOption("lightweight.parsing.enabled", Boolean.FALSE); 1155 1156 1157 public static final NonNegativeIntegerOption DIALOG_LIGHTWEIGHT_PARSING_DELAY = 1158 new NonNegativeIntegerOption("lightweight.parsing.delay", new Integer (500)); 1159 1160 1161 public static final StringOption DIALOG_JAROPTIONS_STATE = new StringOption("dialog.jaroptions.state", "default"); 1162 1163 1164 public static final BooleanOption DIALOG_JAROPTIONS_STORE_POSITION = 1165 new BooleanOption("dialog.jaroptions.store.position", Boolean.TRUE); 1166 1167 1168 public static final BooleanOption FIND_REPLACE_FOCUS_IN_DEFPANE = 1169 new BooleanOption("find.replace.focus.in.defpane", Boolean.FALSE); 1170 1171 1172 public static final BooleanOption DIALOG_DRJAVA_ERROR_POPUP_ENABLED = 1173 new BooleanOption("dialog.drjava.error.popup.enabled", Boolean.TRUE); 1174 1175 1176 public static final BooleanOption SHOW_CODE_PREVIEW_POPUPS = 1177 new BooleanOption("show.code.preview.popups", Boolean.TRUE); 1178 1179 1180 public static final BooleanOption DRJAVA_USE_FORCE_QUIT = 1181 new BooleanOption("drjava.use.force.quit", Boolean.FALSE); 1182} 1183 | Popular Tags |