This is an automated email from the ASF dual-hosted git repository.

rmiddleton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-chainsaw.git

commit 73476dd97cbdf285ad3f0d36faaaea2ebd3050e3
Author: Robert Middleton <[email protected]>
AuthorDate: Sun Dec 18 20:33:20 2022 -0500

    Open/close detail pane and tree pane
---
 .../java/org/apache/log4j/chainsaw/LogPanel.java   | 70 +++++++++++-----------
 .../apache/log4j/chainsaw/LoggerNameTreePanel.java | 13 ++--
 .../log4j/chainsaw/prefs/SettingsManager.java      |  2 +-
 .../log4j/chainsaw/prefs/logpanel.properties       |  2 +-
 4 files changed, 46 insertions(+), 41 deletions(-)

diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java 
b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
index a354444..64a9b7a 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
@@ -181,7 +181,6 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
     private boolean searchResultsDisplayed;
     private ColorizedEventAndSearchMatchThumbnail 
colorizedEventAndSearchMatchThumbnail;
     private EventTimeDeltaMatchThumbnail eventTimeDeltaMatchThumbnail;
-    private boolean isDetailPanelVisible;
     private ChainsawReceiver m_receiver;
     private AbstractConfiguration m_configuration;
     private Map<String, RuleColorizer> m_allColorizers;
@@ -209,6 +208,7 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
         logger.debug("creating logpanel for {}", identifier);
 
         m_configuration = 
SettingsManager.getInstance().getCombinedSettingsForRecevierTab(identifier);
+        AbstractConfiguration tabConfig = 
SettingsManager.getInstance().getSettingsForReceiverTab(identifier);
 
         setLayout(new BorderLayout());
 
@@ -289,7 +289,7 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
         undockedFrame.setSize(new Dimension(1024, 768));
         undockedFrame.pack();
 
-        m_configuration.addEventListener(ConfigurationEvent.SET_PROPERTY,
+        tabConfig.addEventListener(ConfigurationEvent.SET_PROPERTY,
             evt -> {
                 if( evt.getPropertyName().equals( "scrollToBottom" ) ){
                     boolean value = (Boolean) evt.getPropertyValue();
@@ -407,11 +407,11 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
 
             } );
 
-        m_configuration.addEventListener(ConfigurationEvent.SET_PROPERTY,
+        tabConfig.addEventListener(ConfigurationEvent.SET_PROPERTY,
             new 
org.apache.commons.configuration2.event.EventListener<ConfigurationEvent>(){
                 @Override
                 public void onEvent(ConfigurationEvent evt) {
-                    if( evt.getPropertyName().equals( 
"logpanel.detailPaneVisible" ) ){
+                    if( evt.getPropertyName().equals( 
"logpanel.detailColumnVisible" ) ){
                         boolean detailPaneVisible = (Boolean) 
evt.getPropertyValue();
                         if (detailPaneVisible) {
                             showDetailPane();
@@ -426,7 +426,7 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
 
             } );
 
-        m_configuration.addEventListener(ConfigurationEvent.SET_PROPERTY,
+        tabConfig.addEventListener(ConfigurationEvent.SET_PROPERTY,
             new 
org.apache.commons.configuration2.event.EventListener<ConfigurationEvent>(){
                 @Override
                 public void onEvent(ConfigurationEvent evt) {
@@ -561,9 +561,9 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
                 }
             });
 
-        m_configuration.addEventListener(ConfigurationEvent.SET_PROPERTY,
+        tabConfig.addEventListener(ConfigurationEvent.SET_PROPERTY,
             evt -> {
-                if( evt.getPropertyName().equals("logpanel.detailPaneVisible") 
){
+                if( 
evt.getPropertyName().equals("logpanel.detailColumnVisible") ){
                     boolean value = (Boolean) evt.getPropertyValue();
                     menuItemToggleDetails.setSelected(value);
                 }
@@ -686,7 +686,7 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
          *
          */
         LogPanelLoggerTreeModel logTreeModel = new LogPanelLoggerTreeModel();
-        logTreePanel = new LoggerNameTreePanel(logTreeModel, preferenceModel, 
this, colorizer, filterModel);
+        logTreePanel = new LoggerNameTreePanel(logTreeModel, tabConfig, this, 
colorizer, filterModel);
         logTreePanel.getLoggerVisibilityRule().addPropertyChangeListener(evt 
-> {
             if (evt.getPropertyName().equals("searchExpression")) {
                 findCombo.setSelectedItem(evt.getNewValue().toString());
@@ -1297,7 +1297,7 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
         Action closeDetailAction =
             new AbstractAction(null, LineIconFactory.createCloseIcon()) {
                 public void actionPerformed(ActionEvent arg0) {
-                    preferenceModel.setDetailPaneVisible(false);
+                    tabConfig.setProperty("logpanel.detailColumnVisible", 
false);
                 }
             };
 
@@ -2226,13 +2226,13 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
             FileWriter w = new FileWriter(xmlFile);
             s = stream.createObjectOutputStream(w);
             s.writeObject(preferenceModel);
-            if (isDetailPanelVisible) {
-                //use current size
-                s.writeInt(lowerPanel.getDividerLocation());
-            } else {
-                //use size when last hidden
-                s.writeInt(lowerPanelDividerLocation);
-            }
+//            if (isDetailPanelVisible) {
+//                //use current size
+//                s.writeInt(lowerPanel.getDividerLocation());
+//            } else {
+//                //use size when last hidden
+//                s.writeInt(lowerPanelDividerLocation);
+//            }
             s.writeInt(nameTreeAndMainPanelSplit.getDividerLocation());
             s.writeObject(detailLayout.getConversionPattern());
             //this is a version number written to the file to identify that 
there is a Vector serialized after this
@@ -2319,8 +2319,10 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
      * Toggle panel preference for detail visibility on or off
      */
     void toggleDetailVisible() {
-        preferenceModel.setDetailPaneVisible(
-            !preferenceModel.isDetailPaneVisible());
+        AbstractConfiguration config = 
SettingsManager.getInstance().getSettingsForReceiverTab(identifier);
+
+        boolean visible = config.getBoolean("logpanel.detailColumnVisible");
+        config.setProperty("logpanel.detailColumnVisible", !visible);
     }
 
     /**
@@ -2329,7 +2331,10 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
      * @return detail visibility flag
      */
     boolean isDetailVisible() {
-        return preferenceModel.isDetailPaneVisible();
+        AbstractConfiguration config = 
SettingsManager.getInstance().getSettingsForReceiverTab(identifier);
+
+        boolean visible = config.getBoolean("logpanel.detailColumnVisible");
+        return visible;
     }
 
     boolean isSearchResultsVisible() {
@@ -2608,19 +2613,16 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
      * Display the detail pane, using the last known divider location
      */
     private void showDetailPane() {
-        if (!isDetailPanelVisible) {
-            lowerPanel.setDividerSize(dividerSize);
-            if (lowerPanelDividerLocation == 0) {
-                lowerPanel.setDividerLocation(DEFAULT_DETAIL_SPLIT_LOCATION);
-                lowerPanelDividerLocation = lowerPanel.getDividerLocation();
-            } else {
-                lowerPanel.setDividerLocation(lowerPanelDividerLocation);
-            }
-            detailPanel.setVisible(true);
-            detailPanel.repaint();
-            lowerPanel.repaint();
-            isDetailPanelVisible = true;
+        lowerPanel.setDividerSize(dividerSize);
+        if (lowerPanelDividerLocation == 0) {
+            lowerPanel.setDividerLocation(DEFAULT_DETAIL_SPLIT_LOCATION);
+            lowerPanelDividerLocation = lowerPanel.getDividerLocation();
+        } else {
+            lowerPanel.setDividerLocation(lowerPanelDividerLocation);
         }
+        detailPanel.setVisible(true);
+        detailPanel.repaint();
+        lowerPanel.repaint();
     }
 
     /**
@@ -2628,13 +2630,11 @@ public class LogPanel extends DockablePanel implements 
ChainsawEventBatchListene
      */
     private void hideDetailPane() {
         //may be called not currently visible on initial setup to ensure panel 
is not visible..only update divider location if hiding when currently visible
-        if (isDetailPanelVisible) {
+//        if (isDetailPanelVisible) {
             lowerPanelDividerLocation = lowerPanel.getDividerLocation();
-        }
+//        }
         lowerPanel.setDividerSize(0);
         detailPanel.setVisible(false);
-        lowerPanel.repaint();
-        isDetailPanelVisible = false;
     }
 
     /**
diff --git a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java 
b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
index 26a1cae..0ff012f 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
@@ -36,6 +36,7 @@ import java.awt.*;
 import java.awt.event.*;
 import java.util.*;
 import java.util.List;
+import org.apache.commons.configuration2.AbstractConfiguration;
 import org.apache.log4j.chainsaw.logevents.ChainsawLoggingEvent;
 
 
@@ -77,7 +78,7 @@ final class LoggerNameTreePanel extends JPanel implements 
LoggerNameListener {
     private final Set hiddenSet = new HashSet();
     private final Action hideAction;
     private final Action hideSubLoggersAction;
-    private final LogPanelPreferenceModel preferenceModel;
+    private final AbstractConfiguration m_panelConfig;
 
     private final JList ignoreList = new JList();
     private final JEditorPane ignoreExpressionEntryField = new JEditorPane();
@@ -117,10 +118,14 @@ final class LoggerNameTreePanel extends JPanel implements 
LoggerNameListener {
      *
      * @param logTreeModel
      */
-    LoggerNameTreePanel(LogPanelLoggerTreeModel logTreeModel, 
LogPanelPreferenceModel preferenceModel, LogPanel logPanel, RuleColorizer 
colorizer, FilterModel filterModel) {
+    LoggerNameTreePanel(LogPanelLoggerTreeModel logTreeModel, 
+            AbstractConfiguration panelConfiguration,
+            LogPanel logPanel,
+            RuleColorizer colorizer,
+            FilterModel filterModel) {
         super();
         this.logTreeModel = logTreeModel;
-        this.preferenceModel = preferenceModel;
+        m_panelConfig = panelConfiguration;
         this.logPanel = logPanel;
         this.colorizer = colorizer;
 
@@ -679,7 +684,7 @@ final class LoggerNameTreePanel extends JPanel implements 
LoggerNameListener {
     private Action createCloseAction() {
         Action action = new AbstractAction() {
             public void actionPerformed(ActionEvent e) {
-                preferenceModel.setLogTreePanelVisible(false);
+                m_panelConfig.setProperty("logpanel.logTreePanelVisible", 
false);
             }
         };
 
diff --git a/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java 
b/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java
index 48d903d..cb41cf2 100644
--- a/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java
+++ b/src/main/java/org/apache/log4j/chainsaw/prefs/SettingsManager.java
@@ -123,7 +123,7 @@ public final class SettingsManager {
         return m_configuration;
     }
 
-    public AbstractConfiguration getCombinedSettingsForRecevierTab(String 
identifier){
+    public CombinedConfiguration getCombinedSettingsForRecevierTab(String 
identifier){
         // Override combiner: nodes in the first structure take precedence 
over the second
         CombinedConfiguration combinedConfig = new CombinedConfiguration(new 
OverrideCombiner());
 
diff --git 
a/src/main/resources/org/apache/log4j/chainsaw/prefs/logpanel.properties 
b/src/main/resources/org/apache/log4j/chainsaw/prefs/logpanel.properties
index d02d4e3..826ab5c 100644
--- a/src/main/resources/org/apache/log4j/chainsaw/prefs/logpanel.properties
+++ b/src/main/resources/org/apache/log4j/chainsaw/prefs/logpanel.properties
@@ -31,7 +31,7 @@ logpanel.cyclic=false
 logpanel.showMillisDeltaAsGap=false
 logpanel.searchResultsVisible=true
 logpanel.lowerPanelDividerLocation=0
-logpanel.treeDividerLocation=0
+logpanel.treeDividerLocation=120
 logpanel.hiddenLoggers=
 logpanel.hiddenExpression=
 logpanel.alwaysDisplayExpression=

Reply via email to