Center windows, change custom expression logpanel text field to a textarea

git-svn-id: https://svn.apache.org/repos/asf/logging/chainsaw/trunk@954712 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
index f0fe9a7..e012336 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
@@ -48,6 +48,7 @@
 import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JRadioButtonMenuItem;
+import javax.swing.JTextArea;
 import javax.swing.JTextField;
 import javax.swing.JToolBar;
 import javax.swing.KeyStroke;
@@ -650,7 +651,7 @@
     Action createExpressionPanel =
       new AbstractAction("", ChainsawIcons.ICON_HELP) {
         public void actionPerformed(ActionEvent arg0) {
-          dialog.setVisible(true);
+            LogPanel.centerAndSetVisible(dialog);
         }
       };
 
@@ -1051,10 +1052,10 @@
     panel.add(
       new JLabel("Enter expression for new tab:  "), BorderLayout.NORTH);
 
-    final JTextField textField = new JTextField();
-    textField.addKeyListener(
-      new ExpressionRuleContext(new FilterModel(), textField));
-    panel.add(textField, BorderLayout.CENTER);
+    final JTextArea textArea = new JTextArea(4, 75);
+    textArea.addKeyListener(
+      new ExpressionRuleContext(new FilterModel(), textArea));
+    panel.add(textArea, BorderLayout.CENTER);
 
     JButton ok = new JButton("OK");
     JButton close = new JButton("Close");
@@ -1067,7 +1068,7 @@
     ok.addActionListener(
       new AbstractAction() {
         public void actionPerformed(ActionEvent evt) {
-          logui.createCustomExpressionLogPanel(textField.getText());
+          logui.createCustomExpressionLogPanel(textArea.getText());
           SwingUtilities.getAncestorOfClass(JDialog.class, panel).setVisible(
             false);
         }
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
index 39170c6..2fd5597 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
@@ -29,6 +29,7 @@
 import java.awt.Graphics;
 import java.awt.Point;
 import java.awt.Toolkit;
+import java.awt.Window;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.FocusEvent;
@@ -1931,7 +1932,15 @@
      * Display the panel preferences frame
      */
   void showPreferences() {
-    logPanelPreferencesFrame.setVisible(true);
+      //don't pack this frame
+      centerAndSetVisible(logPanelPreferencesFrame);
+  }
+
+  public static void centerAndSetVisible(Window window) {
+    Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
+    window.setLocation(new Point((screenDimension.width / 2) - (window.getSize().width / 2),
+      (screenDimension.height / 2) - (window.getSize().height / 2)));
+    window.setVisible(true);
   }
 
   /**
@@ -1940,7 +1949,7 @@
   void showColorPreferences() {
     colorPanel.loadLogPanelColorizers();
     colorFrame.pack();
-    colorFrame.setVisible(true);
+    centerAndSetVisible(colorFrame);
   }
 
   /**
diff --git a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
index 2616c7c..b7746ef 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
@@ -321,13 +321,13 @@
     
     Action showIgnoreDialogAction = new AbstractAction("...") {
         public void actionPerformed(ActionEvent e) {
-            ignoreDialog.setVisible(true);
+            LogPanel.centerAndSetVisible(ignoreDialog);
         }
     };
 
     Action showIgnoreExpressionDialogAction = new AbstractAction("...") {
       public void actionPerformed(ActionEvent e) {
-        ignoreExpressionDialog.setVisible(true);
+          LogPanel.centerAndSetVisible(ignoreExpressionDialog);
       }
     };
     showIgnoreDialogAction.putValue(Action.SHORT_DESCRIPTION, "Click to view and manage your hidden/ignored loggers");