1 31 32 package org.antlr.works.prefs; 33 34 import com.jgoodies.forms.factories.Borders; 35 import com.jgoodies.forms.factories.FormFactory; 36 import com.jgoodies.forms.layout.*; 37 import org.antlr.works.IDE; 38 import org.antlr.works.ate.syntax.generic.ATESyntaxEngine; 39 import org.antlr.works.stats.StatisticsAW; 40 import org.antlr.works.utils.HelpManager; 41 import org.antlr.xjlib.appkit.app.XJApplication; 42 import org.antlr.xjlib.appkit.app.XJPreferences; 43 import org.antlr.xjlib.appkit.frame.XJPanel; 44 import org.antlr.xjlib.appkit.swing.XJLookAndFeel; 45 import org.antlr.xjlib.appkit.utils.XJFileChooser; 46 import org.antlr.xjlib.foundation.notification.XJNotificationCenter; 47 48 import javax.swing.*; 49 import javax.swing.border.LineBorder ; 50 import java.awt.*; 51 import java.awt.event.ActionEvent ; 52 import java.awt.event.ActionListener ; 53 54 public class AWPrefsDialog extends XJPanel { 55 56 public static final String NOTIF_PREFS_APPLIED = "NOTIF_PREFS_APPLIED"; 57 58 protected ButtonGroup compilerRadioButtonGroup; 59 protected int lafIndex = 0; 60 61 public AWPrefsDialog() { 62 super(); 63 64 initComponents(); 65 66 prepareGeneralTab(); 67 prepareEditorTab(); 68 prepareSyntaxTab(); 69 prepareCompilerTab(); 70 prepareDebuggerTab(); 71 prepareSCMTab(); 72 prepareUpdateTab(); 73 74 if(IDE.isPlugin()) 75 tabbedPane1.remove(tabSCM); 76 77 applyButton.addActionListener(new ActionListener () { 78 public void actionPerformed(ActionEvent event) { 79 apply(); 80 } 81 }); 82 } 83 84 public void prepareGeneralTab() { 85 browseOutputPathButton.addActionListener(new ActionListener () { 86 public void actionPerformed(ActionEvent event) { 87 if(XJFileChooser.shared().displayChooseDirectory(getJavaContainer())) { 88 outputPathField.setText(XJFileChooser.shared().getSelectedFilePath()); 89 AWPrefs.setOutputPath(outputPathField.getText()); 90 } 91 } 92 }); 93 94 browseDotToolPathButton.addActionListener(new ActionListener () { 95 public void actionPerformed(ActionEvent event) { 96 if(XJFileChooser.shared().displayOpenDialog(getJavaContainer(), false)) { 97 dotToolPathField.setText(XJFileChooser.shared().getSelectedFilePath()); 98 AWPrefs.setDOTToolPath(dotToolPathField.getText()); 99 } 100 } 101 }); 102 103 lafCombo.removeAllItems(); 104 UIManager.LookAndFeelInfo[] info = UIManager.getInstalledLookAndFeels(); 105 for (UIManager.LookAndFeelInfo anInfo : info) { 106 lafCombo.addItem(anInfo.getName()); 107 } 108 lafCombo.setEnabled(!IDE.isPlugin()); 109 110 getPreferences().bindToPreferences(startupActionCombo, AWPrefs.PREF_STARTUP_ACTION, AWPrefs.STARTUP_OPEN_LAST_OPENED_DOC); 111 getPreferences().bindToPreferences(restoreWindowsBoundButton, AWPrefs.PREF_RESTORE_WINDOWS, AWPrefs.DEFAULT_RESTORE_WINDOWS); 112 getPreferences().bindToPreferences(lafCombo, AWPrefs.PREF_LOOK_AND_FEEL, XJLookAndFeel.getDefaultLookAndFeelName()); 113 getPreferences().bindToPreferences(desktopModeButton, AWPrefs.PREF_DESKTOP_MODE, AWPrefs.DEFAULT_DESKTOP_MODE); 114 getPreferences().bindToPreferences(outputPathField, AWPrefs.PREF_OUTPUT_PATH, AWPrefs.DEFAULT_OUTPUT_PATH); 115 getPreferences().bindToPreferences(dotToolPathField, AWPrefs.PREF_DOT_TOOL_PATH, AWPrefs.DEFAULT_DOT_TOOL_PATH); 116 getPreferences().bindToPreferences(antlr3OptionsField, AWPrefs.PREF_ANTLR3_OPTIONS, AWPrefs.DEFAULT_ANTLR3_OPTIONS); 117 118 } 122 123 public void prepareEditorTab() { 124 129 130 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 131 String fontNames[] = ge.getAvailableFontFamilyNames(); 132 133 editorFontCombo.removeAllItems(); 134 for (String fontName : fontNames) { 135 editorFontCombo.addItem(fontName); 136 } 137 138 getPreferences().bindToPreferences(autoSaveButton, AWPrefs.PREF_AUTOSAVE_ENABLED, false); 139 getPreferences().bindToPreferences(autoSaveDelayField, AWPrefs.PREF_AUTOSAVE_DELAY, 5); 140 getPreferences().bindToPreferences(backupFileButton, AWPrefs.PREF_BACKUP_FILE_ENABLED, false); 141 getPreferences().bindToPreferences(highlightCursorLineButton, AWPrefs.PREF_HIGHLIGHTCURSORLINE, true); 142 getPreferences().bindToPreferences(tabWidthField, AWPrefs.PREF_TAB_WIDTH, AWPrefs.DEFAULT_TAB_WIDTH); 143 getPreferences().bindToPreferences(editorFontCombo, AWPrefs.PREF_EDITOR_FONT, AWPrefs.DEFAULT_EDITOR_FONT); 144 getPreferences().bindToPreferences(editorFontSizeSpinner, AWPrefs.PREF_EDITOR_FONT_SIZE, AWPrefs.DEFAULT_EDITOR_FONT_SIZE); 145 getPreferences().bindToPreferences(parserDelayField, AWPrefs.PREF_PARSER_DELAY, AWPrefs.DEFAULT_PARSER_DELAY); 146 getPreferences().bindToPreferences(autoIndentColonInRuleButton, AWPrefs.PREF_AUTO_IDENT_COLON_RULE, AWPrefs.DEFAULT_AUTO_INDENT_COLON_RULE); 147 getPreferences().bindToPreferences(showLineNumbers, AWPrefs.PREF_LINE_NUMBER, false); 148 getPreferences().bindToPreferences(vstyleAutocompletionButton, AWPrefs.PREF_VSTYLE_AUTOCOMPLETION, false); 149 getPreferences().bindToPreferences(smoothScrollingButton, AWPrefs.PREF_SMOOTH_SCROLLING, AWPrefs.DEFAULT_SMOOTH_SCROLLING); 152 } 153 154 public void bindSyntax(String identifier, JPanel colorPanel, JCheckBox bold, JCheckBox italic) { 155 getPreferences().bindToPreferences(colorPanel, AWPrefs.getSyntaxColorKey(identifier), AWPrefs.getSyntaxDefaultColor(identifier)); 156 getPreferences().bindToPreferences(bold, AWPrefs.getSyntaxBoldKey(identifier), AWPrefs.getSyntaxDefaultBold(identifier)); 157 getPreferences().bindToPreferences(italic, AWPrefs.getSyntaxItalicKey(identifier), AWPrefs.getSyntaxDefaultItalic(identifier)); 158 } 159 160 public void defaultSyntax(String identifier, JPanel colorPanel, JCheckBox bold, JCheckBox italic) { 161 getPreferences().defaultPreference(colorPanel, AWPrefs.getSyntaxColorKey(identifier), AWPrefs.getSyntaxDefaultColor(identifier)); 162 getPreferences().defaultPreference(bold, AWPrefs.getSyntaxBoldKey(identifier), AWPrefs.getSyntaxDefaultBold(identifier)); 163 getPreferences().defaultPreference(italic, AWPrefs.getSyntaxItalicKey(identifier), AWPrefs.getSyntaxDefaultItalic(identifier)); 164 } 165 166 public void prepareSyntaxTab() { 167 syntaxDefaultButton.addActionListener(new ActionListener () { 168 public void actionPerformed(ActionEvent e) { 169 defaultSyntax(AWPrefs.PREF_SYNTAX_PARSER, parserColorPanel, parserBoldButton, parserItalicButton); 170 defaultSyntax(AWPrefs.PREF_SYNTAX_LEXER, lexerColorPanel, lexerBoldButton, lexerItalicButton); 171 defaultSyntax(AWPrefs.PREF_SYNTAX_LABEL, labelColorPanel, labelsBoldButton, labelsItalicButton); 172 defaultSyntax(AWPrefs.PREF_SYNTAX_REFS, refsActionColorPanel, refsActionBoldButton, refsActionItalicButton); 173 defaultSyntax(AWPrefs.PREF_SYNTAX_COMMENT, commentsColorPanel, commentsBoldButton, commentsItalicButton); 174 defaultSyntax(AWPrefs.PREF_SYNTAX_STRING, stringsColorPanel, stringsBoldButton, stringsItalicButton); 175 defaultSyntax(AWPrefs.PREF_SYNTAX_KEYWORD, keywordsColorPanel, keywordsBoldButton, keywordsItalicButton); 176 } 177 }); 178 179 bindSyntax(AWPrefs.PREF_SYNTAX_PARSER, parserColorPanel, parserBoldButton, parserItalicButton); 180 bindSyntax(AWPrefs.PREF_SYNTAX_LEXER, lexerColorPanel, lexerBoldButton, lexerItalicButton); 181 bindSyntax(AWPrefs.PREF_SYNTAX_LABEL, labelColorPanel, labelsBoldButton, labelsItalicButton); 182 bindSyntax(AWPrefs.PREF_SYNTAX_REFS, refsActionColorPanel, refsActionBoldButton, refsActionItalicButton); 183 bindSyntax(AWPrefs.PREF_SYNTAX_COMMENT, commentsColorPanel, commentsBoldButton, commentsItalicButton); 184 bindSyntax(AWPrefs.PREF_SYNTAX_STRING, stringsColorPanel, stringsBoldButton, stringsItalicButton); 185 bindSyntax(AWPrefs.PREF_SYNTAX_KEYWORD, keywordsColorPanel, keywordsBoldButton, keywordsItalicButton); 186 } 187 188 public void prepareCompilerTab() { 189 javacCustomPathButton.addActionListener(new ActionListener () { 190 public void actionPerformed(ActionEvent e) { 191 javacPathField.setEnabled(javacCustomPathButton.isSelected()); 192 browseJavacPath.setEnabled(javacCustomPathButton.isSelected()); 193 } 194 }); 195 196 browseJavacPath.addActionListener(new ActionListener () { 197 public void actionPerformed(ActionEvent event) { 198 if(XJFileChooser.shared().displayChooseDirectory(getJavaContainer())) { 199 javacPathField.setText(XJFileChooser.shared().getSelectedFilePath()); 200 AWPrefs.setJavaCPath(javacPathField.getText()); 201 } 202 } 203 }); 204 205 browseJikesPath.addActionListener(new ActionListener () { 206 public void actionPerformed(ActionEvent event) { 207 if(XJFileChooser.shared().displayChooseDirectory(getJavaContainer())) { 208 jikesPathField.setText(XJFileChooser.shared().getSelectedFilePath()); 209 AWPrefs.setJikesPath(jikesPathField.getText()); 210 } 211 } 212 }); 213 214 classpathCustomButton.addActionListener(new ActionListener () { 215 public void actionPerformed(ActionEvent event) { 216 customClasspathField.setEnabled(classpathCustomButton.isSelected()); 217 browseCustomClassPathButton.setEnabled(classpathCustomButton.isSelected()); 218 } 219 }); 220 221 browseCustomClassPathButton.addActionListener(new ActionListener () { 222 public void actionPerformed(ActionEvent event) { 223 if(XJFileChooser.shared().displayChooseDirectory(getJavaContainer())) { 224 customClasspathField.setText(XJFileChooser.shared().getSelectedFilePath()); 225 AWPrefs.setCustomClassPath(customClasspathField.getText()); 226 } 227 } 228 }); 229 230 compilerRadioButtonGroup = new ButtonGroup(); 231 compilerRadioButtonGroup.add(jikesRadio); 232 compilerRadioButtonGroup.add(integratedRadio); 233 compilerRadioButtonGroup.add(javacRadio); 234 235 integratedRadio.setActionCommand("integrated"); 236 javacRadio.setActionCommand("javac"); 237 jikesRadio.setActionCommand("jikes"); 238 239 getPreferences().bindToPreferences(javacCustomPathButton, AWPrefs.PREF_JAVAC_CUSTOM_PATH, AWPrefs.DEFAULT_JAVAC_CUSTOM_PATH); 240 getPreferences().bindToPreferences(javacPathField, AWPrefs.PREF_JAVAC_PATH, AWPrefs.DEFAULT_JAVAC_PATH); 241 getPreferences().bindToPreferences(jikesPathField, AWPrefs.PREF_JIKES_PATH, AWPrefs.DEFAULT_JIKES_PATH); 242 getPreferences().bindToPreferences(compilerRadioButtonGroup, AWPrefs.PREF_COMPILER, AWPrefs.DEFAULT_COMPILER); 243 244 getPreferences().bindToPreferences(classpathSystemButton, AWPrefs.PREF_CLASSPATH_SYSTEM, AWPrefs.DEFAULT_CLASSPATH_SYSTEM); 245 getPreferences().bindToPreferences(classpathCustomButton, AWPrefs.PREF_CLASSPATH_CUSTOM, AWPrefs.DEFAULT_CLASSPATH_CUSTOM); 246 getPreferences().bindToPreferences(customClasspathField, AWPrefs.PREF_CUSTOM_CLASS_PATH, AWPrefs.DEFAULT_PREF_CUSTOM_CLASS_PATH); 247 } 248 249 public void prepareDebuggerTab() { 250 getPreferences().bindToPreferences(debugDefaultLocalPortField, AWPrefs.PREF_DEBUG_LOCALPORT, AWPrefs.DEFAULT_DEBUG_LOCALPORT); 251 getPreferences().bindToPreferences(debugLaunchTimeoutField, AWPrefs.PREF_DEBUG_LAUNCHTIMEOUT, AWPrefs.DEFAULT_DEBUG_LAUNCHTIMEOUT); 252 253 getPreferences().bindToPreferences(debugNonConsumedColorPanel, AWPrefs.PREF_NONCONSUMED_TOKEN_COLOR, AWPrefs.DEFAULT_NONCONSUMED_TOKEN_COLOR); 254 getPreferences().bindToPreferences(debugConsumedColorPanel, AWPrefs.PREF_CONSUMED_TOKEN_COLOR, AWPrefs.DEFAULT_CONSUMED_TOKEN_COLOR); 255 getPreferences().bindToPreferences(debugHiddenColorPanel, AWPrefs.PREF_HIDDEN_TOKEN_COLOR, AWPrefs.DEFAULT_HIDDEN_TOKEN_COLOR); 256 getPreferences().bindToPreferences(debugDeadColorPanel, AWPrefs.PREF_DEAD_TOKEN_COLOR, AWPrefs.DEFAULT_DEAD_TOKEN_COLOR); 257 getPreferences().bindToPreferences(debugLTColorPanel, AWPrefs.PREF_LOOKAHEAD_TOKEN_COLOR, AWPrefs.DEFAULT_LOOKAHEAD_TOKEN_COLOR); 258 259 getPreferences().bindToPreferences(detachablePanelChildrenButton, AWPrefs.PREF_DETACHABLE_CHILDREN, AWPrefs.DEFAULT_DETACHABLE_CHILDREN); 260 getPreferences().bindToPreferences(askGenButton, AWPrefs.PREF_DEBUGGER_ASK_GEN, AWPrefs.DEFAULT_DEBUGGER_ASK_GEN); 261 } 262 263 public void prepareSCMTab() { 264 getPreferences().bindToPreferences(enablePerforceCheckBox, AWPrefs.PREF_SCM_P4_ENABLED, false); 265 getPreferences().bindToPreferences(p4PortField, AWPrefs.PREF_SCM_P4_PORT, ""); 266 getPreferences().bindToPreferences(p4UserField, AWPrefs.PREF_SCM_P4_USER, ""); 267 getPreferences().bindToPreferences(p4PasswordField, AWPrefs.PREF_SCM_P4_PASSWORD, ""); 268 getPreferences().bindToPreferences(p4ClientField, AWPrefs.PREF_SCM_P4_CLIENT, ""); 269 getPreferences().bindToPreferences(p4ExecPathField, AWPrefs.PREF_SCM_P4_EXEC, ""); 270 } 271 272 public void prepareUpdateTab() { 273 browseUpdateDownloadPathButton.addActionListener(new ActionListener () { 274 public void actionPerformed(ActionEvent event) { 275 if(XJFileChooser.shared().displayChooseDirectory(getJavaContainer())) { 276 downloadPathField.setText(XJFileChooser.shared().getSelectedFilePath()); 277 AWPrefs.setDownloadPath(downloadPathField.getText()); 278 } 279 } 280 }); 281 282 checkForUpdatesButton.addActionListener(new ActionListener () { 283 public void actionPerformed(ActionEvent event) { 284 HelpManager.checkUpdates(getJavaContainer(), false); 285 } 286 }); 287 288 getPreferences().bindToPreferences(updateTypeCombo, AWPrefs.PREF_UPDATE_TYPE, AWPrefs.DEFAULT_UPDATE_TYPE); 289 getPreferences().bindToPreferences(downloadPathField, AWPrefs.PREF_DOWNLOAD_PATH, AWPrefs.DEFAULT_DOWNLOAD_PATH); 290 } 291 292 public void becomingVisibleForTheFirstTime() { 293 lafIndex = lafCombo.getSelectedIndex(); 294 javacPathField.setEnabled(javacCustomPathButton.isSelected()); 295 browseJavacPath.setEnabled(javacCustomPathButton.isSelected()); 296 customClasspathField.setEnabled(classpathCustomButton.isSelected()); 297 browseCustomClassPathButton.setEnabled(classpathCustomButton.isSelected()); 298 StatisticsAW.shared().recordEvent(StatisticsAW.EVENT_SHOW_PREFERENCES); 301 } 302 303 public void close() { 304 apply(); 305 super.close(); 306 } 307 308 public boolean isAuxiliaryWindow() { 309 return true; 310 } 311 312 public static void applyCommonPrefs() { 313 ATESyntaxEngine.setDelay(AWPrefs.getParserDelay()); 316 XJApplication.setAutoSave(AWPrefs.getAutoSaveEnabled(), AWPrefs.getAutoSaveDelay()); 317 } 318 319 public JComponent getComponent() { 320 return tabbedPane1; 321 } 322 323 public void apply() { 324 dialogPane.requestFocusInWindow(); 325 getPreferences().applyPreferences(); 326 if(lafIndex != lafCombo.getSelectedIndex()) { 327 lafIndex = lafCombo.getSelectedIndex(); 328 if(!IDE.isPlugin()) 329 changeLookAndFeel(); 330 } 331 applyCommonPrefs(); 332 XJNotificationCenter.defaultCenter().postNotification(this, NOTIF_PREFS_APPLIED); 333 } 334 335 private void changeLookAndFeel() { 336 XJLookAndFeel.applyLookAndFeel(AWPrefs.getLookAndFeel()); 337 } 338 339 private static XJPreferences getPreferences() { 340 return XJApplication.shared().getPreferences(); 341 } 342 343 public boolean shouldDisplayMainMenuBar() { 344 return super.shouldDisplayMainMenuBar() && !IDE.isPlugin(); 345 } 346 347 private void initComponents() { 348 dialogPane = new JPanel(); 351 contentPane = new JPanel(); 352 tabbedPane1 = new JTabbedPane(); 353 tabGeneral = new JPanel(); 354 label2 = new JLabel(); 355 label5 = new JLabel(); 356 lafCombo = new JComboBox(); 357 startupActionCombo = new JComboBox(); 358 restoreWindowsBoundButton = new JCheckBox(); 359 desktopModeButton = new JCheckBox(); 360 label25 = new JLabel(); 361 outputPathField = new JTextField(); 362 browseOutputPathButton = new JButton(); 363 label24 = new JLabel(); 364 dotToolPathField = new JTextField(); 365 browseDotToolPathButton = new JButton(); 366 label37 = new JLabel(); 367 antlr3OptionsField = new JTextField(); 368 tabEditor = new JPanel(); 369 label3 = new JLabel(); 370 editorFontCombo = new JComboBox(); 371 editorFontSizeSpinner = new JSpinner(); 372 autoSaveButton = new JCheckBox(); 373 autoSaveDelayField = new JTextField(); 374 label11 = new JLabel(); 375 backupFileButton = new JCheckBox(); 376 highlightCursorLineButton = new JCheckBox(); 377 smoothScrollingButton = new JCheckBox(); 378 autoIndentColonInRuleButton = new JCheckBox(); 379 showLineNumbers = new JCheckBox(); 380 vstyleAutocompletionButton = new JCheckBox(); 381 label1 = new JLabel(); 382 tabWidthField = new JTextField(); 383 label22 = new JLabel(); 384 parserDelayField = new JTextField(); 385 label23 = new JLabel(); 386 tabSyntax = new JPanel(); 387 label26 = new JLabel(); 388 parserColorPanel = new JPanel(); 389 parserBoldButton = new JCheckBox(); 390 parserItalicButton = new JCheckBox(); 391 label27 = new JLabel(); 392 lexerColorPanel = new JPanel(); 393 lexerBoldButton = new JCheckBox(); 394 lexerItalicButton = new JCheckBox(); 395 label28 = new JLabel(); 396 labelColorPanel = new JPanel(); 397 labelsBoldButton = new JCheckBox(); 398 labelsItalicButton = new JCheckBox(); 399 label29 = new JLabel(); 400 refsActionColorPanel = new JPanel(); 401 refsActionBoldButton = new JCheckBox(); 402 refsActionItalicButton = new JCheckBox(); 403 label30 = new JLabel(); 404 commentsColorPanel = new JPanel(); 405 commentsBoldButton = new JCheckBox(); 406 commentsItalicButton = new JCheckBox(); 407 label31 = new JLabel(); 408 stringsColorPanel = new JPanel(); 409 stringsBoldButton = new JCheckBox(); 410 stringsItalicButton = new JCheckBox(); 411 label32 = new JLabel(); 412 keywordsColorPanel = new JPanel(); 413 keywordsBoldButton = new JCheckBox(); 414 syntaxDefaultButton = new JButton(); 415 keywordsItalicButton = new JCheckBox(); 416 tabCompiler = new JPanel(); 417 jikesRadio = new JRadioButton(); 418 integratedRadio = new JRadioButton(); 419 javacRadio = new JRadioButton(); 420 javacCustomPathButton = new JCheckBox(); 421 javacPathField = new JTextField(); 422 browseJavacPath = new JButton(); 423 label4 = new JLabel(); 424 jikesPathField = new JTextField(); 425 browseJikesPath = new JButton(); 426 label9 = new JLabel(); 427 classpathSystemButton = new JCheckBox(); 428 classpathCustomButton = new JCheckBox(); 429 customClasspathField = new JTextField(); 430 browseCustomClassPathButton = new JButton(); 431 tabDebugger = new JPanel(); 432 label33 = new JLabel(); 433 debugDefaultLocalPortField = new JTextField(); 434 label34 = new JLabel(); 435 debugLaunchTimeoutField = new JTextField(); 436 label35 = new JLabel(); 437 label12 = new JLabel(); 438 debugNonConsumedColorPanel = new JPanel(); 439 label13 = new JLabel(); 440 debugConsumedColorPanel = new JPanel(); 441 label14 = new JLabel(); 442 debugHiddenColorPanel = new JPanel(); 443 label15 = new JLabel(); 444 debugDeadColorPanel = new JPanel(); 445 label16 = new JLabel(); 446 debugLTColorPanel = new JPanel(); 447 label36 = new JLabel(); 448 detachablePanelChildrenButton = new JCheckBox(); 449 askGenButton = new JCheckBox(); 450 tabSCM = new JPanel(); 451 enablePerforceCheckBox = new JCheckBox(); 452 label18 = new JLabel(); 453 p4PortField = new JTextField(); 454 label19 = new JLabel(); 455 p4UserField = new JTextField(); 456 label21 = new JLabel(); 457 p4PasswordField = new JPasswordField(); 458 label20 = new JLabel(); 459 p4ClientField = new JTextField(); 460 label17 = new JLabel(); 461 p4ExecPathField = new JTextField(); 462 tabUpdates = new JPanel(); 463 label7 = new JLabel(); 464 updateTypeCombo = new JComboBox(); 465 checkForUpdatesButton = new JButton(); 466 label10 = new JLabel(); 467 downloadPathField = new JTextField(); 468 browseUpdateDownloadPathButton = new JButton(); 469 buttonBar = new JPanel(); 470 applyButton = new JButton(); 471 CellConstraints cc = new CellConstraints(); 472 473 setTitle("Preferences"); 475 Container contentPane2 = getContentPane(); 476 contentPane2.setLayout(new BorderLayout()); 477 478 { 480 dialogPane.setBorder(Borders.DIALOG_BORDER); 481 dialogPane.setMinimumSize(new Dimension(540, 350)); 482 dialogPane.setLayout(new BorderLayout()); 483 484 { 486 contentPane.setLayout(new FormLayout( 487 "default, default:grow", 488 "fill:default:grow")); 489 490 { 492 493 { 495 tabGeneral.setLayout(new FormLayout( 496 new ColumnSpec[] { 497 new ColumnSpec(Sizes.dluX(10)), 498 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 499 new ColumnSpec(ColumnSpec.RIGHT, Sizes.DEFAULT, FormSpec.NO_GROW), 500 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 501 new ColumnSpec("max(min;20dlu)"), 502 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 503 new ColumnSpec(ColumnSpec.FILL, Sizes.DEFAULT, FormSpec.DEFAULT_GROW), 504 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 505 new ColumnSpec("max(min;40dlu)"), 506 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 507 new ColumnSpec(Sizes.dluX(10)) 508 }, 509 new RowSpec[] { 510 new RowSpec(Sizes.dluY(10)), 511 FormFactory.LINE_GAP_ROWSPEC, 512 FormFactory.DEFAULT_ROWSPEC, 513 FormFactory.LINE_GAP_ROWSPEC, 514 FormFactory.DEFAULT_ROWSPEC, 515 FormFactory.LINE_GAP_ROWSPEC, 516 FormFactory.DEFAULT_ROWSPEC, 517 FormFactory.LINE_GAP_ROWSPEC, 518 FormFactory.DEFAULT_ROWSPEC, 519 FormFactory.LINE_GAP_ROWSPEC, 520 FormFactory.DEFAULT_ROWSPEC, 521 FormFactory.LINE_GAP_ROWSPEC, 522 FormFactory.DEFAULT_ROWSPEC, 523 FormFactory.LINE_GAP_ROWSPEC, 524 FormFactory.DEFAULT_ROWSPEC, 525 FormFactory.LINE_GAP_ROWSPEC, 526 FormFactory.DEFAULT_ROWSPEC 527 })); 528 529 label2.setText("At startup:"); 531 tabGeneral.add(label2, cc.xy(3, 3)); 532 533 label5.setText("Look and feel:"); 535 tabGeneral.add(label5, cc.xy(3, 7)); 536 tabGeneral.add(lafCombo, cc.xywh(5, 7, 3, 1)); 537 538 startupActionCombo.setModel(new DefaultComboBoxModel(new String [] { 540 "Create a new document", 541 "Open the last opened document", 542 "Open the last saved document", 543 "Open all opened documents when ANTLRWorks was closed" 544 })); 545 tabGeneral.add(startupActionCombo, cc.xywh(5, 3, 3, 1)); 546 547 restoreWindowsBoundButton.setText("Restore project's windows position and size"); 549 tabGeneral.add(restoreWindowsBoundButton, cc.xywh(5, 5, 3, 1)); 550 551 desktopModeButton.setText("Desktop Mode"); 553 desktopModeButton.setToolTipText("This option will take effect after restarting ANTLRWorks"); 554 tabGeneral.add(desktopModeButton, cc.xywh(5, 9, 3, 1)); 555 556 label25.setText("Output path:"); 558 tabGeneral.add(label25, cc.xy(3, 11)); 559 560 outputPathField.setToolTipText("Absolute path to the DOT command-line tool"); 562 tabGeneral.add(outputPathField, cc.xywh(5, 11, 3, 1)); 563 564 browseOutputPathButton.setText("Browse..."); 566 tabGeneral.add(browseOutputPathButton, cc.xy(9, 11)); 567 568 label24.setText("DOT path:"); 570 tabGeneral.add(label24, cc.xy(3, 13)); 571 572 dotToolPathField.setToolTipText("Absolute path to the DOT command-line tool"); 574 tabGeneral.add(dotToolPathField, cc.xywh(5, 13, 3, 1)); 575 576 browseDotToolPathButton.setText("Browse..."); 578 tabGeneral.add(browseDotToolPathButton, cc.xy(9, 13)); 579 580 label37.setText("ANTLR options:"); 582 tabGeneral.add(label37, cc.xy(3, 15)); 583 tabGeneral.add(antlr3OptionsField, cc.xywh(5, 15, 3, 1)); 584 } 585 tabbedPane1.addTab("General", tabGeneral); 586 587 588 { 590 tabEditor.setLayout(new FormLayout( 591 new ColumnSpec[] { 592 new ColumnSpec(Sizes.dluX(10)), 593 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 594 new ColumnSpec(ColumnSpec.RIGHT, Sizes.DEFAULT, FormSpec.NO_GROW), 595 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 596 new ColumnSpec(Sizes.dluX(20)), 597 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 598 new ColumnSpec("max(default;45dlu)"), 599 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 600 new ColumnSpec(Sizes.dluX(20)), 601 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 602 new ColumnSpec(Sizes.dluX(30)), 603 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 604 new ColumnSpec(Sizes.dluX(10)) 605 }, 606 new RowSpec[] { 607 new RowSpec(Sizes.dluY(10)), 608 FormFactory.LINE_GAP_ROWSPEC, 609 FormFactory.DEFAULT_ROWSPEC, 610 FormFactory.LINE_GAP_ROWSPEC, 611 FormFactory.DEFAULT_ROWSPEC, 612 FormFactory.LINE_GAP_ROWSPEC, 613 FormFactory.DEFAULT_ROWSPEC, 614 FormFactory.LINE_GAP_ROWSPEC, 615 FormFactory.DEFAULT_ROWSPEC, 616 FormFactory.LINE_GAP_ROWSPEC, 617 FormFactory.DEFAULT_ROWSPEC, 618 FormFactory.LINE_GAP_ROWSPEC, 619 FormFactory.DEFAULT_ROWSPEC, 620 FormFactory.LINE_GAP_ROWSPEC, 621 FormFactory.DEFAULT_ROWSPEC, 622 FormFactory.LINE_GAP_ROWSPEC, 623 FormFactory.DEFAULT_ROWSPEC, 624 FormFactory.LINE_GAP_ROWSPEC, 625 FormFactory.DEFAULT_ROWSPEC, 626 FormFactory.LINE_GAP_ROWSPEC, 627 FormFactory.DEFAULT_ROWSPEC, 628 FormFactory.LINE_GAP_ROWSPEC, 629 new RowSpec(Sizes.dluY(10)) 630 })); 631 632 label3.setText("Font:"); 634 tabEditor.add(label3, cc.xy(3, 3)); 635 636 editorFontCombo.setActionCommand("editorFontCombo"); 638 tabEditor.add(editorFontCombo, cc.xywh(5, 3, 5, 1)); 639 640 editorFontSizeSpinner.setModel(new SpinnerNumberModel(12, 8, null, 1)); 642 tabEditor.add(editorFontSizeSpinner, cc.xy(11, 3)); 643 644 autoSaveButton.setText("Auto-save every"); 646 tabEditor.add(autoSaveButton, cc.xywh(5, 5, 3, 1)); 647 tabEditor.add(autoSaveDelayField, cc.xy(9, 5)); 648 649 label11.setText("minutes"); 651 tabEditor.add(label11, cc.xy(11, 5)); 652 653 backupFileButton.setText("Create backup file"); 655 tabEditor.add(backupFileButton, cc.xywh(5, 7, 5, 1)); 656 657 highlightCursorLineButton.setText("Highlight cursor line"); 659 tabEditor.add(highlightCursorLineButton, cc.xywh(5, 9, 5, 1)); 660 661 smoothScrollingButton.setText("Smooth scrolling"); 663 tabEditor.add(smoothScrollingButton, cc.xywh(5, 11, 3, 1)); 664 665 autoIndentColonInRuleButton.setText("Auto-indent ':' in rule"); 667 tabEditor.add(autoIndentColonInRuleButton, cc.xywh(5, 13, 7, 1)); 668 669 showLineNumbers.setText("Show line numbers"); 671 tabEditor.add(showLineNumbers, cc.xywh(5, 15, 5, 1)); 672 673 vstyleAutocompletionButton.setText("Visual Studio auto-completion menu"); 675 vstyleAutocompletionButton.setToolTipText("Displayed when a space is pressed, remember previous auto-completed word, continues to auto-complete without decreasing the word choice as you type"); 676 tabEditor.add(vstyleAutocompletionButton, cc.xywh(5, 17, 9, 1)); 677 678 label1.setText("Tab width:"); 680 label1.setHorizontalAlignment(SwingConstants.RIGHT); 681 tabEditor.add(label1, cc.xy(3, 19)); 682 683 tabWidthField.setText("8"); 685 tabEditor.add(tabWidthField, cc.xy(5, 19)); 686 687 label22.setText("Update delay:"); 689 tabEditor.add(label22, cc.xy(3, 21)); 690 691 parserDelayField.setText("250"); 693 tabEditor.add(parserDelayField, cc.xy(5, 21)); 694 695 label23.setText("ms"); 697 tabEditor.add(label23, cc.xy(7, 21)); 698 } 699 tabbedPane1.addTab("Editor", tabEditor); 700 701 702 { 704 tabSyntax.setLayout(new FormLayout( 705 new ColumnSpec[] { 706 new ColumnSpec(Sizes.dluX(10)), 707 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 708 new ColumnSpec(ColumnSpec.RIGHT, Sizes.DEFAULT, FormSpec.NO_GROW), 709 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 710 FormFactory.DEFAULT_COLSPEC, 711 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 712 FormFactory.DEFAULT_COLSPEC, 713 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 714 FormFactory.DEFAULT_COLSPEC, 715 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 716 new ColumnSpec(Sizes.dluX(20)), 717 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 718 FormFactory.DEFAULT_COLSPEC, 719 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 720 new ColumnSpec(ColumnSpec.FILL, Sizes.DEFAULT, FormSpec.DEFAULT_GROW) 721 }, 722 new RowSpec[] { 723 new RowSpec(Sizes.dluY(10)), 724 FormFactory.LINE_GAP_ROWSPEC, 725 FormFactory.DEFAULT_ROWSPEC, 726 FormFactory.LINE_GAP_ROWSPEC, 727 FormFactory.DEFAULT_ROWSPEC, 728 FormFactory.LINE_GAP_ROWSPEC, 729 FormFactory.DEFAULT_ROWSPEC, 730 FormFactory.LINE_GAP_ROWSPEC, 731 FormFactory.DEFAULT_ROWSPEC, 732 FormFactory.LINE_GAP_ROWSPEC, 733 FormFactory.DEFAULT_ROWSPEC, 734 FormFactory.LINE_GAP_ROWSPEC, 735 FormFactory.DEFAULT_ROWSPEC, 736 FormFactory.LINE_GAP_ROWSPEC, 737 FormFactory.DEFAULT_ROWSPEC, 738 FormFactory.LINE_GAP_ROWSPEC, 739 FormFactory.DEFAULT_ROWSPEC 740 })); 741 742 label26.setText("Parser References:"); 744 tabSyntax.add(label26, cc.xywh(3, 3, 1, 1, CellConstraints.RIGHT, CellConstraints.DEFAULT)); 745 746 { 748 parserColorPanel.setForeground(Color.black); 749 parserColorPanel.setPreferredSize(new Dimension(70, 20)); 750 parserColorPanel.setBackground(new Color(255, 255, 51)); 751 parserColorPanel.setBorder(LineBorder.createBlackLineBorder()); 752 parserColorPanel.setLayout(new FlowLayout()); 753 } 754 tabSyntax.add(parserColorPanel, cc.xy(5, 3)); 755 756 parserBoldButton.setText("Bold"); 758 parserBoldButton.setFont(new Font("Lucida Grande", Font.BOLD, 13)); 759 tabSyntax.add(parserBoldButton, cc.xy(7, 3)); 760 761 parserItalicButton.setText("Italic"); 763 parserItalicButton.setFont(new Font("Lucida Grande", Font.ITALIC, 13)); 764 tabSyntax.add(parserItalicButton, cc.xy(9, 3)); 765 766 label27.setText("Lexer References:"); 768 tabSyntax.add(label27, cc.xy(3, 5)); 769 770 { 772 lexerColorPanel.setForeground(Color.black); 773 lexerColorPanel.setPreferredSize(new Dimension(70, 20)); 774 lexerColorPanel.setBackground(new Color(255, 255, 51)); 775 lexerColorPanel.setBorder(LineBorder.createBlackLineBorder()); 776 lexerColorPanel.setLayout(new FlowLayout()); 777 } 778 tabSyntax.add(lexerColorPanel, cc.xy(5, 5)); 779 780 lexerBoldButton.setText("Bold"); 782 lexerBoldButton.setFont(new Font("Lucida Grande", Font.BOLD, 13)); 783 tabSyntax.add(lexerBoldButton, cc.xy(7, 5)); 784 785 lexerItalicButton.setText("Italic"); 787 lexerItalicButton.setFont(new Font("Lucida Grande", Font.ITALIC, 13)); 788 tabSyntax.add(lexerItalicButton, cc.xy(9, 5)); 789 790 label28.setText("Labels:"); 792 tabSyntax.add(label28, cc.xy(3, 7)); 793 794 { 796 labelColorPanel.setForeground(Color.black); 797 labelColorPanel.setPreferredSize(new Dimension(70, 20)); 798 labelColorPanel.setBackground(new Color(255, 255, 51)); 799 labelColorPanel.setBorder(LineBorder.createBlackLineBorder()); 800 labelColorPanel.setLayout(new FlowLayout()); 801 } 802 tabSyntax.add(labelColorPanel, cc.xy(5, 7)); 803 804 labelsBoldButton.setText("Bold"); 806 labelsBoldButton.setFont(new Font("Lucida Grande", Font.BOLD, 13)); 807 tabSyntax.add(labelsBoldButton, cc.xy(7, 7)); 808 809 labelsItalicButton.setText("Italic"); 811 labelsItalicButton.setFont(new Font("Lucida Grande", Font.ITALIC, 13)); 812 tabSyntax.add(labelsItalicButton, cc.xy(9, 7)); 813 814 label29.setText("References in action:"); 816 tabSyntax.add(label29, cc.xy(3, 9)); 817 818 { 820 refsActionColorPanel.setForeground(Color.black); 821 refsActionColorPanel.setPreferredSize(new Dimension(70, 20)); 822 refsActionColorPanel.setBackground(new Color(255, 255, 51)); 823 refsActionColorPanel.setBorder(LineBorder.createBlackLineBorder()); 824 refsActionColorPanel.setLayout(new FlowLayout()); 825 } 826 tabSyntax.add(refsActionColorPanel, cc.xy(5, 9)); 827 828 refsActionBoldButton.setText("Bold"); 830 refsActionBoldButton.setFont(new Font("Lucida Grande", Font.BOLD, 13)); 831 tabSyntax.add(refsActionBoldButton, cc.xy(7, 9)); 832 833 refsActionItalicButton.setText("Italic"); 835 refsActionItalicButton.setFont(new Font("Lucida Grande", Font.ITALIC, 13)); 836 tabSyntax.add(refsActionItalicButton, cc.xy(9, 9)); 837 838 label30.setText("Comments:"); 840 tabSyntax.add(label30, cc.xy(3, 11)); 841 842 { 844 commentsColorPanel.setForeground(Color.black); 845 commentsColorPanel.setPreferredSize(new Dimension(70, 20)); 846 commentsColorPanel.setBackground(new Color(255, 255, 51)); 847 commentsColorPanel.setBorder(LineBorder.createBlackLineBorder()); 848 commentsColorPanel.setLayout(new FlowLayout()); 849 } 850 tabSyntax.add(commentsColorPanel, cc.xy(5, 11)); 851 852 commentsBoldButton.setText("Bold"); 854 commentsBoldButton.setFont(new Font("Lucida Grande", Font.BOLD, 13)); 855 tabSyntax.add(commentsBoldButton, cc.xy(7, 11)); 856 857 commentsItalicButton.setText("Italic"); 859 commentsItalicButton.setFont(new Font("Lucida Grande", Font.ITALIC, 13)); 860 tabSyntax.add(commentsItalicButton, cc.xy(9, 11)); 861 862 label31.setText("Strings:"); 864 tabSyntax.add(label31, cc.xy(3, 13)); 865 866 { 868 stringsColorPanel.setForeground(Color.black); 869 stringsColorPanel.setPreferredSize(new Dimension(70, 20)); 870 stringsColorPanel.setBackground(new Color(255, 255, 51)); 871 stringsColorPanel.setBorder(LineBorder.createBlackLineBorder()); 872 stringsColorPanel.setLayout(new FlowLayout()); 873 } 874 tabSyntax.add(stringsColorPanel, cc.xy(5, 13)); 875 876 stringsBoldButton.setText("Bold"); 878 stringsBoldButton.setFont(new Font("Lucida Grande", Font.BOLD, 13)); 879 tabSyntax.add(stringsBoldButton, cc.xy(7, 13)); 880 881 stringsItalicButton.setText("Italic"); 883 stringsItalicButton.setFont(new Font("Lucida Grande", Font.ITALIC, 13)); 884 tabSyntax.add(stringsItalicButton, cc.xy(9, 13)); 885 886 label32.setText("Keywords:"); 888 tabSyntax.add(label32, cc.xy(3, 15)); 889 890 { 892 keywordsColorPanel.setForeground(Color.black); 893 keywordsColorPanel.setPreferredSize(new Dimension(70, 20)); 894 keywordsColorPanel.setBackground(new Color(255, 255, 51)); 895 keywordsColorPanel.setBorder(LineBorder.createBlackLineBorder()); 896 keywordsColorPanel.setLayout(new FlowLayout()); 897 } 898 tabSyntax.add(keywordsColorPanel, cc.xy(5, 15)); 899 900 keywordsBoldButton.setText("Bold"); 902 keywordsBoldButton.setFont(new Font("Lucida Grande", Font.BOLD, 13)); 903 tabSyntax.add(keywordsBoldButton, cc.xy(7, 15)); 904 905 syntaxDefaultButton.setText("Default"); 907 tabSyntax.add(syntaxDefaultButton, cc.xy(13, 15)); 908 909 keywordsItalicButton.setText("Italic"); 911 keywordsItalicButton.setFont(new Font("Lucida Grande", Font.ITALIC, 13)); 912 tabSyntax.add(keywordsItalicButton, cc.xy(9, 15)); 913 } 914 tabbedPane1.addTab("Syntax", tabSyntax); 915 916 917 { 919 tabCompiler.setLayout(new FormLayout( 920 new ColumnSpec[] { 921 new ColumnSpec(Sizes.dluX(10)), 922 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 923 FormFactory.DEFAULT_COLSPEC, 924 FormFactory.DEFAULT_COLSPEC, 925 new ColumnSpec(ColumnSpec.FILL, Sizes.DEFAULT, FormSpec.DEFAULT_GROW), 926 FormFactory.DEFAULT_COLSPEC, 927 new ColumnSpec(Sizes.dluX(10)) 928 }, 929 new RowSpec[] { 930 new RowSpec(Sizes.dluY(10)), 931 FormFactory.LINE_GAP_ROWSPEC, 932 FormFactory.DEFAULT_ROWSPEC, 933 FormFactory.LINE_GAP_ROWSPEC, 934 FormFactory.DEFAULT_ROWSPEC, 935 FormFactory.LINE_GAP_ROWSPEC, 936 FormFactory.DEFAULT_ROWSPEC, 937 FormFactory.LINE_GAP_ROWSPEC, 938 FormFactory.DEFAULT_ROWSPEC, 939 FormFactory.LINE_GAP_ROWSPEC, 940 FormFactory.DEFAULT_ROWSPEC, 941 FormFactory.LINE_GAP_ROWSPEC, 942 new RowSpec(Sizes.dluY(10)), 943 FormFactory.LINE_GAP_ROWSPEC, 944 FormFactory.DEFAULT_ROWSPEC, 945 FormFactory.LINE_GAP_ROWSPEC, 946 FormFactory.DEFAULT_ROWSPEC, 947 FormFactory.LINE_GAP_ROWSPEC, 948 FormFactory.DEFAULT_ROWSPEC 949 })); 950 951 jikesRadio.setText("jikes"); 953 tabCompiler.add(jikesRadio, cc.xywh(3, 7, 2, 1)); 954 955 integratedRadio.setText("com.sun.tools.javac"); 957 integratedRadio.setActionCommand("integrated"); 958 tabCompiler.add(integratedRadio, cc.xywh(3, 11, 3, 1)); 959 960 javacRadio.setText("javac"); 962 javacRadio.setSelected(true); 963 tabCompiler.add(javacRadio, cc.xywh(3, 3, 2, 1)); 964 965 javacCustomPathButton.setText("Path:"); 967 javacCustomPathButton.setToolTipText("Check to specify a custom path if the default system path doesn't include javac"); 968 tabCompiler.add(javacCustomPathButton, cc.xywh(4, 5, 1, 1, CellConstraints.RIGHT, CellConstraints.DEFAULT)); 969 tabCompiler.add(javacPathField, cc.xy(5, 5)); 970 971 browseJavacPath.setText("Browse..."); 973 tabCompiler.add(browseJavacPath, cc.xy(6, 5)); 974 975 label4.setText("Path:"); 977 tabCompiler.add(label4, cc.xywh(4, 9, 1, 1, CellConstraints.RIGHT, CellConstraints.DEFAULT)); 978 tabCompiler.add(jikesPathField, cc.xy(5, 9)); 979 980 browseJikesPath.setText("Browse..."); 982 tabCompiler.add(browseJikesPath, cc.xy(6, 9)); 983 984 label9.setText("Classpath:"); 986 tabCompiler.add(label9, cc.xy(3, 15)); 987 988 classpathSystemButton.setText("System"); 990 tabCompiler.add(classpathSystemButton, cc.xy(4, 15)); 991 992 classpathCustomButton.setText("Custom:"); 994 tabCompiler.add(classpathCustomButton, cc.xy(4, 17)); 995 tabCompiler.add(customClasspathField, cc.xy(5, 17)); 996 997 browseCustomClassPathButton.setText("Browse..."); 999 tabCompiler.add(browseCustomClassPathButton, cc.xy(6, 17)); 1000 } 1001 tabbedPane1.addTab("Compiler", tabCompiler); 1002 1003 1004 { 1006 tabDebugger.setLayout(new FormLayout( 1007 new ColumnSpec[] { 1008 new ColumnSpec(Sizes.dluX(10)), 1009 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1010 new ColumnSpec(ColumnSpec.RIGHT, Sizes.DEFAULT, FormSpec.NO_GROW), 1011 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1012 FormFactory.DEFAULT_COLSPEC, 1013 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1014 new ColumnSpec(Sizes.dluX(10)), 1015 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1016 new ColumnSpec(ColumnSpec.RIGHT, Sizes.DEFAULT, FormSpec.NO_GROW), 1017 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1018 new ColumnSpec("max(default;20dlu)"), 1019 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1020 FormFactory.DEFAULT_COLSPEC, 1021 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1022 new ColumnSpec(Sizes.dluX(10)) 1023 }, 1024 new RowSpec[] { 1025 new RowSpec(Sizes.dluY(10)), 1026 FormFactory.LINE_GAP_ROWSPEC, 1027 FormFactory.DEFAULT_ROWSPEC, 1028 FormFactory.LINE_GAP_ROWSPEC, 1029 new RowSpec(Sizes.dluY(10)), 1030 FormFactory.LINE_GAP_ROWSPEC, 1031 FormFactory.DEFAULT_ROWSPEC, 1032 FormFactory.LINE_GAP_ROWSPEC, 1033 FormFactory.DEFAULT_ROWSPEC, 1034 FormFactory.LINE_GAP_ROWSPEC, 1035 FormFactory.DEFAULT_ROWSPEC, 1036 FormFactory.LINE_GAP_ROWSPEC, 1037 FormFactory.DEFAULT_ROWSPEC, 1038 FormFactory.LINE_GAP_ROWSPEC, 1039 FormFactory.DEFAULT_ROWSPEC, 1040 FormFactory.LINE_GAP_ROWSPEC, 1041 FormFactory.DEFAULT_ROWSPEC, 1042 FormFactory.LINE_GAP_ROWSPEC, 1043 FormFactory.DEFAULT_ROWSPEC, 1044 FormFactory.LINE_GAP_ROWSPEC, 1045 FormFactory.DEFAULT_ROWSPEC 1046 })); 1047 1048 label33.setText("Default local port:"); 1050 tabDebugger.add(label33, cc.xy(3, 3)); 1051 1052 debugDefaultLocalPortField.setText("0xC001"); 1054 tabDebugger.add(debugDefaultLocalPortField, cc.xy(5, 3)); 1055 1056 label34.setText("Remote parser launch time-out:"); 1058 tabDebugger.add(label34, cc.xy(9, 3)); 1059 1060 debugLaunchTimeoutField.setText("5"); 1062 tabDebugger.add(debugLaunchTimeoutField, cc.xy(11, 3)); 1063 1064 label35.setText("seconds"); 1066 tabDebugger.add(label35, cc.xy(13, 3)); 1067 1068 label12.setText("Non-consumed token:"); 1070 label12.setHorizontalAlignment(SwingConstants.RIGHT); 1071 tabDebugger.add(label12, cc.xy(3, 7)); 1072 1073 { 1075 debugNonConsumedColorPanel.setForeground(Color.black); 1076 debugNonConsumedColorPanel.setPreferredSize(new Dimension(70, 20)); 1077 debugNonConsumedColorPanel.setBackground(new Color(255, 255, 51)); 1078 debugNonConsumedColorPanel.setBorder(LineBorder.createBlackLineBorder()); 1079 debugNonConsumedColorPanel.setLayout(new FlowLayout()); 1080 } 1081 tabDebugger.add(debugNonConsumedColorPanel, cc.xy(5, 7)); 1082 1083 label13.setText("Consumed token:"); 1085 label13.setHorizontalAlignment(SwingConstants.RIGHT); 1086 tabDebugger.add(label13, cc.xy(3, 9)); 1087 1088 { 1090 debugConsumedColorPanel.setForeground(Color.black); 1091 debugConsumedColorPanel.setPreferredSize(new Dimension(70, 20)); 1092 debugConsumedColorPanel.setBackground(new Color(255, 255, 51)); 1093 debugConsumedColorPanel.setBorder(LineBorder.createBlackLineBorder()); 1094 debugConsumedColorPanel.setLayout(new FlowLayout()); 1095 } 1096 tabDebugger.add(debugConsumedColorPanel, cc.xy(5, 9)); 1097 1098 label14.setText("Hidden token:"); 1100 label14.setHorizontalAlignment(SwingConstants.RIGHT); 1101 tabDebugger.add(label14, cc.xy(3, 11)); 1102 1103 { 1105 debugHiddenColorPanel.setForeground(Color.black); 1106 debugHiddenColorPanel.setPreferredSize(new Dimension(70, 20)); 1107 debugHiddenColorPanel.setBackground(new Color(255, 255, 51)); 1108 debugHiddenColorPanel.setBorder(LineBorder.createBlackLineBorder()); 1109 debugHiddenColorPanel.setLayout(new FlowLayout()); 1110 } 1111 tabDebugger.add(debugHiddenColorPanel, cc.xy(5, 11)); 1112 1113 label15.setText("Dead token:"); 1115 label15.setHorizontalAlignment(SwingConstants.RIGHT); 1116 tabDebugger.add(label15, cc.xy(3, 13)); 1117 1118 { 1120 debugDeadColorPanel.setForeground(Color.black); 1121 debugDeadColorPanel.setPreferredSize(new Dimension(70, 20)); 1122 debugDeadColorPanel.setBackground(new Color(255, 255, 51)); 1123 debugDeadColorPanel.setBorder(LineBorder.createBlackLineBorder()); 1124 debugDeadColorPanel.setLayout(new FlowLayout()); 1125 } 1126 tabDebugger.add(debugDeadColorPanel, cc.xy(5, 13)); 1127 1128 label16.setText("Lookahead token:"); 1130 label16.setHorizontalAlignment(SwingConstants.RIGHT); 1131 tabDebugger.add(label16, cc.xy(3, 15)); 1132 1133 { 1135 debugLTColorPanel.setForeground(Color.black); 1136 debugLTColorPanel.setPreferredSize(new Dimension(70, 20)); 1137 debugLTColorPanel.setBackground(new Color(255, 255, 51)); 1138 debugLTColorPanel.setBorder(LineBorder.createBlackLineBorder()); 1139 debugLTColorPanel.setLayout(new FlowLayout()); 1140 } 1141 tabDebugger.add(debugLTColorPanel, cc.xy(5, 15)); 1142 1143 label36.setText("Detachable panels:"); 1145 tabDebugger.add(label36, cc.xy(3, 19)); 1146 1147 detachablePanelChildrenButton.setText("Children of project's window"); 1149 tabDebugger.add(detachablePanelChildrenButton, cc.xywh(5, 19, 5, 1)); 1150 1151 askGenButton.setText("Ask before generating and compiling"); 1153 tabDebugger.add(askGenButton, cc.xywh(5, 21, 5, 1)); 1154 } 1155 tabbedPane1.addTab("Debugger", tabDebugger); 1156 1157 1158 { 1160 tabSCM.setLayout(new FormLayout( 1161 new ColumnSpec[] { 1162 new ColumnSpec(Sizes.dluX(10)), 1163 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1164 new ColumnSpec(ColumnSpec.RIGHT, Sizes.DEFAULT, FormSpec.NO_GROW), 1165 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1166 new ColumnSpec(ColumnSpec.FILL, Sizes.DEFAULT, FormSpec.DEFAULT_GROW), 1167 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1168 new ColumnSpec(Sizes.dluX(10)) 1169 }, 1170 new RowSpec[] { 1171 new RowSpec(Sizes.dluY(10)), 1172 FormFactory.LINE_GAP_ROWSPEC, 1173 FormFactory.DEFAULT_ROWSPEC, 1174 FormFactory.LINE_GAP_ROWSPEC, 1175 new RowSpec(Sizes.DLUY5), 1176 FormFactory.LINE_GAP_ROWSPEC, 1177 FormFactory.DEFAULT_ROWSPEC, 1178 FormFactory.LINE_GAP_ROWSPEC, 1179 FormFactory.DEFAULT_ROWSPEC, 1180 FormFactory.LINE_GAP_ROWSPEC, 1181 FormFactory.DEFAULT_ROWSPEC, 1182 FormFactory.LINE_GAP_ROWSPEC, 1183 FormFactory.DEFAULT_ROWSPEC, 1184 FormFactory.LINE_GAP_ROWSPEC, 1185 new RowSpec(Sizes.DLUY5), 1186 FormFactory.LINE_GAP_ROWSPEC, 1187 FormFactory.DEFAULT_ROWSPEC, 1188 FormFactory.LINE_GAP_ROWSPEC, 1189 new RowSpec(Sizes.dluY(10)) 1190 })); 1191 1192 enablePerforceCheckBox.setText("Enable Perforce"); 1194 tabSCM.add(enablePerforceCheckBox, cc.xy(5, 3)); 1195 1196 label18.setText("Port:"); 1198 tabSCM.add(label18, cc.xy(3, 7)); 1199 tabSCM.add(p4PortField, cc.xy(5, 7)); 1200 1201 label19.setText("User:"); 1203 tabSCM.add(label19, cc.xy(3, 9)); 1204 tabSCM.add(p4UserField, cc.xy(5, 9)); 1205 1206 label21.setText("Password:"); 1208 tabSCM.add(label21, cc.xy(3, 11)); 1209 tabSCM.add(p4PasswordField, cc.xy(5, 11)); 1210 1211 label20.setText("Client:"); 1213 tabSCM.add(label20, cc.xy(3, 13)); 1214 tabSCM.add(p4ClientField, cc.xy(5, 13)); 1215 1216 label17.setText("P4 executable path:"); 1218 tabSCM.add(label17, cc.xy(3, 17)); 1219 tabSCM.add(p4ExecPathField, cc.xy(5, 17)); 1220 } 1221 tabbedPane1.addTab("SCM", tabSCM); 1222 1223 1224 { 1226 tabUpdates.setLayout(new FormLayout( 1227 new ColumnSpec[] { 1228 new ColumnSpec(Sizes.dluX(10)), 1229 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1230 FormFactory.DEFAULT_COLSPEC, 1231 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1232 new ColumnSpec(ColumnSpec.FILL, Sizes.DEFAULT, FormSpec.DEFAULT_GROW), 1233 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1234 FormFactory.DEFAULT_COLSPEC, 1235 FormFactory.LABEL_COMPONENT_GAP_COLSPEC, 1236 new ColumnSpec(Sizes.dluX(10)) 1237 }, 1238 new RowSpec[] { 1239 new RowSpec(Sizes.dluY(10)), 1240 FormFactory.LINE_GAP_ROWSPEC, 1241 FormFactory.DEFAULT_ROWSPEC, 1242 FormFactory.LINE_GAP_ROWSPEC, 1243 FormFactory.DEFAULT_ROWSPEC, 1244 FormFactory.LINE_GAP_ROWSPEC, 1245 new RowSpec(Sizes.dluY(10)), 1246 FormFactory.LINE_GAP_ROWSPEC, 1247 FormFactory.DEFAULT_ROWSPEC, 1248 FormFactory.LINE_GAP_ROWSPEC, 1249 FormFactory.DEFAULT_ROWSPEC 1250 })); 1251 1252 label7.setText("Check for ANTLRWorks updates:"); 1254 label7.setHorizontalAlignment(SwingConstants.LEFT); 1255 tabUpdates.add(label7, cc.xy(3, 3)); 1256 1257 updateTypeCombo.setModel(new DefaultComboBoxModel(new String [] { 1259 "Manually", 1260 "At startup", 1261 "Daily", 1262 "Weekly" 1263 })); 1264 tabUpdates.add(updateTypeCombo, cc.xywh(3, 5, 4, 1)); 1265 1266 checkForUpdatesButton.setText("Check Now"); 1268 tabUpdates.add(checkForUpdatesButton, cc.xy(7, 5)); 1269 1270 label10.setText("Download path:"); 1272 label10.setHorizontalAlignment(SwingConstants.LEFT); 1273 tabUpdates.add(label10, cc.xy(3, 9)); 1274 tabUpdates.add(downloadPathField, cc.xywh(3, 11, 3, 1)); 1275 1276 browseUpdateDownloadPathButton.setText("Browse..."); 1278 browseUpdateDownloadPathButton.setActionCommand("Browse"); 1279 tabUpdates.add(browseUpdateDownloadPathButton, cc.xy(7, 11)); 1280 } 1281 tabbedPane1.addTab("Updates", tabUpdates); 1282 1283 } 1284 contentPane.add(tabbedPane1, cc.xywh(1, 1, 2, 1)); 1285 } 1286 dialogPane.add(contentPane, BorderLayout.CENTER); 1287 1288 { 1290 buttonBar.setBorder(Borders.BUTTON_BAR_GAP_BORDER); 1291 buttonBar.setLayout(new FormLayout( 1292 new ColumnSpec[] { 1293 FormFactory.GLUE_COLSPEC, 1294 FormFactory.BUTTON_COLSPEC 1295 }, 1296 RowSpec.decodeSpecs("pref"))); 1297 1298 applyButton.setText("Apply"); 1300 buttonBar.add(applyButton, cc.xy(2, 1)); 1301 } 1302 dialogPane.add(buttonBar, BorderLayout.SOUTH); 1303 } 1304 contentPane2.add(dialogPane, BorderLayout.CENTER); 1305 pack(); 1306 } 1308 1309 private JPanel dialogPane; 1312 private JPanel contentPane; 1313 private JTabbedPane tabbedPane1; 1314 private JPanel tabGeneral; 1315 private JLabel label2; 1316 private JLabel label5; 1317 private JComboBox lafCombo; 1318 private JComboBox startupActionCombo; 1319 private JCheckBox restoreWindowsBoundButton; 1320 private JCheckBox desktopModeButton; 1321 private JLabel label25; 1322 private JTextField outputPathField; 1323 private JButton browseOutputPathButton; 1324 private JLabel label24; 1325 private JTextField dotToolPathField; 1326 private JButton browseDotToolPathButton; 1327 private JLabel label37; 1328 private JTextField antlr3OptionsField; 1329 private JPanel tabEditor; 1330 private JLabel label3; 1331 private JComboBox editorFontCombo; 1332 private JSpinner editorFontSizeSpinner; 1333 private JCheckBox autoSaveButton; 1334 private JTextField autoSaveDelayField; 1335 private JLabel label11; 1336 private JCheckBox backupFileButton; 1337 private JCheckBox highlightCursorLineButton; 1338 private JCheckBox smoothScrollingButton; 1339 private JCheckBox autoIndentColonInRuleButton; 1340 private JCheckBox showLineNumbers; 1341 private JCheckBox vstyleAutocompletionButton; 1342 private JLabel label1; 1343 private JTextField tabWidthField; 1344 private JLabel label22; 1345 private JTextField parserDelayField; 1346 private JLabel label23; 1347 private JPanel tabSyntax; 1348 private JLabel label26; 1349 private JPanel parserColorPanel; 1350 private JCheckBox parserBoldButton; 1351 private JCheckBox parserItalicButton; 1352 private JLabel label27; 1353 private JPanel lexerColorPanel; 1354 private JCheckBox lexerBoldButton; 1355 private JCheckBox lexerItalicButton; 1356 private JLabel label28; 1357 private JPanel labelColorPanel; 1358 private JCheckBox labelsBoldButton; 1359 private JCheckBox labelsItalicButton; 1360 private JLabel label29; 1361 private JPanel refsActionColorPanel; 1362 private JCheckBox refsActionBoldButton; 1363 private JCheckBox refsActionItalicButton; 1364 private JLabel label30; 1365 private JPanel commentsColorPanel; 1366 private JCheckBox commentsBoldButton; 1367 private JCheckBox commentsItalicButton; 1368 private JLabel label31; 1369 private JPanel stringsColorPanel; 1370 private JCheckBox stringsBoldButton; 1371 private JCheckBox stringsItalicButton; 1372 private JLabel label32; 1373 private JPanel keywordsColorPanel; 1374 private JCheckBox keywordsBoldButton; 1375 private JButton syntaxDefaultButton; 1376 private JCheckBox keywordsItalicButton; 1377 private JPanel tabCompiler; 1378 private JRadioButton jikesRadio; 1379 private JRadioButton integratedRadio; 1380 private JRadioButton javacRadio; 1381 private JCheckBox javacCustomPathButton; 1382 private JTextField javacPathField; 1383 private JButton browseJavacPath; 1384 private JLabel label4; 1385 private JTextField jikesPathField; 1386 private JButton browseJikesPath; 1387 private JLabel label9; 1388 private JCheckBox classpathSystemButton; 1389 private JCheckBox classpathCustomButton; 1390 private JTextField customClasspathField; 1391 private JButton browseCustomClassPathButton; 1392 private JPanel tabDebugger; 1393 private JLabel label33; 1394 private JTextField debugDefaultLocalPortField; 1395 private JLabel label34; 1396 private JTextField debugLaunchTimeoutField; 1397 private JLabel label35; 1398 private JLabel label12; 1399 private JPanel debugNonConsumedColorPanel; 1400 private JLabel label13; 1401 private JPanel debugConsumedColorPanel; 1402 private JLabel label14; 1403 private JPanel debugHiddenColorPanel; 1404 private JLabel label15; 1405 private JPanel debugDeadColorPanel; 1406 private JLabel label16; 1407 private JPanel debugLTColorPanel; 1408 private JLabel label36; 1409 private JCheckBox detachablePanelChildrenButton; 1410 private JCheckBox askGenButton; 1411 private JPanel tabSCM; 1412 private JCheckBox enablePerforceCheckBox; 1413 private JLabel label18; 1414 private JTextField p4PortField; 1415 private JLabel label19; 1416 private JTextField p4UserField; 1417 private JLabel label21; 1418 private JPasswordField p4PasswordField; 1419 private JLabel label20; 1420 private JTextField p4ClientField; 1421 private JLabel label17; 1422 private JTextField p4ExecPathField; 1423 private JPanel tabUpdates; 1424 private JLabel label7; 1425 private JComboBox updateTypeCombo; 1426 private JButton checkForUpdatesButton; 1427 private JLabel label10; 1428 private JTextField downloadPathField; 1429 private JButton browseUpdateDownloadPathButton; 1430 private JPanel buttonBar; 1431 private JButton applyButton; 1432 1434} 1435 | Popular Tags |