You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@logging.apache.org by sd...@apache.org on 2010/10/26 06:45:07 UTC
svn commit: r1027365 - in
/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw:
LogPanel.java LogUI.java
Author: sdeboy
Date: Tue Oct 26 04:45:07 2010
New Revision: 1027365
URL: http://svn.apache.org/viewvc?rev=1027365&view=rev
Log:
Fixes to persistence of detail panel position, not updating look and feel if not set
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java?rev=1027365&r1=1027364&r2=1027365&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java Tue Oct 26 04:45:07 2010
@@ -233,7 +233,6 @@ public class LogPanel extends DockablePa
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 DockablePa
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 DockablePa
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 DockablePa
}
}
} 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 DockablePa
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 DockablePa
* 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;
}
/**
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java?rev=1027365&r1=1027364&r2=1027365&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java Tue Oct 26 04:45:07 2010
@@ -286,8 +286,11 @@ public class LogUI extends JFrame implem
{
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 implem
initializationLock.notifyAll();
}
-
-
if (
noReceiversDefined
&& applicationPreferenceModel.isShowNoReceiverWarning()) {
- EventQueue.invokeLater(new Runnable() {
+ SwingHelper.invokeOnEDT(new Runnable() {
public void run() {
showReceiverConfigurationPanel();
}