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]