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());
+ }
}
}