sdeboy 2003/06/18 22:50:12
Modified: src/java/org/apache/log4j/chainsaw LogUI.java
ChainsawTabbedPane.java
Log:
Updated code which changes each tab's icons:
- new events are currently being delivered to the tab (light bulb)
- events have been delivered to the tab since the tab was last active (info icon)
- the tab is active or no events have been delivered since last active (no icon)
Tabs are now constructed with a 'new events' icon
A listener was added to remove the icon of the active tab through the tabpane's
changelistener
Revision Changes Path
1.109 +12 -3
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.108
retrieving revision 1.109
diff -u -r1.108 -r1.109
--- LogUI.java 19 Jun 2003 02:37:32 -0000 1.108
+++ LogUI.java 19 Jun 2003 05:50:12 -0000 1.109
@@ -144,6 +144,7 @@
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
@@ -412,6 +413,12 @@
tabbedPane = new ChainsawTabbedPane();
tabbedPane.addChangeListener(tbms);
+ tabbedPane.addChangeListener(new ChangeListener() {
+ //received a statechange event - selection changed - remove icon from selected
index
+ public void stateChanged(ChangeEvent e) {
+ tabbedPane.setIconAt(tabbedPane.getSelectedIndex(), null);
+ }
+ });
KeyStroke ksRight =
KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, Event.CTRL_MASK);
@@ -937,7 +944,7 @@
SwingUtilities.invokeLater(
new Runnable() {
public void run() {
- tabbedPane.addANewTab(ident, thisPanel);
+ tabbedPane.addANewTab(ident, thisPanel, new
ImageIcon(ChainsawIcons.TOOL_TIP));
}
});
@@ -1853,7 +1860,7 @@
removeAll();
add(lowerPanel, BorderLayout.CENTER);
panelMap.put(getIdentifier(), LogPanel.this);
- tabbedPane.addANewTab(getIdentifier(), LogPanel.this);
+ tabbedPane.addANewTab(getIdentifier(), LogPanel.this, null);
externalPanel.setDocked(true);
setDocked(true);
dockingAction.putValue(Action.NAME, "Undock");
@@ -2202,7 +2209,9 @@
private final String ident;
private int lastCount;
private int currentCount;
- private boolean hasNewEvents = false;
+ //the tabIconHandler is associated with a new tab, and a new tab always
+ //has new events
+ private boolean hasNewEvents = true;
ImageIcon NEW_EVENTS = new ImageIcon(ChainsawIcons.TOOL_TIP);
ImageIcon HAS_EVENTS = new ImageIcon(ChainsawIcons.INFO);
1.2 +2 -2
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
Index: ChainsawTabbedPane.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ChainsawTabbedPane.java 14 Jun 2003 16:48:14 -0000 1.1
+++ ChainsawTabbedPane.java 19 Jun 2003 05:50:12 -0000 1.2
@@ -68,9 +68,9 @@
* @param name
* @param component
*/
- public void addANewTab(String name, JComponent component) {
+ public void addANewTab(String name, JComponent component, Icon icon) {
int selectedIndex = getSelectedIndex();
- super.insertTab(name, null, component, null, 0);
+ super.insertTab(name, icon, component, null, 0);
setSelectedIndex(selectedIndex+1);
super.fireStateChanged();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]