psmith 2003/06/24 15:35:31 Modified: src/java/org/apache/log4j/chainsaw LogUI.java Log: If the Cyclic buffer is in use, added an EventCountListener so that warning messages could be displayed when the buffer is taken over the 75%, and 100% markers. This message is displayed in the status bar regardless of the currently selected tab. I would also like to add a small progress-bar-ish type thing to the status bar to display the stats of the buffer for the currently selected tab. Revision Changes Path 1.114 +36 -5 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.113 retrieving revision 1.114 diff -u -r1.113 -r1.114 --- LogUI.java 23 Jun 2003 02:50:11 -0000 1.113 +++ LogUI.java 24 Jun 2003 22:35:30 -0000 1.114 @@ -101,6 +101,8 @@ import java.io.ObjectOutputStream; import java.io.Serializable; +import java.text.NumberFormat; + import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; @@ -283,7 +285,7 @@ * */ private void initGUI() { - statusBar = new ChainsawStatusBar(); + statusBar = new ChainsawStatusBar(); receiversPanel = new ReceiversPanel(this); tbms = new ChainsawToolBarAndMenus(this); toolbar = tbms.getToolbar(); @@ -350,7 +352,6 @@ } }); - if ( PluginRegistry.getPlugins( LogManager.getLoggerRepository(), Receiver.class).size() == 0) { @@ -590,12 +591,12 @@ getContentPane().invalidate(); getContentPane().validate(); - + tbms.stateChange(); } }); } - + boolean isReceiverPanelVisible() { return getContentPane().isAncestorOf(receiversPanel); } @@ -1073,7 +1074,6 @@ try { UIManager.setLookAndFeel(lookAndFeelClassName); SwingUtilities.updateComponentTreeUI(this); - } catch (Exception e) { LogLog.error("Failed to change L&F", e); } @@ -1753,6 +1753,37 @@ " Events " + currentCount + " of " + totalCount); } }); + + if (tableModel.isCyclic()) { + final ChainsawCyclicBufferTableModel cyclicModel = + (ChainsawCyclicBufferTableModel) tableModel; + tableModel.addEventCountListener( + new EventCountListener() { + final NumberFormat formatter = NumberFormat.getPercentInstance(); + + public void eventCountChanged(int currentCount, int totalCount) { + double percent = + ((double) totalCount) / cyclicModel.getMaxSize(); + String msg = null; + + if ((percent > 0.75) && (percent < 1.0)) { + msg = + "Warning :: " + formatter.format(percent) + " of the '" + + getIdentifier() + "' buffer has been used"; + } else if (percent >= 1.0) { + msg = + "Warning :: " + formatter.format(percent) + " of the '" + + getIdentifier() + + "' buffer has been used. Older events are being discarded."; + } + + if (msg != null) { + getStatusBar().setMessage(msg); + } + } + }); + } + tableModel.addEventCountListener(new TabIconHandler(ident)); f.pack(); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]