Author: jflesch
Date: 2007-04-11 13:17:11 +0000 (Wed, 11 Apr 2007)
New Revision: 12572

Modified:
   trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java
   trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
Log:
Change PeerMonitor UI behavior

Modified: trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java   2007-04-11 13:15:36 UTC 
(rev 12571)
+++ trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java   2007-04-11 13:17:11 UTC 
(rev 12572)
@@ -102,11 +102,8 @@
                advancedMode = 
Boolean.valueOf(core.getConfig().getValue("advancedMode")).booleanValue();


-               peerPanel = new PeerMonitorPanel(core.getQueueManager(), 
core.getConfig(), core.getMainWindow());
+               peerPanel = new PeerMonitorPanel(this, core.getQueueManager(), 
core.getConfig(), core.getMainWindow());

-               
core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.peerMonitor.peerMonitor"),
-                                           thaw.gui.IconBox.minPeerMonitor,
-                                           peerPanel.getTabPanel());
                peerPanel.addObserver(this);


@@ -142,6 +139,13 @@


        public void update(Observable o, Object param) {
+               
core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.peerMonitor.peerMonitor"),
+                                           thaw.gui.IconBox.minPeerMonitor,
+                                           peerPanel.getTabPanel());
                core.getMainWindow().setSelectedTab(peerPanel.getTabPanel());
        }
+
+       public void hideTab() {
+               core.getMainWindow().removeTab(peerPanel.getTabPanel());
+       }
 }

Modified: trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java  
2007-04-11 13:15:36 UTC (rev 12571)
+++ trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java  
2007-04-11 13:17:11 UTC (rev 12572)
@@ -35,8 +35,8 @@
 import java.util.Observer;


+import thaw.plugins.PeerMonitor;

-
 import thaw.core.Config;
 import thaw.core.I18n;
 import thaw.core.Logger;
@@ -102,12 +102,19 @@
        private JPopupMenu rightClickMenu;
        private Vector rightClickActions;

+       private JButton closeTabButton;

        private boolean advanced;

+       private PeerMonitor peerMonitor;

-       public PeerMonitorPanel(FCPQueueManager queueManager, Config config, 
thaw.core.MainWindow mainWindow) {
+       public PeerMonitorPanel(PeerMonitor peerMonitor,
+                               FCPQueueManager queueManager,
+                               Config config,
+                               thaw.core.MainWindow mainWindow) {

+               this.peerMonitor = peerMonitor;
+
                advanced = 
Boolean.valueOf(config.getValue("advancedMode")).booleanValue();

                tabPanel = new JPanel(new BorderLayout(10, 10));
@@ -121,8 +128,7 @@

                Vector v = new Vector();

-               if (advanced)
-                       
v.add(I18n.getMessage("thaw.plugin.peerMonitor.nodeStats"));
+               v.add(I18n.getMessage("thaw.plugin.peerMonitor.nodeStats"));

                peerList.setListData(v);

@@ -191,7 +197,16 @@

                tabPanel.add(mainPanel, BorderLayout.CENTER);

+               closeTabButton = new JButton(IconBox.minClose);
+               closeTabButton.setBorderPainted(false);
+               closeTabButton.addActionListener(this);

+               JPanel headPanel = new JPanel(new BorderLayout());
+               headPanel.add(new JLabel(""), BorderLayout.CENTER);
+               headPanel.add(closeTabButton, BorderLayout.EAST);
+
+               tabPanel.add(headPanel, BorderLayout.NORTH);
+
                rightClickMenu = new JPopupMenu();
                rightClickActions = new Vector();

@@ -318,8 +333,7 @@
        {
                peers = new Vector();

-               if (advanced)
-                       
peers.add(I18n.getMessage("thaw.plugin.peerMonitor.nodeStats"));
+               peers.add(I18n.getMessage("thaw.plugin.peerMonitor.nodeStats"));

                /* TODO : dirty : should use comparator, etc */
                for (int i = 0 ; i < STR_STATUS.length ; i++) {
@@ -358,6 +372,10 @@
                if (e.getSource() == refCopyButton) {
                        thaw.gui.GUIHelper.copyToClipboard(refArea.getText());
                }
+
+               if (e.getSource() == closeTabButton) {
+                       peerMonitor.hideTab();
+               }
        }


@@ -560,8 +578,10 @@

        protected void showPopupMenu(final MouseEvent e) {
                if(e.isPopupTrigger()) {
-                       updateMenuState(((Peer)peerList.getSelectedValue()));
-                       rightClickMenu.show(e.getComponent(), e.getX(), 
e.getY());
+                       if (peerList.getSelectedValue() instanceof Peer) {
+                               
updateMenuState(((Peer)peerList.getSelectedValue()));
+                               rightClickMenu.show(e.getComponent(), e.getX(), 
e.getY());
+                       }
                }
        }



Reply via email to