📄 admintool.java
字号:
((CardLayout) editPanel.getLayout()).show(editPanel, "destination"); } else if (selection instanceof DestinationRootTreeNode) { if (selection.getChildCount() == 0) { // Means that the destinations may not have been initialized DestinationRootTreeNode drtn = (DestinationRootTreeNode)selection; ServerTreeNode stn = drtn.getParentServerTreeNode(); c.updateDestinations(stn.getServerId(), stn.getDestinationRoot()); } } else if (selection instanceof UserRootTreeNode) { if (selection.getChildCount() == 0) { // Means that the users may not have been initialized UserRootTreeNode urtn = (UserRootTreeNode)selection; ServerTreeNode stn = urtn.getParentServerTreeNode(); c.updateUsers(stn.getServerId(), stn.getUserRoot()); } } else if (selection instanceof SubscriptionRootTreeNode) { if (selection.getChildCount() == 0) { // Means that the subscriptions may not have been initialized SubscriptionRootTreeNode subRootTn = (SubscriptionRootTreeNode)selection; UserTreeNode userTn = (UserTreeNode)subRootTn.getParent(); updateSubscriptions(userTn.getUser(), subRootTn); } } else if (selection instanceof SubscriptionTreeNode) { SubscriptionTreeNode subTn = (SubscriptionTreeNode) selection; SubscriptionRootTreeNode subRootTn = (SubscriptionRootTreeNode)subTn.getParent(); UserTreeNode userTn = (UserTreeNode)subRootTn.getParent(); ServerTreeNode serverTn = userTn.getParentServerTreeNode(); // subscriptionPanel.setSubscription(subtn.getSubscription());// subscriptionPanel.setServerId(serverTn.getServerId());// subscriptionPanel.setUserName(userTn.getUserName());// subscriptionPanel.loadMessageIds();// ((CardLayout) editPanel.getLayout()).show(editPanel, "subscription"); if (subTn.getChildCount() == 0) { String[] ids = userTn.getUser().getMessageIds( subTn.getSubscription().getName()); for (int i = 0; i < ids.length; i++) { MessageTreeNode msgNode = new MessageTreeNode( c, ids[i]); c.getAdminTreeModel().insertNodeInto( msgNode, subTn, subTn.getChildCount()); } } } else if (selection instanceof MessageTreeNode) { Message msg; MessageTreeNode msgTn = (MessageTreeNode)selection; DefaultMutableTreeNode parentTn = (DefaultMutableTreeNode)msgTn.getParent(); if (parentTn instanceof SubscriptionTreeNode) { SubscriptionTreeNode subTn = (SubscriptionTreeNode)parentTn; SubscriptionRootTreeNode subRootTn = (SubscriptionRootTreeNode)subTn.getParent(); UserTreeNode userTn = (UserTreeNode)subRootTn.getParent(); ServerTreeNode serverTn = userTn.getParentServerTreeNode(); msg = userTn.getUser().readMessage( subTn.getSubscription().getName(), msgTn.getMessageId()); } else { MessageRootTreeNode msgRootTn = (MessageRootTreeNode)parentTn; QueueTreeNode queueTn = (QueueTreeNode)msgRootTn.getParent(); msg = queueTn.getQueue().readMessage( msgTn.getMessageId()); } messagePanel.setMessage(msg); ((CardLayout) editPanel.getLayout()).show(editPanel, "message"); } else if (selection instanceof SubscriberRootTreeNode) { SubscriberRootTreeNode subRootTn = (SubscriberRootTreeNode)selection; if (subRootTn.getChildCount() == 0) { TopicTreeNode topicTn = (TopicTreeNode)subRootTn.getParent(); String[] subscriberIds = topicTn.getTopic().getSubscriberIds(); for (int i = 0; i < subscriberIds.length; i++) { SubscriberTreeNode subTn = new SubscriberTreeNode( subscriberIds[i]); c.getAdminTreeModel().insertNodeInto( subTn, subRootTn, subRootTn.getChildCount()); } } } else if (selection instanceof MessageRootTreeNode) { MessageRootTreeNode msgRootTn = (MessageRootTreeNode)selection; if (msgRootTn.getChildCount() == 0) { QueueTreeNode queueTn = (QueueTreeNode)msgRootTn.getParent(); String[] msgIds = queueTn.getQueue().getMessageIds(); for (int i = 0; i < msgIds.length; i++) { MessageTreeNode msgTn = new MessageTreeNode( c, msgIds[i]); c.getAdminTreeModel().insertNodeInto( msgTn, msgRootTn, msgRootTn.getChildCount()); } } } } catch (Exception exc) { if (Log.logger.isLoggable(BasicLevel.DEBUG)) Log.logger.log(BasicLevel.DEBUG, "", exc); displayError(exc.getMessage()); } } private class JndiConnectAction extends AbstractAction { public JndiConnectAction() { super("Connect..."); putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_J, KeyEvent.ALT_DOWN_MASK)); } public void actionPerformed(ActionEvent e) { ConnectJndiDialog dialog; try { dialog = ConnectJndiDialog.showDialog(); } catch (Exception exc) { JOptionPane.showMessageDialog(AdminTool.this, exc.getMessage()); return; } if (dialog.getActionCancelled()) return; try { c.connectJndi(dialog.getJndiHost(), dialog.getJndiPort(), dialog.getNamedContext()); jndiConnectAction.setEnabled(false); jndiDisconnectAction.setEnabled(true); jndiRefreshAction.setEnabled(true); if (c.isAdminConnected()) jndiCreateFactoryAction.setEnabled(true); } catch (Exception x) { JOptionPane.showMessageDialog(AdminTool.this, x.getMessage()); } } } private class JndiDisconnectAction extends AbstractAction { public JndiDisconnectAction() { super("Disconnect"); } public void actionPerformed(ActionEvent e) { try { c.disconnectJndi(); } catch (Exception x) { JOptionPane.showMessageDialog(AdminTool.this, x.getMessage()); } finally { jndiDisconnectAction.setEnabled(false); jndiConnectAction.setEnabled(true); jndiRefreshAction.setEnabled(false); jndiCreateFactoryAction.setEnabled(false); if (tabbedPane.getSelectedIndex() == 0) { msgPane.setText(""); ((CardLayout) editPanel.getLayout()).show(editPanel, "html"); } } } } private class JndiRefreshAction extends AbstractAction { public JndiRefreshAction() { super("Refresh", AdminToolConstants.refreshIcon); } public void actionPerformed(ActionEvent e) { try { c.refreshJndiData(); } catch (Exception x) { JOptionPane.showMessageDialog(AdminTool.this, x.getMessage()); } } } private class JndiCreateFactoryAction extends AbstractAction { public JndiCreateFactoryAction() { super("Create Connection Factory..."); } public void actionPerformed(ActionEvent e) { try { CreateFactoryDialog dialog = CreateFactoryDialog.showDialog(); if (!dialog.getActionCancelled()) c.createConnectionFactory(dialog.getHost(), dialog.getPort(), dialog.getFactoryName(), dialog.getFactoryType()); } catch (Exception x) { JOptionPane.showMessageDialog(AdminTool.this, x.getMessage()); } } } private class AdminConnectAction extends AbstractAction { public AdminConnectAction() { super("Connect..."); putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, KeyEvent.ALT_DOWN_MASK)); } public void actionPerformed(ActionEvent e) { ConnectAdminDialog dialog; try { dialog = ConnectAdminDialog.showDialog(); } catch (Exception exc) { JOptionPane.showMessageDialog(AdminTool.this, exc.getMessage()); return; } if (dialog.getActionCancelled()) return; try { c.connectAdmin(dialog.getAdminHost(), dialog.getAdminPort(), dialog.getAdminUser(), dialog.getAdminPassword()); adminConnectAction.setEnabled(false); adminDisconnectAction.setEnabled(true); adminRefreshAction.setEnabled(true); if (c.isJndiConnected()) jndiCreateFactoryAction.setEnabled(true); } catch (Exception x) { if (Log.logger.isLoggable(BasicLevel.DEBUG)) Log.logger.log( BasicLevel.DEBUG, "", x); JOptionPane.showMessageDialog(AdminTool.this, x.getMessage()); } } } private class AdminDisconnectAction extends AbstractAction { public AdminDisconnectAction() { super("Disconnect"); } public void actionPerformed(ActionEvent e) { try { c.disconnectAdmin(); } catch (Exception x) { JOptionPane.showMessageDialog(AdminTool.this, x.getMessage()); } finally { adminDisconnectAction.setEnabled(false); adminConnectAction.setEnabled(true); adminRefreshAction.setEnabled(false); jndiCreateFactoryAction.setEnabled(false); if (tabbedPane.getSelectedIndex() == 0) { msgPane.setText(""); ((CardLayout) editPanel.getLayout()).show(editPanel, "html"); } } } } private class AdminRefreshAction extends AbstractAction { public AdminRefreshAction() { super("Refresh", AdminToolConstants.refreshIcon); } public void actionPerformed(ActionEvent e) { AdminTool.invokeLater(new CommandWorker() { public void run() throws Exception { c.refreshAdminData(); } }); } } private class ExitAction extends AbstractAction { public ExitAction() { super("Exit"); } public void actionPerformed(ActionEvent e) { System.exit(0); } } private class ConfigTreeCellRenderer extends DefaultTreeCellRenderer { public ConfigTreeCellRenderer() { super(); setClosedIcon(AdminToolConstants.collapsedIcon); setOpenIcon(AdminToolConstants.expandedIcon); } public Component getTreeCellRendererComponent( JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { super.getTreeCellRendererComponent( tree, value, sel, expanded, leaf, row, hasFocus); ImageIcon icon = null; if (value instanceof AdminTreeNode) { icon = ((AdminTreeNode) value).getImageIcon(); setText(value.toString()); } else if (value == c.getAdminTreeModel().getRoot()) icon = AdminToolConstants.homeIcon; if (icon != null) setIcon(icon); return this; } } private class PopupListener extends MouseAdapter { public void mousePressed(MouseEvent e) { maybeShowPopup(e); } public void mouseReleased(MouseEvent e) { maybeShowPopup(e); } private void maybeShowPopup(MouseEvent e) { if (e.isPopupTrigger()) { TreePath tp; if (tabbedPane.getSelectedIndex() == 0) { tp = configTree.getPathForLocation( e.getPoint().x, e.getPoint().y); } else { tp = jndiTree.getPathForLocation( e.getPoint().x, e.getPoint().y); } if (tp != null) { Object o = tp.getLastPathComponent(); if (o instanceof AdminTreeNode) { JPopupMenu popup = ((AdminTreeNode) o).getContextMenu(); if (popup != null) { popup.show(e.getComponent(), e.getX(), e.getY()); } } } } } } public static AdminTool getInstance() { if (adminTool == null) { AdminController c = new AdminController(); adminTool = new AdminTool(c); c.setControllerEventListener(adminTool); adminTool.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } return adminTool; } /** * Start the admin tool by creating the controller and the main window. */ public static void main(String[] args) { AdminTool frame = getInstance(); frame.setSize(AdminToolConstants.STARTUP_SIZE); frame.setVisible(true); frame.splitter.setDividerLocation(AdminToolConstants.DIVIDER_PROPORTION); frame.repaint(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -