svn commit: r1021624 - in /logging/chainsaw/trunk/src/main: java/org/apache/log4j/chainsaw/ resources/org/apache/log4j/chainsaw/prefs/

[email protected]
Newsgroups gmane.comp.apache.logging
Message-ID <[email protected]>
Author: sdeboy
Date: Tue Oct 12 04:23:07 2010
New Revision: 1021624

URL: http://svn.apache.org/viewvc?rev=1021624&view=rev
Log:
Minor UI fixes
 - Removing Nimbus from available look and feels (chronic issues with Nimbus look and feel and JTable colors)
 - Updating displayed look and feel in preferences panel to ensure default look and feel is selected
 - non-wrap option was still using multi-line jtextpane in the tablecellrenderer, causing visual glitches in Windows look and feel
 - updated default msg field to be wider, other fields to right of msg field are now a bit narrower

Modified:
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
    logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/prefs/default.properties

Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java?rev=1021624&r1=1021623&r2=1021624&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModel.java Tue Oct 12 04:23:07 2010
@@ -21,6 +21,7 @@ import java.beans.PropertyChangeListener
 import java.beans.PropertyChangeSupport;
 import java.util.Vector;
 
+import javax.swing.UIManager;
 
 /**
  * Encapsulates the Chainsaw Application wide properties
@@ -193,7 +194,12 @@ public class ApplicationPreferenceModel 
       setStatusBar(model.isStatusBar());
       setToolbar(model.isToolbar());
       setReceivers(model.isReceivers());
-      setLookAndFeelClassName(model.getLookAndFeelClassName());
+      if (model.getLookAndFeelClassName() != null && !model.getLookAndFeelClassName().trim().equals("")) {
+          setLookAndFeelClassName(model.getLookAndFeelClassName());
+      } else {
+          //ensure current look and feel is selected
+          setLookAndFeelClassName(UIManager.getLookAndFeel().getClass().getName());
+      }
       setConfirmExit(model.isConfirmExit());
       setShowSplash(model.isShowSplash());
       setToolTipDisplayMillis(model.getToolTipDisplayMillis());

Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java?rev=1021624&r1=1021623&r2=1021624&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java Tue Oct 12 04:23:07 2010
@@ -175,12 +175,28 @@ public static void main(String[] args) {
     private final JCheckBox statusBar = new JCheckBox("Show Status bar");
     private final JCheckBox toolBar = new JCheckBox("Show Toolbar");
     private final JCheckBox receivers = new JCheckBox("Show Receivers");
-    private UIManager.LookAndFeelInfo[] lookAndFeels =
-      UIManager.getInstalledLookAndFeels();
+    private UIManager.LookAndFeelInfo[] lookAndFeels = UIManager.getInstalledLookAndFeels();
     private final ButtonGroup lookAndFeelGroup = new ButtonGroup();
 
     private VisualsPrefPanel() {
       super("Visuals");
+
+      //Nimbus has major issues with colors in tables..just remove it from the list..
+      //only use this if nimbus was found..
+      UIManager.LookAndFeelInfo[] newLookAndFeels = new UIManager.LookAndFeelInfo[lookAndFeels.length - 1];
+      boolean useNewLookAndFeels = false;
+      int j = 0;
+      for (int i=0;i<lookAndFeels.length;i++) {
+          if (!lookAndFeels[i].getClassName().toLowerCase().contains("nimbus")) {
+              newLookAndFeels[j++] = lookAndFeels[i];
+          } else {
+              useNewLookAndFeels = true;
+          }
+      }
+      if (useNewLookAndFeels) {
+          lookAndFeels = newLookAndFeels;
+      }
+
       setupComponents();
       setupListeners();
       setupInitialValues();

Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java?rev=1021624&r1=1021623&r2=1021624&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java Tue Oct 12 04:23:07 2010
@@ -99,7 +99,7 @@ public class TableColorizingRenderer ext
 
   private static int borderWidth = 2;
 
-  private static Color borderColor = (Color)UIManager.get("Table.selectionBackground");
+  private final Color borderColor;
 
   private final JTextPane levelTextPane = new JTextPane();
   private JTextPane singleLineTextPane = new JTextPane();
@@ -130,6 +130,11 @@ public class TableColorizingRenderer ext
     levelPanel.setLayout(new BoxLayout(levelPanel, BoxLayout.Y_AXIS));
     maxHeight = Toolkit.getDefaultToolkit().getScreenSize().height;
 
+    if (UIManager.get("Table.selectionBackground") != null) {
+        borderColor = (Color)UIManager.get("Table.selectionBackground");
+    } else {
+        borderColor = Color.BLUE;
+    }
     //define the 'bold' attributeset
     boldAttributeSet = new SimpleAttributeSet();
     StyleConstants.setBold(boldAttributeSet, true);
@@ -287,39 +292,41 @@ public class TableColorizingRenderer ext
     case ChainsawColumns.INDEX_LOG4J_MARKER_COL_NAME:
     case ChainsawColumns.INDEX_MESSAGE_COL_NAME:
         String thisString = value.toString().trim();
-        multiLineTextPane.setText(thisString);
+        JTextPane textPane = wrap ? multiLineTextPane : singleLineTextPane;
+        JComponent textPaneContainer = wrap ? multiLinePanel : generalPanel;
+        textPane.setText(thisString);
 
         if (colIndex == ChainsawColumns.INDEX_LOG4J_MARKER_COL_NAME) {
             //property keys are set as all uppercase
-            setHighlightAttributesInternal(matches.get(LoggingEventFieldResolver.PROP_FIELD + ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE.toUpperCase()), (StyledDocument) multiLineTextPane.getDocument());
+            setHighlightAttributesInternal(matches.get(LoggingEventFieldResolver.PROP_FIELD + ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE.toUpperCase()), (StyledDocument) textPane.getDocument());
         } else {
-            setHighlightAttributesInternal(matches.get(LoggingEventFieldResolver.MSG_FIELD), (StyledDocument) multiLineTextPane.getDocument());
+            setHighlightAttributesInternal(matches.get(LoggingEventFieldResolver.MSG_FIELD), (StyledDocument) textPane.getDocument());
         }
-        multiLinePanel.removeAll();
+        textPaneContainer.removeAll();
         if (delta > 0 && logPanelPreferenceModel.isShowMillisDeltaAsGap()) {
             JPanel newPanel = new JPanel();
             newPanel.setOpaque(true);
             newPanel.setBackground(applicationPreferenceModel.getDeltaColor());
             newPanel.setPreferredSize(new Dimension(width, (int) delta));
-            multiLinePanel.add(newPanel, BorderLayout.NORTH);
+            textPaneContainer.add(newPanel, BorderLayout.NORTH);
         }
-        multiLinePanel.add(multiLineTextPane, BorderLayout.SOUTH);
+        textPaneContainer.add(textPane, BorderLayout.SOUTH);
 
         if (delta == 0 || !logPanelPreferenceModel.isShowMillisDeltaAsGap()) {
           if (col == 0) {
-            multiLineTextPane.setBorder(getLeftBorder(isSelected, delta));
+            textPane.setBorder(getLeftBorder(isSelected, delta));
           } else if (col == table.getColumnCount() - 1) {
-            multiLineTextPane.setBorder(getRightBorder(isSelected, delta));
+            textPane.setBorder(getRightBorder(isSelected, delta));
           } else {
-            multiLineTextPane.setBorder(getMiddleBorder(isSelected, delta));
+            textPane.setBorder(getMiddleBorder(isSelected, delta));
           }
         } else {
             if (col == 0) {
-              multiLineTextPane.setBorder(getLeftBorder(isSelected, 0));
+              textPane.setBorder(getLeftBorder(isSelected, 0));
             } else if (col == table.getColumnCount() - 1) {
-              multiLineTextPane.setBorder(getRightBorder(isSelected, 0));
+              textPane.setBorder(getRightBorder(isSelected, 0));
             } else {
-              multiLineTextPane.setBorder(getMiddleBorder(isSelected, 0));
+              textPane.setBorder(getMiddleBorder(isSelected, 0));
             }
         }
         int currentMarkerHeight = loggingEvent.getMarkerHeight();
@@ -337,13 +344,13 @@ public class TableColorizingRenderer ext
             int calculatedHeight = calculateHeight(thisString, width, paramMap);
              */
             //instead, set size to max height
-            multiLineTextPane.setSize(new Dimension(width, maxHeight));
-            int multiLinePanelPrefHeight = multiLinePanel.getPreferredSize().height;
+            textPane.setSize(new Dimension(width, maxHeight));
+            int multiLinePanelPrefHeight = textPaneContainer.getPreferredSize().height;
             newRowHeight = Math.max(ChainsawConstants.DEFAULT_ROW_HEIGHT, multiLinePanelPrefHeight);
 
         }
         if (!wrap && logPanelPreferenceModel.isShowMillisDeltaAsGap()) {
-            multiLineTextPane.setSize(new Dimension(Integer.MAX_VALUE, ChainsawConstants.DEFAULT_ROW_HEIGHT));
+            textPane.setSize(new Dimension(Integer.MAX_VALUE, ChainsawConstants.DEFAULT_ROW_HEIGHT));
             newRowHeight = (int) (ChainsawConstants.DEFAULT_ROW_HEIGHT + delta);
         }
 
@@ -364,7 +371,7 @@ public class TableColorizingRenderer ext
             table.setRowHeight(row, newRowHeight);
         }
 
-        component = multiLinePanel;
+        component = textPaneContainer;
         break;
     case ChainsawColumns.INDEX_LEVEL_COL_NAME:
       if (levelUseIcons) {

Modified: logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/prefs/default.properties
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/prefs/default.properties?rev=1021624&r1=1021623&r2=1021624&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/prefs/default.properties (original)
+++ logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/prefs/default.properties Tue Oct 12 04:23:07 2010
@@ -25,7 +25,7 @@ main.window.width=1024
 main.window.height=768
 
 table.columns.order=ID,TIMESTAMP,MARKER,LEVEL,LOGGER,MESSAGE,THROWABLE,THREAD,NDC,CLASS,METHOD,FILE,LINE,MILLISDELTA
-table.columns.widths=50,80,95,50,100,300,100,150,150,300,150,100,100,100
+table.columns.widths=50,80,95,50,100,500,100,100,100,100,100,100,100,100
 
 SavedConfigs.Size=0
 DateFormat.1=HH:mm:ss
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.