1 package org.sape.carbon.services.console; 2 3 import java.awt.CardLayout ; 4 import java.awt.Point ; 5 import java.awt.Rectangle ; 6 import java.util.Collection ; 7 import java.util.HashMap ; 8 import java.util.Iterator ; 9 import java.util.Map ; 10 import java.util.Set ; 11 import java.util.TreeMap ; 12 import java.util.TreeSet ; 13 14 import javax.swing.JFrame ; 15 import javax.swing.tree.DefaultMutableTreeNode ; 16 import javax.swing.tree.DefaultTreeModel ; 17 import javax.swing.tree.MutableTreeNode ; 18 import javax.swing.tree.TreePath ; 19 20 import org.sape.carbon.core.component.Component; 21 import org.sape.carbon.core.component.Lookup; 22 import org.sape.carbon.core.config.Config; 23 import org.sape.carbon.core.config.Configuration; 24 import org.sape.carbon.core.config.ConfigurationException; 25 import org.sape.carbon.core.config.node.ConfigurationDocument; 26 import org.sape.carbon.core.config.node.Folder; 27 import org.sape.carbon.core.config.node.Node; 28 import org.sape.carbon.core.config.node.NodeRemovalException; 29 import org.sape.carbon.core.exception.ExceptionUtility; 30 import org.sape.carbon.core.util.reflection.ClassFinder; 31 32 import org.apache.commons.logging.Log; 33 import org.apache.commons.logging.LogFactory; 34 35 36 45 public class Configurator extends JFrame { 46 47 private Log log = LogFactory.getLog(this.getClass()); 48 50 private ClassFinder configurationClassFinder; 51 private ClassFinder componentClassFinder; 52 53 private ConfiguratorConfiguration configuratorConfig; 54 55 private Map serverConnections = new HashMap (); 57 58 59 public Configurator() { 60 this.setLocation(200,100); 61 initComponents(); 62 refreshMenuItemActionPerformed(null); 63 64 setup(); 65 } 68 69 private void setup() { 70 71 DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode (); 72 DefaultMutableTreeNode localServer = new DefaultMutableTreeNode ("Local JVM"); 73 rootNode.add(localServer); 74 75 this.serverSelectTree.setModel(new DefaultTreeModel (rootNode)); 76 77 try { 78 this.configuratorConfig = 79 (ConfiguratorConfiguration) 80 Config.getInstance().fetchConfiguration("/core/ConfiguratorPrefs"); 81 82 this.setBounds( 83 this.configuratorConfig.getX(), 84 this.configuratorConfig.getY(), 85 this.configuratorConfig.getWidth(), 86 this.configuratorConfig.getHeight()); 87 88 } catch (Exception e) { 89 91 if (this.configuratorConfig == null) { 92 this.configuratorConfig = 93 (ConfiguratorConfiguration) 94 Config.getInstance().createConfiguration(ConfiguratorConfiguration.class); 95 this.configuratorConfig.setConfigurationName("/core/ConfiguratorPrefs"); 96 } 97 } 98 } 99 100 private void tearDown() { 101 Rectangle bounds = this.getBounds(); 102 this.configuratorConfig.setX(bounds.x); 103 this.configuratorConfig.setY(bounds.y); 104 this.configuratorConfig.setWidth(bounds.width); 105 this.configuratorConfig.setHeight(bounds.height); 106 try { 107 Config.getInstance().storeConfiguration( 108 this.configuratorConfig.getConfigurationName(), 109 this.configuratorConfig); 110 } catch (Exception e) { 111 e.printStackTrace(); 112 } 113 } 114 115 private void loadConfigurationChoices() { 116 117 if (this.configurationClassFinder == null) 118 this.configurationClassFinder = 119 new ClassFinder(Configuration.class,"sapient"); 120 121 Set classSet = this.configurationClassFinder.getClasses(); 122 TreeSet orderedClasses = new TreeSet (classSet); 123 Iterator classes = orderedClasses.iterator(); 124 while (classes.hasNext()) { 125 126 this.newConfigurationSubMenu.add(classes.next().toString()); 127 } 128 } 129 130 public void connectToServer( 131 String initialContextFactory, 132 String serverURL, 133 String principle, 134 String credentials) { 135 136 137 DefaultTreeModel model = (DefaultTreeModel ) this.serverSelectTree.getModel(); 138 DefaultMutableTreeNode root = (DefaultMutableTreeNode ) model.getRoot(); 139 root.add(new DefaultMutableTreeNode (serverURL)); 140 model.setRoot(root); 141 this.serverSelectTree.repaint(); 142 143 ServerConnectionPane serverConnection = null; 144 if ("com.sun.jndi.rmi.registry.RegistryContextFactory".equals(initialContextFactory)) { 145 serverConnection = new Mx4jServerConnection(initialContextFactory, serverURL, this.desktopPane); 146 } else if ("weblogic.jndi.WLInitialContextFactory".equals(initialContextFactory)) { 147 serverConnection = new WebLogicServerConnection(initialContextFactory, serverURL, principle, credentials, this.desktopPane); 148 } else { 149 } 151 152 153 this.serverConnectHolderPane.add(serverConnection, serverURL); 154 155 this.serverConnections.put(serverURL, serverConnection); 156 157 ((CardLayout ) 158 this.serverConnectHolderPane.getLayout()).show(serverConnectHolderPane,serverURL); 159 160 final ServerConnectionPane sConn = serverConnection; 161 Thread thread = new Thread (new Runnable () { 162 public void run() { 163 sConn.refreshMBeans(); 164 } 165 }); 166 thread.start(); 167 } 168 169 170 175 private void initComponents() { configDocumentPopupMenu = new javax.swing.JPopupMenu (); 177 nsOpenMenuItem = new javax.swing.JMenuItem (); 178 nsDeleteMenuItem = new javax.swing.JMenuItem (); 179 jSeparator1 = new javax.swing.JSeparator (); 180 nsCutMenuItem = new javax.swing.JMenuItem (); 181 nsCopyMenuItem = new javax.swing.JMenuItem (); 182 nsPasteMenuItem = new javax.swing.JMenuItem (); 183 configFolderPopupMenu = new javax.swing.JPopupMenu (); 184 newDirectoryMenuItem = new javax.swing.JMenuItem (); 185 newConfigurationMenuItem = new javax.swing.JMenuItem (); 186 newConfigurationSubMenu = new javax.swing.JMenu (); 187 componentPopupMenu = new javax.swing.JPopupMenu (); 188 openComponentMenuItem = new javax.swing.JMenuItem (); 189 serverSelectPopupMenu = new javax.swing.JPopupMenu (); 190 serverDisconnectMenuItem = new javax.swing.JMenuItem (); 191 serverRefreshMenuItem = new javax.swing.JMenuItem (); 192 jSplitPane1 = new javax.swing.JSplitPane (); 193 jSplitPane2 = new javax.swing.JSplitPane (); 194 serverConnectHolderPane = new javax.swing.JPanel (); 195 localServerTabPane = new javax.swing.JTabbedPane (); 196 componentJScrollPane = new javax.swing.JScrollPane (); 197 componentJTree = new javax.swing.JTree (); 198 configJScrollPane = new javax.swing.JScrollPane (); 199 namespaceJTree = new javax.swing.JTree (); 200 jPanel1 = new javax.swing.JPanel (); 201 jScrollPane1 = new javax.swing.JScrollPane (); 202 serverSelectTree = new javax.swing.JTree (); 203 jPanel2 = new javax.swing.JPanel (); 204 jLabel1 = new javax.swing.JLabel (); 205 desktopScrollPane = new javax.swing.JScrollPane (); 206 desktopPane = new MDIDesktopPane(); 207 menuBar = new javax.swing.JMenuBar (); 208 fileMenu = new javax.swing.JMenu (); 209 openMenuItem = new javax.swing.JMenuItem (); 210 jSeparator2 = new javax.swing.JSeparator (); 211 saveMenuItem = new javax.swing.JMenuItem (); 212 saveAsMenuItem = new javax.swing.JMenuItem (); 213 jSeparator3 = new javax.swing.JSeparator (); 214 exitMenuItem = new javax.swing.JMenuItem (); 215 editMenu = new javax.swing.JMenu (); 216 cutMenuItem = new javax.swing.JMenuItem (); 217 copyMenuItem = new javax.swing.JMenuItem (); 218 pasteMenuItem = new javax.swing.JMenuItem (); 219 deleteMenuItem = new javax.swing.JMenuItem (); 220 repositoryMenu = new javax.swing.JMenu (); 221 refreshMenuItem = new javax.swing.JMenuItem (); 222 reloadConfigMenuItem = new javax.swing.JMenuItem (); 223 jSeparator4 = new javax.swing.JSeparator (); 224 loadMBeansMenuItem = new javax.swing.JMenuItem (); 225 connectToServerMenuItem = new javax.swing.JMenuItem (); 226 testMenu = new javax.swing.JMenu (); 227 executeTestJMenuItem = new javax.swing.JMenuItem (); 228 windowMenu = new WindowMenu((MDIDesktopPane)this.desktopPane); 229 helpMenu = new javax.swing.JMenu (); 230 contentMenuItem = new javax.swing.JMenuItem (); 231 aboutMenuItem = new javax.swing.JMenuItem (); 232 233 nsOpenMenuItem.setText("Open"); 234 nsOpenMenuItem.addActionListener(new java.awt.event.ActionListener () { 235 public void actionPerformed(java.awt.event.ActionEvent evt) { 236 nsOpenMenuItemActionPerformed(evt); 237 } 238 }); 239 240 configDocumentPopupMenu.add(nsOpenMenuItem); 241 nsDeleteMenuItem.setText("Delete"); 242 nsDeleteMenuItem.setIcon(new javax.swing.ImageIcon (getClass().getResource("/rsrc/icons/Delete16.gif"))); 243 nsDeleteMenuItem.addActionListener(new java.awt.event.ActionListener () { 244 public void actionPerformed(java.awt.event.ActionEvent evt) { 245 nsDeleteMenuItemActionPerformed(evt); 246 } 247 }); 248 249 configDocumentPopupMenu.add(nsDeleteMenuItem); 250 configDocumentPopupMenu.add(jSeparator1); 251 nsCutMenuItem.setText("Cut"); 252 nsCutMenuItem.setIcon(new javax.swing.ImageIcon (getClass().getResource("/rsrc/icons/Cut16.gif"))); 253 configDocumentPopupMenu.add(nsCutMenuItem); 254 nsCopyMenuItem.setText("Copy"); 255 nsCopyMenuItem.setIcon(new javax.swing.ImageIcon (getClass().getResource("/rsrc/icons/Copy16.gif"))); 256 configDocumentPopupMenu.add(nsCopyMenuItem); 257 nsPasteMenuItem.setText("Paste"); 258 configDocumentPopupMenu.add(nsPasteMenuItem); 259 newDirectoryMenuItem.setText("New Directory.."); 260 newDirectoryMenuItem.addActionListener(new java.awt.event.ActionListener () { 261 public void actionPerformed(java.awt.event.ActionEvent evt) { 262 newDirectoryMenuItemActionPerformed(evt); 263 } 264 }); 265 266 configFolderPopupMenu.add(newDirectoryMenuItem); 267 newConfigurationMenuItem.setText("New Configuration..."); 268 newConfigurationMenuItem.addActionListener(new java.awt.event.ActionListener () { 269 public void actionPerformed(java.awt.event.ActionEvent evt) { 270 newConfigurationMenuItemActionPerformed(evt); 271 } 272 }); 273 274 configFolderPopupMenu.add(newConfigurationMenuItem); 275 newConfigurationSubMenu.setText("New Configuration"); 276 configFolderPopupMenu.add(newConfigurationSubMenu); 277 openComponentMenuItem.setText("Open..."); 278 openComponentMenuItem.addActionListener(new java.awt.event.ActionListener () { 279 public void actionPerformed(java.awt.event.ActionEvent evt) { 280 openComponentMenuItemActionPerformed(evt); 281 } 282 }); 283 284 componentPopupMenu.add(openComponentMenuItem); 285 serverDisconnectMenuItem.setText("Disconnect"); 286 serverDisconnectMenuItem.addActionListener(new java.awt.event.ActionListener () { 287 public void actionPerformed(java.awt.event.ActionEvent evt) { 288 serverDisconnectMenuItemActionPerformed(evt); 289 } 290 }); 291 292 serverSelectPopupMenu.add(serverDisconnectMenuItem); 293 serverRefreshMenuItem.setText("Refresh"); 294 serverRefreshMenuItem.setIcon(new javax.swing.ImageIcon (getClass().getResource("/rsrc/icons/Refresh16.gif"))); 295 serverRefreshMenuItem.addActionListener(new java.awt.event.ActionListener () { 296 public void actionPerformed(java.awt.event.ActionEvent evt) { 297 serverRefreshMenuItemActionPerformed(evt); 298 } 299 }); 300 301 serverSelectPopupMenu.add(serverRefreshMenuItem); 302 303 setTitle("Framework Configurator"); 304 addWindowListener(new java.awt.event.WindowAdapter () { 305 public void windowClosing(java.awt.event.WindowEvent evt) { 306 exitForm(evt); 307 } 308 }); 309 310 jSplitPane1.setDividerLocation(220); 311 jSplitPane1.setContinuousLayout(true); 312 jSplitPane1.setPreferredSize(new java.awt.Dimension (500, 450)); 313 jSplitPane2.setDividerLocation(100); 314 jSplitPane2.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); 315 serverConnectHolderPane.setLayout(new java.awt.CardLayout ()); 316 317 localServerTabPane.setFont(new java.awt.Font ("Dialog", 0, 12)); 318 componentJScrollPane.setMinimumSize(new java.awt.Dimension (120, 22)); 319 componentJScrollPane.setPreferredSize(new java.awt.Dimension (120, 3)); 320 componentJTree.setModel(null); 321 componentJTree.addMouseListener(new java.awt.event.MouseAdapter () { 322 public void mouseClicked(java.awt.event.MouseEvent evt) { 323 componentJTreeMouseClicked(evt); 324 } 325 }); 326 327 componentJScrollPane.setViewportView(componentJTree); 328 329 localServerTabPane.addTab("Component", null, componentJScrollPane, "Displays components live in the system"); 330 331 configJScrollPane.setMinimumSize(new java.awt.Dimension (120, 22)); 332 configJScrollPane.setPreferredSize(new java.awt.Dimension (120, 3)); 333 namespaceJTree.setModel(null); 334 namespaceJTree.addKeyListener(new java.awt.event.KeyAdapter () { 335 public void keyTyped(java.awt.event.KeyEvent evt) { 336 namespaceJTreeKeyTyped(evt); 337 } 338 }); 339 340 namespaceJTree.addMouseListener(new java.awt.event.MouseAdapter () { 341 public void mouseClicked(java.awt.event.MouseEvent evt) { 342 namespaceJTreeMouseClicked(evt); 343 } 344 }); 345 346 configJScrollPane.setViewportView(namespaceJTree); 347 348 localServerTabPane.addTab("Configuration", configJScrollPane); 349 350 serverConnectHolderPane.add(localServerTabPane, "Local JVM"); 351 352 jSplitPane2.setRightComponent(serverConnectHolderPane); 353 354 jPanel1.setLayout(new java.awt.BorderLayout ()); 355 356 serverSelectTree.addMouseListener(new java.awt.event.MouseAdapter () { 357 public void mouseClicked(java.awt.event.MouseEvent evt) { 358 serverSelectTreeMouseClicked(evt); 359 } 360 }); 361 362 serverSelectTree.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener () { 363 public void valueChanged(javax.swing.event.TreeSelectionEvent evt) { 364 serverSelectTreeValueChanged(evt); 365 } 366 }); 367 368 jScrollPane1.setViewportView(serverSelectTree); 369 370 jPanel1.add(jScrollPane1, java.awt.BorderLayout.CENTER); 371 372 jLabel1.setFont(new java.awt.Font ("Default", 0, 12)); 373 jLabel1.setText("Administration Server"); 374 jPanel2.add(jLabel1); 375 376 jPanel1.add(jPanel2, java.awt.BorderLayout.NORTH); 377 378 jSplitPane2.setTopComponent(jPanel1); 379 380 jSplitPane1.setLeftComponent(jSplitPane2); 381 382 desktopScrollPane.setViewportView(desktopPane); 383 384 jSplitPane1.setRightComponent(desktopScrollPane); 385 386 getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER); 387 388 fileMenu.setText("File"); 389 fileMenu.addActionListener(new java.awt.event.ActionListener () { 390 public void actionPerformed(java.awt.event.ActionEvent evt) { 391 fileMenuActionPerformed(evt); 392 } 393 }); 394 395 openMenuItem.setText("Open"); 396 fileMenu.add(openMenuItem); 397 fileMenu.add(jSeparator2); 398 saveMenuItem.setText("Save"); 399 fileMenu.add(saveMenuItem); 400 saveAsMenuItem.setText("Save As ..."); 401 fileMenu.add(saveAsMenuItem); 402 fileMenu.add(jSeparator3); 403 exitMenuItem.setText("Exit"); 404 exitMenuItem.addActionListener(new java.awt.event.ActionListener () { 405 public void actionPerformed(java.awt.event.ActionEvent evt) { 406 exitMenuItemActionPerformed(evt); 407 } 408 }); 409 410 fileMenu.add(exitMenuItem); 411 menuBar.add(fileMenu); 412 editMenu.setText("Edit"); 413 editMenu.addActionListener(new java.awt.event.ActionListener () { 414 public void actionPerformed(java.awt.event.ActionEvent evt) { 415 editMenuActionPerformed(evt); 416 } 417 }); 418 419 cutMenuItem.setText("Cut"); 420 editMenu.add(cutMenuItem); 421 copyMenuItem.setText("Copy"); 422 editMenu.add(copyMenuItem); 423 pasteMenuItem.setText("Paste"); 424 editMenu.add(pasteMenuItem); 425 deleteMenuItem.setText("Delete"); 426 editMenu.add(deleteMenuItem); 427 menuBar.add(editMenu); 428 repositoryMenu.setText("Repository"); 429 repositoryMenu.addActionListener(new java.awt.event.ActionListener () { 430 public void actionPerformed(java.awt.event.ActionEvent evt) { 431 repositoryMenuActionPerformed(evt); 432 } 433 }); 434 435 refreshMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.CTRL_MASK)); 436 refreshMenuItem.setText("Refresh"); 437 refreshMenuItem.setName("Refresh"); 438 refreshMenuItem.addActionListener(new java.awt.event.ActionListener () { 439 public void actionPerformed(java.awt.event.ActionEvent evt) { 440 refreshMenuItemActionPerformed(evt); 441 } 442 }); 443 444 repositoryMenu.add(refreshMenuItem); 445 reloadConfigMenuItem.setText("Reload Configuration..."); 446 repositoryMenu.add(reloadConfigMenuItem); 447 repositoryMenu.add(jSeparator4); 448 loadMBeansMenuItem.setText("Load Remote MBeans"); 449 loadMBeansMenuItem.addActionListener(new java.awt.event.ActionListener () { 450 public void actionPerformed(java.awt.event.ActionEvent evt) { 451 loadMBeansMenuItemActionPerformed(evt); 452 } 453 }); 454 455 repositoryMenu.add(loadMBeansMenuItem); 456 connectToServerMenuItem.setText("Connect to Server..."); 457 connectToServerMenuItem.addActionListener(new java.awt.event.ActionListener () { 458 public void actionPerformed(java.awt.event.ActionEvent evt) { 459 connectToServerMenuItemActionPerformed(evt); 460 } 461 }); 462 463 repositoryMenu.add(connectToServerMenuItem); 464 menuBar.add(repositoryMenu); 465 testMenu.setText("Tests"); 466 testMenu.addActionListener(new java.awt.event.ActionListener () { 467 public void actionPerformed(java.awt.event.ActionEvent evt) { 468 testMenuActionPerformed(evt); 469 } 470 }); 471 472 executeTestJMenuItem.setText("Execute Test Harness..."); 473 executeTestJMenuItem.addActionListener(new java.awt.event.ActionListener () { 474 public void actionPerformed(java.awt.event.ActionEvent evt) { 475 executeTestJMenuItemActionPerformed(evt); 476 } 477 }); 478 479 testMenu.add(executeTestJMenuItem); 480 menuBar.add(testMenu); 481 windowMenu.setText("Windows"); 482 menuBar.add(windowMenu); 483 helpMenu.setText("Help"); 484 helpMenu.addActionListener(new java.awt.event.ActionListener () { 485 public void actionPerformed(java.awt.event.ActionEvent evt) { 486 helpMenuActionPerformed(evt); 487 } 488 }); 489 490 contentMenuItem.setText("Contents"); 491 helpMenu.add(contentMenuItem); 492 aboutMenuItem.setText("About"); 493 aboutMenuItem.addActionListener(new java.awt.event.ActionListener () { 494 public void actionPerformed(java.awt.event.ActionEvent evt) { 495 aboutMenuItemActionPerformed(evt); 496 } 497 }); 498 499 helpMenu.add(aboutMenuItem); 500 menuBar.add(helpMenu); 501 setJMenuBar(menuBar); 502 503 pack(); 504 } 506 private void serverRefreshMenuItemActionPerformed(java.awt.event.ActionEvent evt) { String serverName = this.serverSelectTree.getSelectionPath().getLastPathComponent().toString(); 509 510 final ServerConnectionPane sConn = 511 (ServerConnectionPane) 512 this.serverConnections.get(serverName);; 513 Thread thread = new Thread (new Runnable () { 514 public void run() { 515 try { Thread.sleep(500); } catch (Exception e) { } 516 sConn.refreshMBeans(); 517 } 518 }); 519 thread.start(); 520 521 } 523 private void namespaceJTreeKeyTyped(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) { 526 nsOpenMenuItemActionPerformed(null); 527 } 528 } 530 531 private void serverDisconnectMenuItemActionPerformed(java.awt.event.ActionEvent evt) { String serverConnectId = this.serverSelectTree.getSelectionPath().getLastPathComponent().toString(); 534 535 DefaultMutableTreeNode parent = 536 (DefaultMutableTreeNode ) 537 this.serverSelectTree.getSelectionPath().getParentPath().getLastPathComponent(); 538 parent.remove((MutableTreeNode )this.serverSelectTree.getSelectionPath().getLastPathComponent()); 539 this.serverSelectTree.setModel(this.serverSelectTree.getModel()); 540 this.serverSelectTree.repaint(); 541 542 Object serverPanel = this.serverConnections.remove(serverConnectId); 543 this.serverConnectHolderPane.remove((java.awt.Component )serverPanel); 544 545 ((ServerConnectionPane)serverPanel).disconnect(); 546 547 } 549 private void serverSelectTreeMouseClicked(java.awt.event.MouseEvent evt) { int selRow = this.serverSelectTree.getRowForLocation(evt.getX(), evt.getY()); 552 TreePath selPath = this.serverSelectTree.getPathForLocation(evt.getX(), evt.getY()); 553 if(selRow != -1) { 554 if ((evt.getModifiers() & evt.BUTTON3_MASK) > 0) { 556 557 Point pt = evt.getPoint(); 558 559 TreePath path = 560 this.serverSelectTree.getPathForLocation(pt.x,pt.y); 561 562 this.serverSelectTree.setSelectionPath(path); 563 564 String objName = this.serverSelectTree.getSelectionPath().getLastPathComponent().toString(); 565 566 this.serverSelectPopupMenu.show( 567 this.serverSelectTree, 568 pt.x, pt.y); 569 570 } 571 } 572 } 574 private void serverSelectTreeValueChanged(javax.swing.event.TreeSelectionEvent evt) { if ((evt != null) && (evt.getNewLeadSelectionPath() != null)) { 577 String serverName = evt.getNewLeadSelectionPath().getLastPathComponent().toString(); 578 ((CardLayout ) 579 this.serverConnectHolderPane.getLayout()).show(this.serverConnectHolderPane,serverName); 580 } 581 } 583 private void connectToServerMenuItemActionPerformed(java.awt.event.ActionEvent evt) { new RemoteServerConnectDialog(this,true).show(); 586 } 588 private void loadMBeansMenuItemActionPerformed(java.awt.event.ActionEvent evt) { } 592 private void nsDeleteMenuItemActionPerformed(java.awt.event.ActionEvent evt) { DefaultMutableTreeNode node = 595 (DefaultMutableTreeNode ) 596 this.namespaceJTree.getSelectionPath().getLastPathComponent(); 597 598 Node configNode = (Node ) node.getUserObject(); 599 600 try { 601 configNode.remove(); 602 refreshConfigurations(); 603 } catch (NodeRemovalException nre) { 604 log.error( 605 "Unable to delete configuration document: " + 606 ExceptionUtility.printStackTracesToString(nre)); 607 } 608 } 610 private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) { (new AboutFrame()).show(); 613 } 615 private void componentJTreeMouseClicked(java.awt.event.MouseEvent evt) { 619 int selRow = this.componentJTree.getRowForLocation(evt.getX(), evt.getY()); 620 TreePath selPath = this.componentJTree.getPathForLocation(evt.getX(), evt.getY()); 621 if(selRow != -1) { 622 if (evt.getClickCount() == 2) { 623 this.componentJTree.setSelectionPath(selPath); 624 625 openComponentMenuItemActionPerformed(null); 626 627 628 } else if ((evt.getModifiers() & evt.BUTTON3_MASK) > 0) { 629 632 Point pt = evt.getPoint(); 633 634 TreePath path = 635 this.componentJTree.getPathForLocation(pt.x,pt.y); 636 637 this.componentJTree.setSelectionPath(path); 638 639 DefaultMutableTreeNode tn = 640 (DefaultMutableTreeNode ) path.getLastPathComponent(); 641 642 this.componentPopupMenu.show(this.componentJTree,pt.x,pt.y); 643 } 644 } 645 } 647 private void openComponentMenuItemActionPerformed(java.awt.event.ActionEvent evt) { 650 DefaultMutableTreeNode node = 651 (DefaultMutableTreeNode ) 652 this.componentJTree.getSelectionPath().getLastPathComponent(); 653 654 String componentName = node.getUserObject().toString(); 655 656 Component component = 657 Lookup.getInstance().fetchComponent(componentName); 658 659 java.awt.Component componentFrame = new ComponentFrame(component); 660 this.desktopPane.add(componentFrame); 661 componentFrame.setVisible(true); 662 } 664 private void newConfigurationMenuItemActionPerformed(java.awt.event.ActionEvent evt) { ConfigurationWizard wizard = new ConfigurationWizard(this,true); 667 wizard.setSize(400,450); 668 wizard.setLocationRelativeTo(this); 669 670 DefaultMutableTreeNode treeNode = 671 (DefaultMutableTreeNode ) this.namespaceJTree.getSelectionPath().getLastPathComponent(); 672 Folder node = (Folder) treeNode.getUserObject(); 673 674 wizard.setDirectoryPath(node.getAbsoluteName()); 675 wizard.setVisible(true); 676 678 } 680 private void executeTestJMenuItemActionPerformed(java.awt.event.ActionEvent evt) { 683 689 junit.swingui.TestRunner.main(new String [] { "-noloading" } ); 690 } 692 private void testMenuActionPerformed(java.awt.event.ActionEvent evt) { } 696 private void editMenuActionPerformed(java.awt.event.ActionEvent evt) { } 700 private void fileMenuActionPerformed(java.awt.event.ActionEvent evt) { } 704 private void helpMenuActionPerformed(java.awt.event.ActionEvent evt) { } 708 private void repositoryMenuActionPerformed(java.awt.event.ActionEvent evt) { } 712 private void nsOpenMenuItemActionPerformed(java.awt.event.ActionEvent evt) { 715 DefaultMutableTreeNode node = 716 (DefaultMutableTreeNode ) (this.namespaceJTree.getSelectionPath().getLastPathComponent()); 717 718 Node configNode = (Node ) node.getUserObject(); 719 720 721 Configuration config = null; 722 723 try { 724 config = ((ConfigurationDocument)configNode).readConfiguration(); 725 726 ObjectFrame objFrame = 727 new ObjectFrame(config); 728 this.desktopPane.add(objFrame); 729 objFrame.show(); 730 732 } catch (ConfigurationException ce) { 733 ce.printStackTrace(); 734 } 735 } 737 private void newDirectoryMenuItemActionPerformed(java.awt.event.ActionEvent evt) { DefaultMutableTreeNode dmtn = 740 (DefaultMutableTreeNode ) this.namespaceJTree.getSelectionPath().getLastPathComponent(); 741 742 Node node = 743 (Node ) dmtn.getUserObject(); 744 745 746 753 } 755 private void namespaceJTreeMouseClicked(java.awt.event.MouseEvent evt) { 758 int selRow = this.namespaceJTree.getRowForLocation(evt.getX(), evt.getY()); 759 TreePath selPath = this.namespaceJTree.getPathForLocation(evt.getX(), evt.getY()); 760 if(selRow != -1) { 761 if (evt.getClickCount() == 2) { 762 this.namespaceJTree.setSelectionPath(selPath); 763 if (((DefaultMutableTreeNode )selPath.getLastPathComponent()).getUserObject() instanceof ConfigurationDocument) { 764 nsOpenMenuItemActionPerformed(null); 765 } 766 767 } else if ((evt.getModifiers() & evt.BUTTON3_MASK) > 0) { 768 771 Point pt = evt.getPoint(); 772 773 TreePath path = 774 this.namespaceJTree.getPathForLocation(pt.x,pt.y); 775 776 this.namespaceJTree.setSelectionPath(path); 777 778 DefaultMutableTreeNode tn = 779 (DefaultMutableTreeNode ) path.getLastPathComponent(); 780 781 Node node = 782 (Node )tn.getUserObject(); 783 784 if (node.getAllowsChildren()) { 785 this.configFolderPopupMenu.show( 786 this.namespaceJTree, 787 pt.x,pt.y); 788 } else { 789 this.configDocumentPopupMenu.show( 790 this.namespaceJTree, 791 pt.x,pt.y); 792 } 793 } 794 } 795 } 797 private void refreshMenuItemActionPerformed(java.awt.event.ActionEvent evt) { this.refreshConfigurations(); 799 800 this.refreshComponents(); 801 } 803 public void refreshConfigurations() { 804 DefaultMutableTreeNode root = null; 805 806 try { 807 Node rootNode = Config.getInstance().fetchNode(Config.ROOT_NODE_NAME); 808 rootNode.refresh(); 809 root = 810 new DefaultMutableTreeNode (rootNode); 811 } catch (Exception e) { 812 e.printStackTrace(); 813 } 814 addDirectory(root); 815 816 DefaultTreeModel model = 817 new DefaultTreeModel (root); 818 819 this.namespaceJTree.setModel(model); 820 this.namespaceJTree.repaint(); 821 } 822 823 public void refreshComponents() { 824 825 try { 826 DefaultMutableTreeNode root = 827 new DefaultMutableTreeNode ("Components"); 828 829 Collection componentNames = 830 Lookup.getInstance().getComponentKeeper().getComponentNames(); 831 832 Iterator iter = componentNames.iterator(); 833 while (iter.hasNext()) { 834 String componentName = (String ) iter.next(); 835 836 DefaultMutableTreeNode child = 837 new DefaultMutableTreeNode (componentName); 838 root.add(child); 839 } 840 841 DefaultTreeModel model = 842 new DefaultTreeModel (root); 843 this.componentJTree.setModel(model); 844 this.componentJTree.repaint(); 845 } catch (Exception e) { 846 847 e.printStackTrace(); 848 } 849 } 850 851 private void addDirectory(DefaultMutableTreeNode node) { 852 853 854 855 Node tNode = (Node )node.getUserObject(); 856 857 Node [] children = null; 858 try { 859 children = tNode.fetchChildren(); 860 } catch (Exception e) { 861 } 863 864 TreeMap map = new TreeMap (String.CASE_INSENSITIVE_ORDER); 865 866 for (int i=0;(children != null) && i<children.length;i++) { 867 868 Node child = 869 children[i]; 870 if (!child.isRemoved()) { 871 map.put(child.getName(),child); 872 } 873 } 874 875 Iterator iter = map.values().iterator(); 876 while (iter.hasNext()) { 877 Node child = (Node ) iter.next(); 878 879 DefaultMutableTreeNode childNode = 880 new DefaultMutableTreeNode (child); 881 882 node.add(childNode); 883 884 if (child.getAllowsChildren() && 885 child.getAbsoluteName().startsWith( 886 tNode.getAbsoluteName() + Node.DELIMITER)) { 887 888 addDirectory(childNode); 889 } 890 } 891 892 } 893 894 895 private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) { tearDown(); 897 System.exit(0); 898 } 900 901 private void exitForm(java.awt.event.WindowEvent evt) { tearDown(); 903 System.exit(0); 904 } 906 909 public static void main(String args[]) { 910 try { 911 new Configurator().show(); 912 } catch (Throwable e) { 913 e.printStackTrace(); 914 } 915 } 916 917 private javax.swing.JSeparator jSeparator2; 919 private javax.swing.JSeparator jSeparator4; 920 private javax.swing.JScrollPane desktopScrollPane; 921 private javax.swing.JTree serverSelectTree; 922 private javax.swing.JMenu fileMenu; 923 private javax.swing.JTabbedPane localServerTabPane; 924 private javax.swing.JMenuItem newConfigurationMenuItem; 925 private javax.swing.JMenuItem contentMenuItem; 926 private javax.swing.JPopupMenu configDocumentPopupMenu; 927 private javax.swing.JMenuItem serverRefreshMenuItem; 928 private javax.swing.JMenuItem exitMenuItem; 929 private javax.swing.JMenuItem saveMenuItem; 930 private javax.swing.JMenuItem copyMenuItem; 931 private javax.swing.JMenuItem refreshMenuItem; 932 private javax.swing.JMenuItem cutMenuItem; 933 private javax.swing.JMenuBar menuBar; 934 private javax.swing.JPopupMenu configFolderPopupMenu; 935 private javax.swing.JScrollPane configJScrollPane; 936 private javax.swing.JMenuItem executeTestJMenuItem; 937 private javax.swing.JMenu editMenu; 938 private javax.swing.JPanel jPanel1; 939 private javax.swing.JTree namespaceJTree; 940 private javax.swing.JMenuItem openComponentMenuItem; 941 private javax.swing.JPopupMenu componentPopupMenu; 942 private javax.swing.JPanel serverConnectHolderPane; 943 private javax.swing.JMenuItem nsCopyMenuItem; 944 private javax.swing.JMenu testMenu; 945 private javax.swing.JSeparator jSeparator3; 946 private javax.swing.JMenuItem newDirectoryMenuItem; 947 private javax.swing.JMenuItem loadMBeansMenuItem; 948 private javax.swing.JPopupMenu serverSelectPopupMenu; 949 private javax.swing.JMenu newConfigurationSubMenu; 950 private javax.swing.JMenuItem connectToServerMenuItem; 951 private javax.swing.JScrollPane jScrollPane1; 952 private javax.swing.JMenuItem reloadConfigMenuItem; 953 private javax.swing.JLabel jLabel1; 954 private javax.swing.JScrollPane componentJScrollPane; 955 private javax.swing.JMenu repositoryMenu; 956 private javax.swing.JDesktopPane desktopPane; 957 private javax.swing.JSplitPane jSplitPane2; 958 private javax.swing.JTree componentJTree; 959 private javax.swing.JMenuItem nsOpenMenuItem; 960 private javax.swing.JSplitPane jSplitPane1; 961 private javax.swing.JMenuItem nsDeleteMenuItem; 962 private javax.swing.JMenuItem saveAsMenuItem; 963 private javax.swing.JPanel jPanel2; 964 private javax.swing.JMenuItem nsPasteMenuItem; 965 private javax.swing.JMenuItem pasteMenuItem; 966 private javax.swing.JMenuItem openMenuItem; 967 private javax.swing.JMenuItem nsCutMenuItem; 968 private javax.swing.JSeparator jSeparator1; 969 private javax.swing.JMenu windowMenu; 970 private javax.swing.JMenuItem aboutMenuItem; 971 private javax.swing.JMenu helpMenu; 972 private javax.swing.JMenuItem deleteMenuItem; 973 private javax.swing.JMenuItem serverDisconnectMenuItem; 974 976 } 977 | Popular Tags |