psmith 2003/10/02 20:58:55
Modified: src/java/org/apache/log4j/chainsaw LogPanel.java
Log:
LogPanel now listens for Column changes from the preference model
and updates the visible table accordingly.
Revision Changes Path
1.18 +41 -12 jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanel.java
Index: LogPanel.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanel.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- LogPanel.java 2 Oct 2003 08:30:42 -0000 1.17
+++ LogPanel.java 3 Oct 2003 03:58:55 -0000 1.18
@@ -283,6 +283,34 @@
}
});
+
+ preferenceModel.addPropertyChangeListener("visibleColumns", new
PropertyChangeListener(){
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ TableColumnModel columnModel = table.getColumnModel();
+ for (int i = 0; i < columnModel.getColumnCount(); i++) {
+ TableColumn column = columnModel.getColumn(i);
+
if(!preferenceModel.isColumnVisible(column.getHeaderValue().toString())){
+ columnModel.removeColumn(column);
+ }
+ }
+ Set columnSet = new HashSet();
+ Enumeration enumeration = columnModel.getColumns();
+ while (enumeration.hasMoreElements()) {
+ TableColumn column = (TableColumn)
enumeration.nextElement();
+ columnSet.add(column.getHeaderValue());
+ }
+ for (Iterator iter =
ChainsawColumns.getColumnsNames().iterator(); iter.hasNext();) {
+ String column = (String) iter.next();
+ if(preferenceModel.isColumnVisible(column) &&
!columnSet.contains(column)){
+ TableColumn newCol = new
TableColumn(ChainsawColumns.getColumnsNames().indexOf(column));
+ newCol.setHeaderValue(column);
+ columnModel.addColumn(newCol);
+ }
+ }
+
+ }});
+
/**
* We listen for new Key's coming in so we can get them automatically
added as columns
*/
@@ -1052,14 +1080,14 @@
// colorFilter.clear();
// }
// });
- JMenuItem menuItemColumnSelector =
- new JMenuItem("Select display columns...");
- menuItemColumnSelector.addActionListener(
- new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- columnSelector.show();
- }
- });
+// JMenuItem menuItemColumnSelector =
+// new JMenuItem("Select display columns...");
+// menuItemColumnSelector.addActionListener(
+// new ActionListener() {
+// public void actionPerformed(ActionEvent evt) {
+// columnSelector.show();
+// }
+// });
JMenuItem menuItemRemoveDisplayFilter =
new JMenuItem("Remove all display filters");
@@ -1133,20 +1161,21 @@
// p.add(new JSeparator());
// p.add(menuDefineCustomFilter);
+ p.add(new JSeparator());
p.add(menuItemLogPanelPreferences);
// p.add(menuColumnDisplayFilter);
// p.add(menuColumnColorFilter);
- p.add(new JSeparator());
+// p.add(new JSeparator());
// JMenu removeSubMenu = new JMenu("Remove");
- JMenu selectSubMenu = new JMenu("Select");
+// JMenu selectSubMenu = new JMenu("Select");
- selectSubMenu.add(menuItemColumnSelector);
+// selectSubMenu.add(menuItemColumnSelector);
// removeSubMenu.add(menuItemRemoveColorFilter);
// removeSubMenu.add(menuItemRemoveDisplayFilter);
- p.add(menuItemColumnSelector);
+// p.add(menuItemColumnSelector);
// p.add(selectSubMenu);
// p.add(removeSubMenu);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]