You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2017/05/30 23:48:52 UTC

[15/50] [abbrv] logging-chainsaw git commit: Added ability to define which columns are displayed by default when a new tab is created by clicking the 'Use selected columns as default visible columns' button on the logpanel preferences column selection sc

Added ability to define which columns are displayed by default when a new tab is created by clicking the 'Use selected columns as default visible columns' button on the logpanel preferences column selection screen
Also updated Welcome panel to make the keyboard shortcut table 100% width


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/345dc273
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/345dc273
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/345dc273

Branch: refs/heads/master
Commit: 345dc273ad479534315523a9af79db697ba2c869
Parents: 1d47127
Author: Scott Deboy <sd...@apache.org>
Authored: Thu Nov 4 07:14:03 2010 +0000
Committer: Scott Deboy <sd...@apache.org>
Committed: Thu Nov 4 07:14:03 2010 +0000

----------------------------------------------------------------------
 .../chainsaw/ApplicationPreferenceModel.java    | 23 ++++++++++++++++-
 .../org/apache/log4j/chainsaw/LogPanel.java     | 25 +++++++++++-------
 .../log4j/chainsaw/LogPanelPreferencePanel.java | 23 ++++++++++++++---
 .../org/apache/log4j/chainsaw/WelcomePanel.html | 27 +-------------------
 .../log4j/chainsaw/help/release-notes.html      |  4 +++
 5 files changed, 63 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/345dc273/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java
index 68e0795..721e634 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java
@@ -19,6 +19,8 @@ package org.apache.log4j.chainsaw;
 import java.awt.Color;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Vector;
 
 import javax.swing.UIManager;
@@ -71,8 +73,10 @@ public class ApplicationPreferenceModel {
      */
     private boolean okToRemoveSecurityManager = false;
     private static final int CONFIGURATION_URL_ENTRY_COUNT = 10;
+    private List defaultColumnNames = new ArrayList();
+    private boolean defaultColumnsSet;
 
-    /**
+  /**
      * @param listener
      */
     public void addPropertyChangeListener(PropertyChangeListener listener) {
@@ -227,6 +231,9 @@ public class ApplicationPreferenceModel {
         setAlternatingBackgroundColor(alternatingBackground);
         setAlternatingForegroundColor(alternatingForeground);
       }
+      if (model.isDefaultColumnsSet()) {
+        setDefaultColumnNames(model.getDefaultColumnNames());
+      }
     }
 
     //use a lighter version of search color as the delta color
@@ -497,4 +504,18 @@ public class ApplicationPreferenceModel {
         this.okToRemoveSecurityManager = okToRemoveSecurityManager;
         firePropertyChange("okToRemoveSecurityManager", oldValue, this.okToRemoveSecurityManager);
 	}
+
+  public void setDefaultColumnNames(List defaultColumnNames) {
+    defaultColumnsSet = true;
+    this.defaultColumnNames.clear();
+    this.defaultColumnNames.addAll(defaultColumnNames);
+  }
+
+  public boolean isDefaultColumnsSet() {
+    return defaultColumnsSet;
+  }
+
+  public List getDefaultColumnNames() {
+    return defaultColumnNames;
+  }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/345dc273/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
index 2ff874d..edeec44 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
@@ -227,7 +227,8 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
   private final JSplitPane nameTreeAndMainPanelSplit;
   private final LoggerNameTreePanel logTreePanel;
   private final LogPanelPreferenceModel preferenceModel = new LogPanelPreferenceModel();
-  private final LogPanelPreferencePanel logPanelPreferencesPanel = new LogPanelPreferencePanel(preferenceModel);
+  private ApplicationPreferenceModel applicationPreferenceModel;
+  private final LogPanelPreferencePanel logPanelPreferencesPanel;
   private final FilterModel filterModel = new FilterModel();
   private final RuleColorizer colorizer = new RuleColorizer();
   private final RuleMediator tableRuleMediator = new RuleMediator(false);
@@ -252,7 +253,6 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
   private AutoFilterComboBox findCombo;
   private JScrollPane eventsPane;
   private int currentSearchMatchCount;
-  private ApplicationPreferenceModel applicationPreferenceModel;
   private Rule clearTableExpressionRule;
   private int lowerPanelDividerLocation;
   private EventContainer searchModel;
@@ -278,10 +278,11 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
    * @param identifier used to load and save settings
    */
   public LogPanel(final ChainsawStatusBar statusBar, final String identifier, int cyclicBufferSize,
-                  Map allColorizers, ApplicationPreferenceModel applicationPreferenceModel) {
+                  Map allColorizers, final ApplicationPreferenceModel applicationPreferenceModel) {
     this.identifier = identifier;
     this.statusBar = statusBar;
     this.applicationPreferenceModel = applicationPreferenceModel;
+    this.logPanelPreferencesPanel = new LogPanelPreferencePanel(preferenceModel, applicationPreferenceModel);
     logger.debug("creating logpanel for " + identifier);
 
     setLayout(new BorderLayout());
@@ -1034,9 +1035,12 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
           col.setHeaderValue(e.getKey());
 
           if (preferenceModel.addColumn(col)) {
-        	  table.addColumn(col);
-              searchTable.addColumn(col);
-        	  preferenceModel.setColumnVisible(e.getKey().toString(), true);
+            if (preferenceModel.isColumnVisible(col) || !applicationPreferenceModel.isDefaultColumnsSet() || applicationPreferenceModel.isDefaultColumnsSet() &&
+                applicationPreferenceModel.getDefaultColumnNames().contains(col.getHeaderValue())) {
+              table.addColumn(col);
+                searchTable.addColumn(col);
+          	  preferenceModel.setColumnVisible(e.getKey().toString(), true);
+            }
           }
         		}
         	});
@@ -3138,9 +3142,12 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     for (Iterator iter = sortedColumnList.iterator(); iter.hasNext();) {
       TableColumn element = (TableColumn) iter.next();
       if (preferenceModel.addColumn(element)) {
-          table.addColumn(element);
-          searchTable.addColumn(element);
-    	  preferenceModel.setColumnVisible(element.getHeaderValue().toString(), true);
+          if (!applicationPreferenceModel.isDefaultColumnsSet() || applicationPreferenceModel.isDefaultColumnsSet() &&
+              applicationPreferenceModel.getDefaultColumnNames().contains(element.getHeaderValue())) {
+            table.addColumn(element);
+            searchTable.addColumn(element);
+            preferenceModel.setColumnVisible(element.getHeaderValue().toString(), true);
+          }
       }
     }
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/345dc273/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
index 6967785..5cd7550 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
@@ -25,6 +25,7 @@ import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
+import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
@@ -33,6 +34,7 @@ import javax.swing.BorderFactory;
 import javax.swing.Box;
 import javax.swing.BoxLayout;
 import javax.swing.ButtonGroup;
+import javax.swing.JButton;
 import javax.swing.JCheckBox;
 import javax.swing.JEditorPane;
 import javax.swing.JFrame;
@@ -64,12 +66,14 @@ public class LogPanelPreferencePanel extends AbstractPreferencePanel
   private final LogPanelPreferenceModel preferenceModel;
   private final ModifiableListModel columnListModel = new ModifiableListModel();
   private static final Logger logger = LogManager.getLogger(LogPanelPreferencePanel.class);
+  private ApplicationPreferenceModel appPreferenceModel;
 
   //~ Constructors ============================================================
 
-  public LogPanelPreferencePanel(LogPanelPreferenceModel model)
+  public LogPanelPreferencePanel(LogPanelPreferenceModel model, ApplicationPreferenceModel appModel)
   {
     preferenceModel = model;
+    appPreferenceModel = appModel;
     initComponents();
 
     getOkButton().addActionListener(new ActionListener()
@@ -100,7 +104,8 @@ public class LogPanelPreferencePanel extends AbstractPreferencePanel
   {
     JFrame f = new JFrame("Preferences Panel Test Bed");
     LogPanelPreferenceModel model = new LogPanelPreferenceModel();
-    LogPanelPreferencePanel panel = new LogPanelPreferencePanel(model);
+    ApplicationPreferenceModel appModel = new ApplicationPreferenceModel();
+    LogPanelPreferencePanel panel = new LogPanelPreferencePanel(model, appModel);
     f.getContentPane().add(panel);
 
     model.addPropertyChangeListener(new PropertyChangeListener()
@@ -214,9 +219,21 @@ public class LogPanelPreferencePanel extends AbstractPreferencePanel
               }
           }
         });
+      JButton setAsDefaultsButton = new JButton("Use selected columns as default visible columns");
+      setAsDefaultsButton.addActionListener(new ActionListener() {
+        public void actionPerformed(ActionEvent actionEvent) {
+          List selectedColumns = new ArrayList();
+          for (int i = 0;i<columnListModel.getSize();i++) {
+            if (preferenceModel.isColumnVisible((TableColumn) columnListModel.get(i))) {
+              selectedColumns.add(((TableColumn)columnListModel.get(i)).getHeaderValue());
+            }
+          }
+          appPreferenceModel.setDefaultColumnNames(selectedColumns);
+        }
+      });
       columnList.setCellRenderer(cellRenderer);
       columnBox.add(new JScrollPane(columnList));
-
+      columnBox.add(setAsDefaultsButton);
       add(columnBox);
       add(Box.createVerticalGlue());
     }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/345dc273/src/main/resources/org/apache/log4j/chainsaw/WelcomePanel.html
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/log4j/chainsaw/WelcomePanel.html b/src/main/resources/org/apache/log4j/chainsaw/WelcomePanel.html
index eafcb52..5ec4933 100644
--- a/src/main/resources/org/apache/log4j/chainsaw/WelcomePanel.html
+++ b/src/main/resources/org/apache/log4j/chainsaw/WelcomePanel.html
@@ -41,107 +41,82 @@
 <tr><td><a href="#FilteringColouring">Filtering and Colouring</a></td></tr>
 </table>
 -->
-<p><table border="0" cellspacing="2" cellpadding="2" >
+<p><table border="0" cellspacing="2" cellpadding="2" width=100%>
 <tr><td colspan="6" class="TableTitle" bgcolor="#000089"><font color="white">Hot Keys</font></td></tr>
 <tr valign="top">
 	<td nowrap class="HotKey">CMD-LEFT</td>
-	<td width="50" align="center">-</td>
 	<td>Activate a tab to the left</td>
     <td nowrap class="HotKey">CTRL-RIGHT</td>
-    <td width="50" align="center">-</td>
     <td>Activate a tab to the right</td>
 </tr>
 <tr valign="top" bgcolor="#EEEEEE">
     <td nowrap class="HotKey">F3</td>
-    <td width="50" align="center">-</td>
     <td>Find Next</td>
     <td nowrap class="HotKey">SHIFT-F3</td>
-    <td width="50" align="center">-</td>
     <td>Find previous</td>
 </tr>
 <tr valign="top">
     <td nowrap class="HotKey">CMD-A</td>
-    <td width="50" align="center">-</td>
     <td>Scroll to top</td>
     <td nowrap class="HotKey">CMD-B</td>
-    <td width="50" align="center">-</td>
     <td>Scroll to bottom</td>
 </tr>
 <tr valign="top" bgcolor="#EEEEEE">
     <td nowrap class="HotKey">CMD-F2 or double-click on a row</td>
-    <td width="50" align="center">-</td>
     <td>Define a 'marker' (add a note to a row)</td>
     <td nowrap class="HotKey">CMD-SHIFT-F2</td>
-    <td width="50" align="center">-</td>
     <td>Clear all markers</td>
 </tr>
 <tr valign="top">
     <td nowrap class="HotKey">F2</td>
-    <td width="50" align="center">-</td>
     <td>Find next marker</td>
     <td nowrap class="HotKey">SHIFT-F2</td>
-    <td width="50" align="center">-</td>
     <td>Find previous marker</td>
 </tr>
 <tr valign="top" bgcolor="#EEEEEE">
     <td nowrap class="HotKey">CMD-F</td>
-    <td width="50" align="center">-</td>
     <td>Set focus in 'find' field</td>
     <td nowrap class="HotKey">CMD-R</td>
-    <td width="50" align="center">-</td>
     <td>Set focus in 'refine focus' field</td>
 </tr>
 <tr valign="top" bgcolor="#EEEEEE">
     <td nowrap class="HotKey">CMD--SHIFT-F</td>
-    <td width="50" align="center">-</td>
     <td>Clear 'find' field</td>
     <td nowrap class="HotKey">CMD-SHIFT-R</td>
-    <td width="50" align="center">-</td>
     <td>Clear 'refine focus' field</td>
 </tr>
 <tr valign="top" >
 	<td nowrap class="HotKey">CMD-S</td>
-	<td width="50" align="center">-</td>
 	<td>Save displayed events</td>
     <td nowrap class="HotKey">CMD-O</td>
-    <td width="50" align="center">-</td>
     <td>Load file of XML events</td>
 </tr>
 <tr valign="top" bgcolor="#EEEEEE">
     <td nowrap class="HotKey">CMD-BACKSPACE</td>
-    <td width="50" align="center">-</td>
     <td>Purges current panels events</td>
 	<td nowrap class="HotKey">F12</td>
-	<td width="50" align="center">-</td>
 	<td>Pause display</td>
 </tr>
 <tr valign="top">
 	<td nowrap class="HotKey">CMD-D</td>
-	<td width="50" align="center">-</td>
 	<td>Show/Hide the Detail pane</td>
 	<td nowrap class="HotKey">CMD-T</td>
-	<td width="50" align="center">-</td>
 	<td>Show/Hide the Logger Tree pane</td>
 </tr>
 <tr valign="top" bgcolor="#EEEEEE">
     <td nowrap class="HotKey">F1</td>
-    <td width="50" align="center">-</td>
     <td>Hide/Show Welcome Panel/Help page</td>
     <td nowrap class="HotKey">F6</td>
-    <td width="50" align="center">-</td>
     <td>Show Receivers Dialog</td>
 </tr>
 <tr valign="top">
     <td nowrap class="HotKey">CMD-N</td>
-    <td width="50" align="center">-</td>
     <td>Go to next colored row</td>
     <td nowrap class="HotKey">CMD-P</td>
-    <td width="50" align="center">-</td>
     <td>Go to previous colored row</td>
 </tr>
 <tr valign="top" bgcolor="#EEEEEE">
     <td nowrap class="HotKey">CMD-G</td>
-    <td width="50" align="center">-</td>
     <td>Go to line</td>
 	<td></td>
 	<td></td>

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/345dc273/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html b/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html
index ed61f2c..3068296 100644
--- a/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html
+++ b/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html
@@ -10,6 +10,10 @@
 <b>NOTE:</b> The mechanism and format used to persist settings in Chainsaw is subject to change.  If you are experiencing problems displaying events in Chainsaw, please delete everything in the $user.dir/.chainsaw directory and restart Chainsaw.
 <br>
 <h1>2.1</h1>
+<h2>4 Nov 2010</h2>
+<ul>
+<li>Added ability to define which columns are displayed by default when a new tab is created by clicking the 'Use selected columns as default visible columns' button on the logpanel preferences column selection screen</li>
+</ul>
 <h2>22 Oct 2010</h2>
 <ul>
 <li>Updated keyboard shortcuts to use system-specific option (Apple command key, Windows control key)</li>