| 1 package org.webdocwf.util.loader.wizard; 2 3 import java.awt.Dimension ; 4 import java.awt.Toolkit ; 5 import java.awt.event.ActionEvent ; 6 import java.awt.event.ActionListener ; 7 import java.io.BufferedWriter ; 8 import java.io.File ; 9 import java.io.FileWriter ; 10 import java.io.Writer ; 11 import java.util.HashMap ; 12 13 import javax.swing.AbstractAction ; 14 import javax.swing.BorderFactory ; 15 import javax.swing.Box ; 16 import javax.swing.BoxLayout ; 17 import javax.swing.ImageIcon ; 18 import javax.swing.JButton ; 19 import javax.swing.JCheckBox ; 20 import javax.swing.JComboBox ; 21 import javax.swing.JComponent ; 22 import javax.swing.JFileChooser ; 23 import javax.swing.JLabel ; 24 import javax.swing.JPanel ; 25 import javax.swing.JRadioButton ; 26 import javax.swing.JScrollPane ; 27 import javax.swing.JSplitPane ; 28 import javax.swing.JTabbedPane ; 29 import javax.swing.JTextArea ; 30 import javax.swing.JTextField ; 31 import javax.swing.KeyStroke ; 32 import javax.swing.ScrollPaneConstants ; 33 import javax.swing.SwingConstants ; 34 import javax.swing.border.Border ; 35 import javax.swing.border.EtchedBorder ; 36 37 public class OctopusGeneratorPanel extends JPanel { 38 39 private static final String SOURCE_TYPE = "Source database type", 40 TARGET_TYPE = "Target database type", 41 SOURCE_DATABASE = "Source database URL", 42 TARGET_DATABASE = "Target database URL", 43 SOURCE_USER = "Source database user", 44 SOURCE_PASSWORD = "Source database password", 45 TARGET_USER = "Target database user", 46 TARGET_PASSWORD = "Target database password", 47 VALUE_MODE = "Value mode", 48 GENERATOR_OUTPUT = "Generator output directory", 49 DOML_PATH = "Doml URL( when use Doml as input )", 50 PACKAGE_NAME = "Package name", 51 SOURCE_DRIVER_NAME = "Source database driver name", 52 TARGET_DRIVER_NAME = "Target database driver name", 53 ADDITIONAL_PATHS = "Additional classpath", 54 DROP_TABLE = "Drop Tables", 55 CREATE_TABLE = "Create Tables", 56 CREATE_PRIMARY_KEYS = "Create Primary Keys", 57 DROP_FOREIGN_KEYS = "Drop Foreign Keys", 58 CREATE_FOREIGN_KEYS = "Create Foreign Keys", 59 CREATE_INDEXES = "Create Indexes", 60 CREATE_SQL_FOR_ALL_VENDORS = "Create SQL Statements for All Vendors", 61 GENERATE_DOML = "Generate Doml file", 62 GENERATE_XML = "Generate Xml files", 63 GENERATE_SQL = "Generate Sql files", 64 OPTIMIZED_MODE = "Optimized mode for all tables", 65 FULL_MODE = "Full mode for all tables", 66 INCLUDE_TABLE_LIST = "Include Table List (e.g. table1;table2)", 67 PATH_TO_CONF_IN_JAR = "Path to conf files in jar", 68 LOG_MODE = "Log mode", 69 LOG_FILE_NAME ="Log file name", 70 LOG_FILE_DIRECTORY = "Log file directory"; 71 72 public static Dimension bigButton = new Dimension (140, 25); 74 public static Dimension toolBarButton = new Dimension (30, 30); 75 public static Dimension smallComponent = new Dimension (150, 20); 76 public static Dimension bigComponent = new Dimension (400, 20); 77 public static Dimension bigPlusButton = new Dimension (380, 20); 78 public static Dimension veryBigComponent = new Dimension (650, 20); 79 public static Dimension veryBigPlusButton = new Dimension (630, 20); 80 public static Dimension panelComponenet = new Dimension (720, 40); 81 82 JSplitPane main; 83 84 Border loweredBorder = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); 85 Border raisedBorder = BorderFactory.createEtchedBorder(EtchedBorder.RAISED); 86 Border bevelBorder = BorderFactory.createLoweredBevelBorder(); 87 88 private JCheckBox sqlFiles, 89 xmlFiles, 90 domlFile, 91 createTables, 92 createPK, 93 createFK, 94 createIn, 95 dropTables, 96 createSQLForAll, 97 dropFK; 98 private JRadioButton optimizedMode, fullMode; 99 private JTextField packageField, generatorOutput, addPaths; 100 private OctopusGeneratorData initData; 102 private HashMap fields; 103 private JTextArea traceArea; 104 105 public OctopusGeneratorPanel() { 106 110 fields = new HashMap (); 112 116 JTabbedPane octopusGeneratorData = new JTabbedPane (); 118 JPanel commonPanel = new JPanel (); 119 JPanel advancedPanel = new JPanel (); 120 JPanel outputOptions = new JPanel (); 121 octopusGeneratorData.addTab("JDBC", commonPanel); 122 octopusGeneratorData.addTab("Output options", outputOptions); 123 octopusGeneratorData.addTab("Advanced", advancedPanel); 124 125 132 150 156 165 JPanel pathToConfPanel = new JPanel (); 167 pathToConfPanel.setLayout(new BoxLayout (pathToConfPanel, BoxLayout.X_AXIS)); 168 pathToConfPanel.setBorder(setTitleOfBorder("Advanced Options", loweredBorder)); 169 JLabel strPathToConf = OctopusProjectFrame.createOctopusLabel(PATH_TO_CONF_IN_JAR, smallComponent); 170 JTextField pathToConf = OctopusProjectFrame.createOctopusTextField(PATH_TO_CONF_IN_JAR, veryBigComponent); 171 pathToConfPanel.add(strPathToConf); 172 pathToConfPanel.add(pathToConf); 173 174 JPanel mainPathToConfPanel = new JPanel (); 175 mainPathToConfPanel.setLayout(new BoxLayout (mainPathToConfPanel, BoxLayout.X_AXIS)); 176 mainPathToConfPanel.add(pathToConfPanel); 177 mainPathToConfPanel.add(Box.createHorizontalGlue()); 178 179 advancedPanel.setLayout(new BoxLayout (advancedPanel, BoxLayout.Y_AXIS)); 180 advancedPanel.add(Box.createRigidArea(new Dimension (0, 15))); 181 advancedPanel.add(mainPathToConfPanel); 182 183 JPanel sourcePanel = new JPanel (); 185 sourcePanel.setLayout(new BoxLayout (sourcePanel, BoxLayout.Y_AXIS)); 186 JLabel strSourceType = OctopusProjectFrame.createOctopusLabel(SOURCE_TYPE, bigComponent); 188 JComboBox sourceType = OctopusProjectFrame.createOctopusCombobox(SOURCE_TYPE, bigComponent); 189 JLabel strSourceUrl = OctopusProjectFrame.createOctopusLabel(SOURCE_DATABASE, bigComponent); 191 JTextField sourceUrl = OctopusProjectFrame.createOctopusTextField(SOURCE_DATABASE, bigComponent); 192 JLabel strSourceDriverName = OctopusProjectFrame.createOctopusLabel(SOURCE_DRIVER_NAME, bigComponent); 194 JComboBox sourceDriverName = OctopusProjectFrame.createOctopusCombobox(SOURCE_DRIVER_NAME, bigComponent); 195 JLabel strSourceUser = OctopusProjectFrame.createOctopusLabel(SOURCE_USER, bigComponent); 197 JTextField sourceUser = OctopusProjectFrame.createOctopusTextField(SOURCE_USER, bigComponent); 198 JLabel strSourcePassword = OctopusProjectFrame.createOctopusLabel(SOURCE_PASSWORD, bigComponent); 200 JTextField sourcePassword = OctopusProjectFrame.createOctopusTextField(SOURCE_PASSWORD, bigComponent); 201 JLabel strDomlUrl = OctopusProjectFrame.createOctopusLabel(DOML_PATH, bigComponent); 203 JTextField domlUrl = OctopusProjectFrame.createOctopusTextField(DOML_PATH, bigPlusButton); 204 JButton domlButton = OctopusProjectFrame.createOctopusButton("doml url button", new Dimension (20, 20)); 205 domlButton.setAction(new BrowseAction_DOML()); 206 207 ImageIcon icon = 208 new ImageIcon ( 209 getClass().getClassLoader().getResource( 210 "org/webdocwf/util/loader/" + "wizard/images/database.gif")); 211 JLabel sourceLabel = new JLabel ("JDBC Source Database", icon, SwingConstants.RIGHT); 212 213 sourcePanel.add(createJDBCRow(sourceLabel, null)); 214 sourcePanel.add(Box.createRigidArea(new Dimension (0, 10))); 215 sourcePanel.add(createJDBCRow(strSourceType, null)); 216 sourcePanel.add(createJDBCRow(sourceType, null)); 217 sourcePanel.add(createJDBCRow(strSourceUrl, null)); 218 sourcePanel.add(createJDBCRow(sourceUrl, null)); 219 sourcePanel.add(createJDBCRow(strDomlUrl, null)); 220 sourcePanel.add(createJDBCRow(domlUrl, domlButton)); 221 sourcePanel.add(createJDBCRow(strSourceDriverName, null)); 222 sourcePanel.add(createJDBCRow(sourceDriverName, null)); 223 sourcePanel.add(createJDBCRow(strSourceUser, null)); 224 sourcePanel.add(createJDBCRow(sourceUser, null)); 225 sourcePanel.add(createJDBCRow(strSourcePassword, null)); 226 sourcePanel.add(createJDBCRow(sourcePassword, null)); 227 228 sourcePanel.setBorder(setTitleOfBorder("", bevelBorder)); 229 230 JPanel targetPanel = new JPanel (); 232 targetPanel.setLayout(new BoxLayout (targetPanel, BoxLayout.Y_AXIS)); 233 JLabel strTargetType = OctopusProjectFrame.createOctopusLabel(TARGET_TYPE, bigComponent); 235 JComboBox targetType = OctopusProjectFrame.createOctopusCombobox(TARGET_TYPE, bigComponent); 236 JLabel strTargetUrl =OctopusProjectFrame.createOctopusLabel(TARGET_DATABASE, bigComponent); 238 JTextField targetUrl = OctopusProjectFrame.createOctopusTextField(TARGET_DATABASE, bigComponent); 239 JLabel strTargetDriverName = OctopusProjectFrame.createOctopusLabel(TARGET_DRIVER_NAME, bigComponent); 241 JComboBox targetDriverName = OctopusProjectFrame.createOctopusCombobox(TARGET_DRIVER_NAME, bigComponent); 242 JLabel strTargetUser = OctopusProjectFrame.createOctopusLabel(TARGET_USER, bigComponent); 244 JTextField targetUser = OctopusProjectFrame.createOctopusTextField(TARGET_USER, bigComponent); 245 JLabel strTargetPassword = OctopusProjectFrame.createOctopusLabel(TARGET_PASSWORD, bigComponent); 247 JTextField targetPassword = OctopusProjectFrame.createOctopusTextField(TARGET_PASSWORD, bigComponent); 248 249 JLabel strTargetDoml = OctopusProjectFrame.createOctopusLabel("Doml URL", bigComponent); 250 String msg = "Doml file will be placed in output directory"; 251 JTextField targetDoml = OctopusProjectFrame.createOctopusTextField("Doml URL target", bigComponent); 252 targetDoml.setText(msg); 253 targetDoml.setEditable(false); 254 255 ImageIcon icon2 = 256 new ImageIcon ( 257 getClass().getClassLoader().getResource( 258 "org/webdocwf/util/loader/" + "wizard/images/database2.gif")); 259 JLabel targetLabel = new JLabel ("JDBC Target Database", icon2, SwingConstants.RIGHT); 260 261 targetPanel.add(createJDBCRow(targetLabel, null)); 262 targetPanel.add(Box.createRigidArea(new Dimension (0, 10))); 263 targetPanel.add(createJDBCRow(strTargetType, null)); 264 targetPanel.add(createJDBCRow(targetType, null)); 265 targetPanel.add(createJDBCRow(strTargetUrl, null)); 266 targetPanel.add(createJDBCRow(targetUrl, null)); 267 targetPanel.add(createJDBCRow(strTargetDoml, null)); 268 targetPanel.add(createJDBCRow(targetDoml, null)); 269 targetPanel.add(createJDBCRow(strTargetDriverName, null)); 270 targetPanel.add(createJDBCRow(targetDriverName, null)); 271 targetPanel.add(createJDBCRow(strTargetUser, null)); 272 targetPanel.add(createJDBCRow(targetUser, null)); 273 targetPanel.add(createJDBCRow(strTargetPassword, null)); 274 targetPanel.add(createJDBCRow(targetPassword, null)); 275 276 targetPanel.setBorder(setTitleOfBorder("", bevelBorder)); 277 278 JPanel JDBCPanel = new JPanel (); 279 JDBCPanel.setLayout(new BoxLayout (JDBCPanel, BoxLayout.X_AXIS)); 280 JDBCPanel.add(sourcePanel); 281 JDBCPanel.add(targetPanel); 282 283 JPanel JDBCMainPanel = new JPanel (); 284 JDBCMainPanel.setLayout(new BoxLayout (JDBCMainPanel, BoxLayout.X_AXIS)); 285 JDBCMainPanel.add(JDBCPanel); 286 JDBCMainPanel.add(Box.createHorizontalGlue()); 287 288 JPanel valuModePanel = new JPanel (); 290 valuModePanel.setLayout(new BoxLayout (valuModePanel, BoxLayout.X_AXIS)); 291 valuModePanel.setBorder(setTitleOfBorder("Value mode", loweredBorder)); 292 JLabel strValueMode = OctopusProjectFrame.createOctopusLabel(VALUE_MODE, smallComponent); 293 JComboBox valueMode = OctopusProjectFrame.createOctopusCombobox(VALUE_MODE, veryBigComponent); 294 valuModePanel.add(strValueMode); 295 valuModePanel.add(valueMode); 296 297 JPanel mainValueModePanel = new JPanel (); 298 mainValueModePanel.setLayout(new BoxLayout (mainValueModePanel, BoxLayout.X_AXIS)); 299 mainValueModePanel.add(valuModePanel); 300 mainValueModePanel.add(Box.createHorizontalGlue()); 301 302 JPanel generatorOutputPanel = new JPanel (); 304 generatorOutputPanel.setLayout(new BoxLayout (generatorOutputPanel, BoxLayout.X_AXIS)); 305 JPanel generatorOutputInnerPanel = new JPanel (); 306 JButton browseGeneratorOutput = OctopusProjectFrame.createOctopusButton("O", new Dimension (20, 20)); 307 browseGeneratorOutput.setAction(new BrowseAction_GO()); 308 309 generatorOutputInnerPanel.setLayout( 310 new BoxLayout (generatorOutputInnerPanel, BoxLayout.X_AXIS)); 311 generatorOutputInnerPanel.setBorder( 312 setTitleOfBorder("Generator Output", loweredBorder)); 313 JLabel strGeneratorOutput = OctopusProjectFrame.createOctopusLabel(GENERATOR_OUTPUT, smallComponent); 314 generatorOutput = OctopusProjectFrame.createOctopusTextField(GENERATOR_OUTPUT, veryBigPlusButton); 315 generatorOutputInnerPanel.add(strGeneratorOutput); 316 generatorOutputInnerPanel.add(generatorOutput); 317 generatorOutputInnerPanel.add(browseGeneratorOutput); 318 319 generatorOutputPanel.add(generatorOutputInnerPanel); 320 generatorOutputPanel.add(Box.createHorizontalGlue()); 321 322 JPanel includeTableListPanel = new JPanel (); 324 includeTableListPanel.setLayout(new BoxLayout (includeTableListPanel, BoxLayout.X_AXIS)); 325 JPanel includeTableListInnerPanel = new JPanel (); 326 includeTableListInnerPanel.setLayout( 327 new BoxLayout (includeTableListInnerPanel, BoxLayout.X_AXIS)); 328 includeTableListInnerPanel.setBorder(setTitleOfBorder("Tables List", loweredBorder)); 329 JLabel strIncludeTableList = OctopusProjectFrame.createOctopusLabel(INCLUDE_TABLE_LIST, smallComponent); 330 JTextField includeTableList = 331 OctopusProjectFrame.createOctopusTextField(INCLUDE_TABLE_LIST, veryBigComponent); 332 includeTableListInnerPanel.add(strIncludeTableList); 333 includeTableListInnerPanel.add(includeTableList); 334 335 includeTableListPanel.add(includeTableListInnerPanel); 336 includeTableListPanel.add(Box.createHorizontalGlue()); 337 338 JPanel addPathsPanel = new JPanel (); 340 addPathsPanel.setLayout(new BoxLayout (addPathsPanel, BoxLayout.X_AXIS)); 341 JPanel addPathsInnerPanel = new JPanel (); 342 JButton browseAdditionalClass = OctopusProjectFrame.createOctopusButton("O", new Dimension (20, 20)); 343 browseAdditionalClass.setAction(new BrowseAction_AC()); 344 addPathsInnerPanel.setLayout(new BoxLayout (addPathsInnerPanel, BoxLayout.X_AXIS)); 345 addPathsInnerPanel.setBorder(setTitleOfBorder("Add new drivers", loweredBorder)); 346 JLabel strAddPaths = OctopusProjectFrame.createOctopusLabel(ADDITIONAL_PATHS, smallComponent); 347 addPaths = OctopusProjectFrame.createOctopusTextField(ADDITIONAL_PATHS, veryBigPlusButton); 348 addPathsInnerPanel.add(strAddPaths); 349 addPathsInnerPanel.add(addPaths); 350 addPathsInnerPanel.add(browseAdditionalClass); 351 352 addPathsPanel.add(addPathsInnerPanel); 353 addPathsPanel.add(Box.createHorizontalGlue()); 354 355 JPanel commonOptionsPanel = new JPanel (); 356 JPanel commonOptionsMainPanel = new JPanel (); 357 commonOptionsPanel.setLayout(new BoxLayout (commonOptionsPanel, BoxLayout.Y_AXIS)); 358 commonOptionsMainPanel.setLayout( 359 new BoxLayout (commonOptionsMainPanel, BoxLayout.X_AXIS)); 360 commonOptionsPanel.add(mainValueModePanel); 361 commonOptionsPanel.add(generatorOutputPanel); 362 commonOptionsPanel.add(includeTableListPanel); 363 commonOptionsPanel.add(addPathsPanel); 364 365 commonOptionsMainPanel.add(commonOptionsPanel); 366 commonOptionsMainPanel.add(Box.createHorizontalGlue()); 367 368 commonPanel.setLayout(new BoxLayout (commonPanel, BoxLayout.Y_AXIS)); 369 commonPanel.add(JDBCMainPanel); 370 commonPanel.add(commonOptionsMainPanel); 371 commonPanel.add(Box.createVerticalGlue()); 372 373 JPanel outputMode = new JPanel (); 374 outputMode.setLayout(new BoxLayout (outputMode, BoxLayout.X_AXIS)); 375 outputMode.setBorder(setTitleOfBorder("Output Mode", loweredBorder)); 376 sqlFiles = new JCheckBox (GENERATE_SQL); 377 sqlFiles.setSelected(true); 378 xmlFiles = new JCheckBox (GENERATE_XML); 379 xmlFiles.setSelected(true); 380 domlFile = new JCheckBox (GENERATE_DOML); 381 outputMode.add(sqlFiles); 382 outputMode.add(xmlFiles); 383 outputMode.add(domlFile); 384 385 sqlFiles.addActionListener(new ActionListener () { 386 public void actionPerformed(ActionEvent e) { 387 if (sqlFiles.isSelected()) { 388 createTables.setEnabled(true); 389 createTables.setSelected(true); 390 dropTables.setEnabled(true); 391 dropTables.setSelected(true); 392 createPK.setEnabled(true); 393 createPK.setSelected(true); 394 createFK.setEnabled(true); 395 createFK.setSelected(true); 396 dropFK.setEnabled(true); 397 dropFK.setSelected(true); 398 createIn.setEnabled(true); 399 createIn.setSelected(true); 400 createSQLForAll.setEnabled(true); 401 createSQLForAll.setSelected(false); 402 } else { 403 createTables.setSelected(false); 404 createTables.setEnabled(false); 405 dropTables.setEnabled(false); 406 dropTables.setSelected(false); 407 createPK.setEnabled(false); 408 createPK.setSelected(false); 409 createFK.setEnabled(false); 410 createFK.setSelected(false); 411 dropFK.setEnabled(false); 412 dropFK.setSelected(false); 413 createIn.setEnabled(false); 414 createIn.setSelected(false); 415 createSQLForAll.setEnabled(false); 416 createSQLForAll.setSelected(false); 417 } 418 } 419 }); 420 421 xmlFiles.addActionListener(new ActionListener () { 422 public void actionPerformed(ActionEvent e) { 423 if (xmlFiles.isSelected()) { 424 optimizedMode.setEnabled(true); 425 optimizedMode.setSelected(false); 426 fullMode.setEnabled(true); 427 fullMode.setSelected(true); 428 } else { 429 optimizedMode.setEnabled(false); 430 optimizedMode.setSelected(false); 431 fullMode.setEnabled(false); 432 fullMode.setSelected(false); 433 } 434 } 435 }); 436 437 domlFile.addActionListener(new ActionListener () { 438 public void actionPerformed(ActionEvent e) { 439 if (domlFile.isSelected()) { 440 packageField.setEditable(true); 441 packageField.setText(""); 442 } else { 443 packageField.setText(""); 444 packageField.setEditable(false); 445 446 } 447 } 448 }); 449 450 JPanel mainOutputMode = new JPanel (); 451 mainOutputMode.setLayout(new BoxLayout (mainOutputMode, BoxLayout.X_AXIS)); 452 mainOutputMode.add(outputMode); 453 mainOutputMode.add(Box.createHorizontalGlue()); 454 455 createTables = new JCheckBox (CREATE_TABLE); 456 createTables.setSelected(true); 457 createPK = new JCheckBox (CREATE_PRIMARY_KEYS); 458 createPK.setSelected(true); 459 createFK = new JCheckBox (CREATE_FOREIGN_KEYS); 460 createFK.setSelected(true); 461 createIn = new JCheckBox (CREATE_INDEXES); 462 createIn.setSelected(true); 463 dropTables = new JCheckBox (DROP_TABLE); 464 dropTables.setSelected(true); 465 dropFK = new JCheckBox (DROP_FOREIGN_KEYS); 466 dropFK.setSelected(true); 467 createSQLForAll = new JCheckBox (CREATE_SQL_FOR_ALL_VENDORS); 468 469 JPanel sqlOptionsPanel1 = new JPanel (); 470 sqlOptionsPanel1.setLayout(new BoxLayout (sqlOptionsPanel1, BoxLayout.Y_AXIS)); 471 sqlOptionsPanel1.add(dropTables); 472 sqlOptionsPanel1.add(createTables); 473 sqlOptionsPanel1.add(createPK); 474 475 JPanel sqlOptionsPanel2 = new JPanel (); 476 sqlOptionsPanel2.setLayout(new BoxLayout (sqlOptionsPanel2, BoxLayout.Y_AXIS)); 477 sqlOptionsPanel2.add(dropFK); 478 sqlOptionsPanel2.add(createFK); 479 sqlOptionsPanel2.add(createIn); 480 481 JPanel sqlOptionsPanel3 = new JPanel (); 482 sqlOptionsPanel3.setLayout(new BoxLayout (sqlOptionsPanel3, BoxLayout.Y_AXIS)); 483 sqlOptionsPanel3.add(createSQLForAll); 484 485 JPanel sqlOptionsPanel = new JPanel (); 486 sqlOptionsPanel.setLayout(new BoxLayout (sqlOptionsPanel, BoxLayout.X_AXIS)); 487 sqlOptionsPanel.setBorder(setTitleOfBorder("SQL Options", loweredBorder)); 488 sqlOptionsPanel.add(sqlOptionsPanel1); 489 sqlOptionsPanel.add(sqlOptionsPanel2); 490 sqlOptionsPanel.add(sqlOptionsPanel3); 491 492 JPanel mainSqlOptionsPanel = new JPanel (); 493 mainSqlOptionsPanel.setLayout(new BoxLayout (mainSqlOptionsPanel, BoxLayout.X_AXIS)); 494 mainSqlOptionsPanel.add(sqlOptionsPanel); 495 mainSqlOptionsPanel.add(Box.createHorizontalGlue()); 496 497 JPanel xmlOptionsPanel = new JPanel (); 498 xmlOptionsPanel.setLayout(new BoxLayout (xmlOptionsPanel, BoxLayout.X_AXIS)); 499 optimizedMode = new JRadioButton (OPTIMIZED_MODE); 500 fullMode = new JRadioButton (FULL_MODE); 501 503 optimizedMode.addActionListener(new ActionListener () { 504 public void actionPerformed(ActionEvent e) { 505 if (optimizedMode.isSelected()) { 506 fullMode.setSelected(false); 507 } else { 508 fullMode.setSelected(true); 509 } 510 } 511 }); 512 513 fullMode.addActionListener(new ActionListener () { 514 public void actionPerformed(ActionEvent e) { 515 if (fullMode.isSelected()) { 516 optimizedMode.setSelected(false); 517 } else { 518 optimizedMode.setSelected(true); 519 } 520 } 521 }); 522 523 xmlOptionsPanel.setBorder(setTitleOfBorder("XML Options", loweredBorder)); 524 xmlOptionsPanel.add(optimizedMode); 525 xmlOptionsPanel.add(fullMode); 526 527 JPanel mainXmlOptionsPanel = new JPanel (); 528 mainXmlOptionsPanel.setLayout(new BoxLayout (mainXmlOptionsPanel, BoxLayout.X_AXIS)); 529 mainXmlOptionsPanel.add(xmlOptionsPanel); 530 mainXmlOptionsPanel.add(Box.createHorizontalGlue()); 531 532 JPanel packagePanel = new JPanel (); 533 packagePanel.setLayout(new BoxLayout (packagePanel, BoxLayout.X_AXIS)); 534 packagePanel.setBorder(setTitleOfBorder("Package name for doml file", loweredBorder)); 535 packageField = OctopusProjectFrame.createOctopusTextField(PACKAGE_NAME, veryBigComponent); 536 packageField.setEditable(false); 537 JLabel strPackageField = OctopusProjectFrame.createOctopusLabel(PACKAGE_NAME, smallComponent); 538 packagePanel.add(strPackageField); 539 packagePanel.add(packageField); 540 541 JPanel mainPackagePanel = new JPanel (); 542 mainPackagePanel.setLayout(new BoxLayout (mainPackagePanel, BoxLayout.X_AXIS)); 543 mainPackagePanel.add(packagePanel); 544 mainPackagePanel.add(Box.createHorizontalGlue()); 545 546 547 &nbs
|