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:44 UTC

[07/50] [abbrv] logging-chainsaw git commit: Fixes to persistence of detail panel position, not updating look and feel if not set

Fixes to persistence of detail panel position, not updating look and feel if not set


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

Branch: refs/heads/master
Commit: a3dda1555bcc1febc0d55decbb3c77ebc88d4aeb
Parents: 3449713
Author: Scott Deboy <sd...@apache.org>
Authored: Tue Oct 26 04:45:07 2010 +0000
Committer: Scott Deboy <sd...@apache.org>
Committed: Tue Oct 26 04:45:07 2010 +0000

----------------------------------------------------------------------
 .../org/apache/log4j/chainsaw/LogPanel.java     | 49 +++++++++++---------
 .../java/org/apache/log4j/chainsaw/LogUI.java   | 11 +++--
 2 files changed, 32 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a3dda155/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 d2bc5e3..189cac4 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
@@ -233,7 +233,6 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
   private final RuleMediator tableRuleMediator = new RuleMediator(false);
   private final RuleMediator searchRuleMediator = new RuleMediator(true);
   private final EventDetailLayout detailLayout = new EventDetailLayout();
-  private double lastDetailPanelSplitLocation = DEFAULT_DETAIL_SPLIT_LOCATION;
   private double lastLogTreePanelSplitLocation = DEFAULT_LOG_TREE_SPLIT_LOCATION;
   private Point currentPoint;
   private JTable currentTable;
@@ -269,6 +268,7 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
   private boolean searchResultsDisplayed;
   private ColorizedEventAndSearchMatchThumbnail colorizedEventAndSearchMatchThumbnail;
   private EventTimeDeltaMatchThumbnail eventTimeDeltaMatchThumbnail;
+  private boolean isDetailPanelVisible;
 
   /**
    * Creates a new LogPanel object.  If a LogPanel with this identifier has
@@ -2268,9 +2268,9 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
                     loadDefaultColumnSettings(event);
                 }
                 //ensure tablemodel cyclic flag is updated
+                //may be panel configs that don't have these values
                 tableModel.setCyclic(preferenceModel.isCyclic());
                 searchModel.setCyclic(preferenceModel.isCyclic());
-                //may be panel configs that don't have these values
                 lowerPanel.setDividerLocation(lowerPanelDividerLocation);
                 nameTreeAndMainPanelSplit.setDividerLocation(treeDividerLocation);
                 detailLayout.setConversionPattern(conversionPattern);
@@ -2296,9 +2296,12 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
             }
         }
     } else {
+        //not setting lower panel divider location here - will do that after the UI is visible
         loadDefaultColumnSettings(event);
     }
-
+    //ensure tablemodel cyclic flag is updated
+    tableModel.setCyclic(preferenceModel.isCyclic());
+    searchModel.setCyclic(preferenceModel.isCyclic());
     logTreePanel.ignore(preferenceModel.getHiddenLoggers());
     logTreePanel.setHiddenExpression(preferenceModel.getHiddenExpression());
     if (preferenceModel.getClearTableExpression() != null) {
@@ -2347,12 +2350,13 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
     	FileWriter w = new FileWriter(xmlFile);
     	s = stream.createObjectOutputStream(w);
     	s.writeObject(preferenceModel);
-        if (lowerPanelDividerLocation == 0) {
-            //pick a reasonable default
-            s.writeInt((int) (lowerPanel.getSize().height * DEFAULT_DETAIL_SPLIT_LOCATION));
-        } else {
-            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());
     	s.writeObject(undockedFrame.getLocation());
@@ -2701,34 +2705,33 @@ public class LogPanel extends DockablePanel implements EventBatchListener, Profi
    * Display the detail pane, using the last known divider location
    */
   private void showDetailPane() {
-    lowerPanel.setDividerSize(dividerSize);
-      if (lowerPanelDividerLocation != 0) {
-          lowerPanel.setDividerLocation(lowerPanelDividerLocation);
+    if (!isDetailPanelVisible) {
+      lowerPanel.setDividerSize(dividerSize);
+      if (lowerPanelDividerLocation == 0) {
+        lowerPanel.setDividerLocation(DEFAULT_DETAIL_SPLIT_LOCATION);
+        lowerPanelDividerLocation = lowerPanel.getDividerLocation();
       } else {
-          lowerPanel.setDividerLocation(lastDetailPanelSplitLocation);
+        lowerPanel.setDividerLocation(lowerPanelDividerLocation);
       }
       detailPanel.setVisible(true);
       detailPanel.repaint();
       lowerPanel.repaint();
+      isDetailPanelVisible = true;
+    }
   }
 
   /**
    * Hide the detail pane, holding the current divider location for later use
    */
   private void hideDetailPane() {
-    int currentSize = lowerPanel.getHeight() - lowerPanel.getDividerSize();
-
-    if (currentSize > 0) {
-      lastDetailPanelSplitLocation =
-        (double) lowerPanel.getDividerLocation() / currentSize;
-     }
-     if (lowerPanel.getDividerLocation() > 0) {
-        lowerPanelDividerLocation = lowerPanel.getDividerLocation();
-     }
-
+    //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) {
+      lowerPanelDividerLocation = lowerPanel.getDividerLocation();
+    }
     lowerPanel.setDividerSize(0);
     detailPanel.setVisible(false);
     lowerPanel.repaint();
+    isDetailPanelVisible = false;
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a3dda155/src/main/java/org/apache/log4j/chainsaw/LogUI.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogUI.java b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
index e85a974..984a421 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogUI.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
@@ -286,8 +286,11 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
     {
         public void run()
         {
-            loadLookAndFeelUsingPluginClassLoader(model.getLookAndFeelClassName());
-            createChainsawGUI(model, null);
+          String lookAndFeelClassName = model.getLookAndFeelClassName();
+          if (lookAndFeelClassName != null && !(lookAndFeelClassName.trim().equals(""))) {
+            loadLookAndFeelUsingPluginClassLoader(lookAndFeelClassName);
+          }
+          createChainsawGUI(model, null);
         }
     });
   }
@@ -1040,12 +1043,10 @@ public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
       initializationLock.notifyAll();
     }
 
-    
-    
     if (
       noReceiversDefined
         && applicationPreferenceModel.isShowNoReceiverWarning()) {
-      EventQueue.invokeLater(new Runnable() {
+      SwingHelper.invokeOnEDT(new Runnable() {
           public void run() {
               showReceiverConfigurationPanel();
           }