psmith      2003/06/18 19:37:32

  Modified:    src/java/org/apache/log4j/chainsaw LogUI.java
                        ReceiverTreeCellRenderer.java
                        ReceiversTreeModel.java
  Log:
  If there are no Receivers defined in the PluginRegistry
  then the Receivers panel is automatically shown on startup (Nice to highlight
  this fact). The Receivers panel now shows a default node with "No Receivers defined".
  
  Also, on startup, if no Receivers are defined, a warning dialog is shown
  telling you what this means, and pointing you to the Log4j configuration 
  file.
  
  This dialog will be eventually replaced with a custom dialog that will
  allow you dynamically create Receivers with the GUI.
  
  Revision  Changes    Path
  1.108     +22 -1     
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/LogUI.java
  
  Index: LogUI.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/LogUI.java,v
  retrieving revision 1.107
  retrieving revision 1.108
  diff -u -r1.107 -r1.108
  --- LogUI.java        18 Jun 2003 22:23:20 -0000      1.107
  +++ LogUI.java        19 Jun 2003 02:37:32 -0000      1.108
  @@ -62,6 +62,7 @@
   import org.apache.log4j.net.SocketNodeEventListener;
   import org.apache.log4j.net.SocketReceiver;
   import org.apache.log4j.plugins.PluginRegistry;
  +import org.apache.log4j.plugins.Receiver;
   
   import java.awt.BorderLayout;
   import java.awt.Component;
  @@ -195,6 +196,7 @@
     private static final String STATUS_BAR = "StatusBar";
     private static final String COLUMNS_EXTENSION = ".columns";
     private static ChainsawSplash splash;
  +  private boolean noReceiversDefined;
     private JPanel receiversPanel;
     ChainsawTabbedPane tabbedPane;
     private JToolBar toolbar;
  @@ -341,6 +343,12 @@
      * layout, table columns, and sets itself viewable.
      */
     public void activateViewer() {
  +    if (
  +      PluginRegistry.getPlugins(
  +          LogManager.getLoggerRepository(), Receiver.class).size() == 0) {
  +      noReceiversDefined = true;
  +    }
  +
       /**
        * Get all the SocketReceivers and configure a new SocketNodeEventListener
        * so we can get notified of new Sockets
  @@ -507,6 +515,19 @@
         isGUIFullyInitialized = true;
         initializationLock.notifyAll();
       }
  +
  +    if (noReceiversDefined) {
  +      SwingUtilities.invokeLater(
  +        new Runnable() {
  +          public void run() {
  +            toggleReceiversPanel();
  +            JOptionPane.showMessageDialog(
  +              LogUI.this,
  +              "You have no Receivers defined.\n\nYou will not be able to receive 
events from a Remote source unless you define one in the Log4J configuration file.",
  +              "No Receivers Defined", JOptionPane.WARNING_MESSAGE);
  +          }
  +        });
  +    }
     }
   
     /**
  @@ -2081,10 +2102,10 @@
     }
   
     class TableColumnData implements Serializable {
  +    static final long serialVersionUID = 5350440293110513986L;
       private String colName;
       private int index;
       private int width;
  -    static final long serialVersionUID = 5350440293110513986L;
   
       public TableColumnData(String colName, int index, int width) {
         this.colName = colName;
  
  
  
  1.3       +12 -0     
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiverTreeCellRenderer.java
  
  Index: ReceiverTreeCellRenderer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiverTreeCellRenderer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ReceiverTreeCellRenderer.java     18 Jun 2003 19:10:22 -0000      1.2
  +++ ReceiverTreeCellRenderer.java     19 Jun 2003 02:37:32 -0000      1.3
  @@ -116,6 +116,16 @@
       chain.add(
         new Formatter() {
           public String formatDetail(Object o) {
  +          if( o == ReceiversTreeModel.NoReceiversNode.getUserObject()) {
  +            return o.toString();
  +          }
  +          return null;
  +        }
  +      });
  +
  +    chain.add(
  +      new Formatter() {
  +        public String formatDetail(Object o) {
             return "(Unknown Type) :: " + o;
           }
         });
  @@ -145,6 +155,8 @@
         } else {
           setIcon(inactiveReceiverIcon);
         }
  +    }else if (obj == ReceiversTreeModel.NoReceiversNode.getUserObject()){
  +      setIcon(null);
       }
   
       return this;
  
  
  
  1.2       +18 -12    
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversTreeModel.java
  
  Index: ReceiversTreeModel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversTreeModel.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ReceiversTreeModel.java   17 Jun 2003 23:26:48 -0000      1.1
  +++ ReceiversTreeModel.java   19 Jun 2003 02:37:32 -0000      1.2
  @@ -71,6 +71,7 @@
     private ReceiversTreeModel() {
       super(new DefaultMutableTreeNode("Receivers"));
     }
  +  static final DefaultMutableTreeNode NoReceiversNode = new 
DefaultMutableTreeNode("You have no Receivers defined");
   
     /**
      * Creates a new ReceiversTreeModel by querying the Log4j Plugin Repository
  @@ -85,21 +86,26 @@
         PluginRegistry.getPlugins(
           LogManager.getLoggerRepository(), Receiver.class);
   
  -    for (Iterator iter = receivers.iterator(); iter.hasNext();) {
  -      Receiver item = (Receiver) iter.next();
  -      DefaultMutableTreeNode receiverNode = new DefaultMutableTreeNode(item);
  +    if( receivers.size() == 0){
  +      
  +      model.getRootNode().add(NoReceiversNode);     
  +    }else {
  +      for (Iterator iter = receivers.iterator(); iter.hasNext();) {
  +        Receiver item = (Receiver) iter.next();
  +        DefaultMutableTreeNode receiverNode = new DefaultMutableTreeNode(item);
   
  -      if (item instanceof SocketReceiver) {
  -        for (
  -          Iterator iterator =
  -            ((SocketReceiver) item).getConnectedSocketDetails().iterator();
  -            iterator.hasNext();) {
  -          Object details = (Object) iterator.next();
  -          receiverNode.add(new DefaultMutableTreeNode(details));
  +        if (item instanceof SocketReceiver) {
  +          for (
  +            Iterator iterator =
  +              ((SocketReceiver) item).getConnectedSocketDetails().iterator();
  +              iterator.hasNext();) {
  +            Object details = (Object) iterator.next();
  +            receiverNode.add(new DefaultMutableTreeNode(details));
  +          }
           }
  -      }
   
  -      model.getRootNode().add(receiverNode);
  +        model.getRootNode().add(receiverNode);
  +      }
       }
   
       return model;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to