psmith 2003/06/22 19:56:16 Modified: src/java/org/apache/log4j/chainsaw ReceiversPanel.java Log: Now uses the Pauseable interface to activate the Pausing/resuming actions. also allowed edit of Current receiver from popup menu (not that the action does anything just yet). Revision Changes Path 1.12 +79 -67 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java Index: ReceiversPanel.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- ReceiversPanel.java 20 Jun 2003 06:32:31 -0000 1.11 +++ ReceiversPanel.java 23 Jun 2003 02:56:16 -0000 1.12 @@ -53,6 +53,7 @@ import org.apache.log4j.chainsaw.icons.ChainsawIcons; import org.apache.log4j.net.SocketNodeEventListener; import org.apache.log4j.net.SocketReceiver; +import org.apache.log4j.plugins.Pauseable; import org.apache.log4j.plugins.PluginRegistry; import org.apache.log4j.plugins.Receiver; @@ -108,7 +109,6 @@ final Action playReceiverButtonAction; final Action shutdownReceiverButtonAction; final Action pauseReceiverButtonAction; - final Action newReceiverButtonAction; final Action editReceiverButtonAction; @@ -130,22 +130,27 @@ JOptionPane.showMessageDialog(logui, "Not Implemented yet, sorry"); } }; - newReceiverButtonAction.putValue(Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_NEW_RECEIVER)); - newReceiverButtonAction.putValue(Action.SHORT_DESCRIPTION, "Creates and configures a new Receiver"); + newReceiverButtonAction.putValue( + Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_NEW_RECEIVER)); + newReceiverButtonAction.putValue( + Action.SHORT_DESCRIPTION, "Creates and configures a new Receiver"); newReceiverButtonAction.putValue(Action.NAME, "New Receiver"); newReceiverButtonAction.putValue( Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_N)); newReceiverButtonAction.setEnabled(true); - + editReceiverButtonAction = new AbstractAction() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(logui, "Not Implemented yet, sorry"); } }; - editReceiverButtonAction.putValue(Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_EDIT_RECEIVER)); - editReceiverButtonAction.putValue(Action.SHORT_DESCRIPTION, "Edits the configuration of the selected Receiver"); + editReceiverButtonAction.putValue( + Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_EDIT_RECEIVER)); + editReceiverButtonAction.putValue( + Action.SHORT_DESCRIPTION, + "Edits the configuration of the selected Receiver"); editReceiverButtonAction.putValue(Action.NAME, "Edit Receiver"); editReceiverButtonAction.setEnabled(false); editReceiverButtonAction.putValue( @@ -160,15 +165,13 @@ playReceiverButtonAction.putValue( Action.SHORT_DESCRIPTION, "Resumes the selected Node"); - playReceiverButtonAction.putValue( - Action.NAME, "Resume"); + playReceiverButtonAction.putValue(Action.NAME, "Resume"); playReceiverButtonAction.putValue( Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_RESUME_RECEIVER)); playReceiverButtonAction.setEnabled(false); playReceiverButtonAction.putValue( Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_R)); - pauseReceiverButtonAction = new AbstractAction() { public void actionPerformed(ActionEvent e) { @@ -179,12 +182,10 @@ pauseReceiverButtonAction.putValue( Action.SHORT_DESCRIPTION, "Pause the selected Receiver. All events received will be discarded."); - pauseReceiverButtonAction.putValue( - Action.NAME, "Pause"); + pauseReceiverButtonAction.putValue(Action.NAME, "Pause"); pauseReceiverButtonAction.putValue( Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_P)); - pauseReceiverButtonAction.putValue( Action.SMALL_ICON, new ImageIcon(ChainsawIcons.PAUSE)); @@ -200,8 +201,7 @@ shutdownReceiverButtonAction.putValue( Action.SHORT_DESCRIPTION, "Shuts down the selected Receiver, and removes it from the Plugin registry"); - shutdownReceiverButtonAction.putValue( - Action.NAME, "Shutdown"); + shutdownReceiverButtonAction.putValue(Action.NAME, "Shutdown"); shutdownReceiverButtonAction.putValue( Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_STOP_RECEIVER)); @@ -342,6 +342,23 @@ } /** + * Returns the currently seleted node's User Object, or null + * if there is no selected node, or if the currently selected node has + * not user Object + * @return Object representing currently seleted Node's User Object + */ + private Object getCurrentlySeletedUserObject() { + DefaultMutableTreeNode node = + (DefaultMutableTreeNode) receiversTree.getLastSelectedPathComponent(); + + if (node == null) { + return null; + } + + return node.getUserObject(); + } + + /** * Ensures that the currently selected receiver active property is set to * true * @@ -352,11 +369,8 @@ public void run() { Receiver receiver = getCurrentlySelectedReceiver(); - if (receiver != null) { - if (!receiver.isActive()) { - receiver.setActive(true); - } - + if ((receiver != null) && receiver instanceof Pauseable) { + ((Pauseable) receiver).setPaused(false); updateReceiverTreeInDispatchThread(); } } @@ -377,8 +391,8 @@ public void run() { Receiver receiver = getCurrentlySelectedReceiver(); - if (receiver != null) { - receiver.setActive(false); + if ((receiver != null) && receiver instanceof Pauseable) { + ((Pauseable) receiver).setPaused(true); updateReceiverTreeInDispatchThread(); } } @@ -414,6 +428,39 @@ } /** + * + */ + private void updateActions() { + Object object = getCurrentlySeletedUserObject(); + + if ((object != null) && object instanceof Pauseable) { + Pauseable pauseable = (Pauseable) object; + + if (!pauseable.isPaused()) { + shutdownReceiverButtonAction.setEnabled(true); + pauseReceiverButtonAction.setEnabled(true); + playReceiverButtonAction.setEnabled(false); + } else { + shutdownReceiverButtonAction.setEnabled(true); + pauseReceiverButtonAction.setEnabled(false); + playReceiverButtonAction.setEnabled(true); + } + } else { + shutdownReceiverButtonAction.setEnabled(false); + pauseReceiverButtonAction.setEnabled(false); + playReceiverButtonAction.setEnabled(false); + } + + if (object instanceof Receiver) { + editReceiverButtonAction.setEnabled(true); + newReceiverButtonAction.setEnabled(true); + } else { + editReceiverButtonAction.setEnabled(false); + newReceiverButtonAction.setEnabled(true); + } + } + + /** * A simple Panel that has toolbar buttons for restarting, * playing, pausing, and stoping receivers * @@ -422,11 +469,9 @@ */ private class ReceiverToolbar extends JToolBar implements TreeSelectionListener { - private ReceiverToolbar() { setFloatable(false); - SmallButton playReceiverButton = new SmallButton(playReceiverButtonAction); playReceiverButton.setText(null); @@ -434,25 +479,25 @@ SmallButton pauseReceiverButton = new SmallButton(pauseReceiverButtonAction); pauseReceiverButton.setText(null); - + SmallButton shutdownReceiverButton = new SmallButton(shutdownReceiverButtonAction); shutdownReceiverButton.setText(null); - + SmallButton restartAllButton = new SmallButton(startAllAction); restartAllButton.setText(null); SmallButton newReceiverButton = new SmallButton(newReceiverButtonAction); newReceiverButton.setText(null); - SmallButton editReceiverButton = new SmallButton(editReceiverButtonAction); + SmallButton editReceiverButton = + new SmallButton(editReceiverButtonAction); editReceiverButton.setText(null); - add(newReceiverButton); add(editReceiverButton); addSeparator(); - + add(playReceiverButton); add(pauseReceiverButton); add(shutdownReceiverButton); @@ -482,30 +527,7 @@ * according to the currently selected node in the tree */ public void valueChanged(TreeSelectionEvent e) { - Receiver receiver = getCurrentlySelectedReceiver(); - - if (receiver != null) { - if (receiver.isActive()) { - shutdownReceiverButtonAction.setEnabled(true); - pauseReceiverButtonAction.setEnabled(true); - playReceiverButtonAction.setEnabled(false); - editReceiverButtonAction.setEnabled(true); - newReceiverButtonAction.setEnabled(false); - - } else { - shutdownReceiverButtonAction.setEnabled(true); - pauseReceiverButtonAction.setEnabled(false); - playReceiverButtonAction.setEnabled(true); - editReceiverButtonAction.setEnabled(true); - newReceiverButtonAction.setEnabled(false); - } - } else { - shutdownReceiverButtonAction.setEnabled(false); - pauseReceiverButtonAction.setEnabled(false); - playReceiverButtonAction.setEnabled(false); - editReceiverButtonAction.setEnabled(false); - newReceiverButtonAction.setEnabled(true); - } + updateActions(); } } @@ -517,7 +539,6 @@ * */ class ReceiverPopupMenu extends JPopupMenu { - ReceiverPopupMenu() { } @@ -563,23 +584,15 @@ new AbstractAction( "Pause this Receiver", new ImageIcon(ChainsawIcons.PAUSE)) { public void actionPerformed(ActionEvent e) { - Receiver receiver = getCurrentlySelectedReceiver(); - - if (receiver != null) { - if (receiver instanceof SocketReceiver) { - SocketReceiver socketReceiver = (SocketReceiver) receiver; - socketReceiver.setActive(false); - logui.getStatusBar().setMessage( - socketReceiver.getName() + " has been paused"); - updateReceiverTreeInDispatchThread(); - } - } + pauseCurrentlySelectedReceiver(); } }; add(playReceiverButtonAction); add(pauseReceiverButtonAction); add(shutdownReceiverButtonAction); + addSeparator(); + add(editReceiverButtonAction); } /** @@ -589,13 +602,12 @@ */ private void buildForReceiversRoot() { JMenuItem startAll = new JMenuItem(startAllAction); - + add(newReceiverButtonAction); add(editReceiverButtonAction); - + addSeparator(); add(startAll); - } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]