psmith      2003/09/16 18:24:07

  Modified:    src/java/org/apache/log4j/chainsaw ChainsawStatusBar.java
  Log:
  Removed icon used for indicating incoming events, the
  data rate concept makes that a bit of a duplicate.
  
  Fixed the size of the individual status bar elements.
  
  Paused element now displays the paused icon rather than
  the text, makes it a bit neater and compact.
  
  [Possible controversial]: Event # information has been consoldated, now
  <current line>:<#filtered lines>:<# total lines> all displayed
  here.  Still a bug where it keeps changing from NoSelectedLine to a
  selected line, but we'll fix that eventually.
  
  Revision  Changes    Path
  1.3       +42 -73    
jakarta-log4j/src/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
  
  Index: ChainsawStatusBar.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ChainsawStatusBar.java    14 Sep 2003 23:47:26 -0000      1.2
  +++ ChainsawStatusBar.java    17 Sep 2003 01:24:07 -0000      1.3
  @@ -56,11 +56,13 @@
   import java.awt.GridBagConstraints;
   import java.awt.GridBagLayout;
   import java.awt.Insets;
  +
   import java.text.NumberFormat;
   
   import javax.swing.BorderFactory;
   import javax.swing.Icon;
   import javax.swing.ImageIcon;
  +import javax.swing.JComponent;
   import javax.swing.JLabel;
   import javax.swing.JPanel;
   import javax.swing.SwingUtilities;
  @@ -83,38 +85,31 @@
     private final JLabel receivedConnectionlabel = new JLabel("", JLabel.CENTER);
     private volatile long lastReceivedEvent = System.currentTimeMillis();
     private volatile long lastReceivedConnection = System.currentTimeMillis();
  -  private final Thread receiveThread;
     private final Thread connectionThread;
  +  private final Icon pausedIcon = new ImageIcon(ChainsawIcons.PAUSE);
     private final Icon radioTowerIcon =
       new ImageIcon(ChainsawIcons.ANIM_RADIO_TOWER);
     private final Icon netConnectIcon =
       new ImageIcon(ChainsawIcons.ANIM_NET_CONNECT);
  -    
  -    private final NumberFormat nf = NumberFormat.getNumberInstance();
  -
  -  //  private final Border statusBarComponentBorder =
  -  //    BorderFactory.createEmptyBorder();
  +  private final NumberFormat nf = NumberFormat.getNumberInstance();
     private final Border statusBarComponentBorder =
       BorderFactory.createLineBorder(statusMsg.getBackground().darker());
   
  -  //  private final Border statusBarComponentBorder =
  -  //    new SoftBevelBorder(SoftBevelBorder.LOWERED);
     ChainsawStatusBar() {
       setLayout(new GridBagLayout());
   
  -     nf.setMaximumFractionDigits(1);
  -     nf.setMinimumFractionDigits(1);
  -     nf.setGroupingUsed(false);
  +    nf.setMaximumFractionDigits(1);
  +    nf.setMinimumFractionDigits(1);
  +    nf.setGroupingUsed(false);
  +
       JPanel statusMsgPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 2, 2));
   
       statusMsgPanel.add(statusMsg);
       statusMsgPanel.setBorder(statusBarComponentBorder);
   
       pausedLabel.setBorder(statusBarComponentBorder);
  -    pausedLabel.setPreferredSize(
  -      new Dimension(
  -        pausedLabel.getFontMetrics(pausedLabel.getFont()).stringWidth(
  -          "Paused") + 10, (int) pausedLabel.getPreferredSize().getHeight()));
  +    pausedLabel.setMinimumSize(
  +      new Dimension(pausedIcon.getIconWidth(), pausedIcon.getIconHeight()));
   
       pausedLabel.setToolTipText(
         "Shows whether the current Log panel is paused or not");
  @@ -122,29 +117,39 @@
       receivedEventLabel.setBorder(statusBarComponentBorder);
       receivedEventLabel.setToolTipText(
         "Indicates whether Chainsaw is receiving events, and how fast it is 
processing them");
  -    receivedEventLabel.setPreferredSize(
  +    receivedEventLabel.setMinimumSize(
         new Dimension(
  -        radioTowerIcon.getIconWidth() + 
receivedEventLabel.getFontMetrics(receivedEventLabel.getFont()).stringWidth(
  -     "9999.9") + 10,
  +        receivedEventLabel.getFontMetrics(receivedEventLabel.getFont())
  +                          .stringWidth("999.9/s") + 10,
           (int) receivedEventLabel.getPreferredSize().getHeight()));
  -    receivedEventLabel.setMinimumSize(receivedEventLabel.getPreferredSize());
   
       receivedConnectionlabel.setBorder(statusBarComponentBorder);
       receivedConnectionlabel.setToolTipText(
         "Indicates whether Chainsaw has received a remote connection");
  -    receivedConnectionlabel.setPreferredSize(
  +    receivedConnectionlabel.setMinimumSize(
         new Dimension(
           netConnectIcon.getIconWidth() + 4,
           (int) receivedConnectionlabel.getPreferredSize().getHeight()));
   
       lineSelectionLabel.setBorder(statusBarComponentBorder);
  -    lineSelectionLabel.setPreferredSize(
  +    lineSelectionLabel.setMinimumSize(
         new Dimension(
           lineSelectionLabel.getFontMetrics(lineSelectionLabel.getFont())
  -                          .stringWidth("999999:999999"),
  +                          .stringWidth("999999:999999:999999"),
           (int) lineSelectionLabel.getPreferredSize().getHeight()));
       lineSelectionLabel.setToolTipText(
  -      "Shows the currently selected line # & Total # of Lines");
  +      "<current line #>:<# viewable events>:<# total events>");
  +
  +    JComponent[] toFix =
  +      new JComponent[] {
  +        receivedConnectionlabel, lineSelectionLabel, receivedEventLabel,
  +        pausedLabel
  +      };
  +
  +    for (int i = 0; i < toFix.length; i++) {
  +      toFix[i].setPreferredSize(toFix[i].getMinimumSize());
  +      toFix[i].setMaximumSize(toFix[i].getMinimumSize());
  +    }
   
       statusMsg.setMinimumSize(pausedLabel.getPreferredSize());
       statusMsg.setToolTipText("Shows messages from Chainsaw");
  @@ -183,35 +188,6 @@
   
       add(pausedLabel, c);
   
  -    receiveThread =
  -      new Thread(
  -        new Runnable() {
  -          public void run() {
  -            while (true) {
  -              try {
  -                Thread.sleep(DELAY_PERIOD);
  -              } catch (InterruptedException e) {
  -              }
  -
  -              Icon icon = null;
  -
  -              if (
  -                (System.currentTimeMillis() - lastReceivedEvent) < DELAY_PERIOD) {
  -                icon = radioTowerIcon;
  -              }
  -
  -              final Icon theIcon = icon;
  -              SwingUtilities.invokeLater(
  -                new Runnable() {
  -                  public void run() {
  -                    receivedEventLabel.setIcon(theIcon);
  -                  }
  -                });
  -            }
  -          }
  -        });
  -    receiveThread.start();
  -
       connectionThread =
         new Thread(
           new Runnable() {
  @@ -242,25 +218,13 @@
       connectionThread.start();
     }
   
  -  /**
  -   * Calling this method indicates an event has been received in
  -   * the current LogPanel, this method will trigger update
  -   * the Icon/Text of the Statusbar to indicate the received event
  -   * and after a period of time, this message will be removed or
  -   * the icon will be hidden.
  -   *
  -   */
  -  void receivedEvent() {
  -    lastReceivedEvent = System.currentTimeMillis();
  -    receiveThread.interrupt();
  -  }
  -
     void setDataRate(final double dataRate) {
  -     SwingUtilities.invokeLater(new Runnable(){
  -
  -             public void run() {
  -             receivedEventLabel.setText(nf.format(dataRate) + "/s");
  -             }});
  +    SwingUtilities.invokeLater(
  +      new Runnable() {
  +        public void run() {
  +          receivedEventLabel.setText(nf.format(dataRate) + "/s");
  +        }
  +      });
     }
   
     /**
  @@ -284,18 +248,23 @@
       Runnable runnable =
         new Runnable() {
           public void run() {
  -          pausedLabel.setText(isPaused ? "Paused" : "");
  +          pausedLabel.setIcon(isPaused ? pausedIcon : null);
  +          pausedLabel.setToolTipText(
  +            isPaused ? "This Log panel is currently paused"
  +                     : "This Log panel is not paused");
           }
         };
   
       SwingUtilities.invokeLater(runnable);
     }
   
  -  void setSelectedLine(final int selectedLine, final int lineCount) {
  +  void setSelectedLine(
  +    final int selectedLine, final int lineCount, final int total) {
       SwingUtilities.invokeLater(
         new Runnable() {
           public void run() {
  -          lineSelectionLabel.setText(selectedLine + ":" + lineCount);
  +          lineSelectionLabel.setText(
  +            selectedLine + ":" + lineCount + ":" + total);
           }
         });
     }
  
  
  

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

Reply via email to