You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@logging.apache.org by ps...@apache.org on 2007/07/13 06:01:07 UTC

svn commit: r555864 - in /logging/chainsaw/trunk/src: changes/changes.xml main/java/org/apache/log4j/chainsaw/LogUI.java

Author: psmith
Date: Thu Jul 12 21:01:07 2007
New Revision: 555864

URL: http://svn.apache.org/viewvc?view=rev&rev=555864
Log:
Bug 42833 Added ability to hide Welcome and Drag and Drop panels.

Patch supplied by Isuru Suriarachchi

Modified:
    logging/chainsaw/trunk/src/changes/changes.xml
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java

Modified: logging/chainsaw/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/changes/changes.xml?view=diff&rev=555864&r1=555863&r2=555864
==============================================================================
--- logging/chainsaw/trunk/src/changes/changes.xml (original)
+++ logging/chainsaw/trunk/src/changes/changes.xml Thu Jul 12 21:01:07 2007
@@ -21,12 +21,16 @@
   </properties>
   <body>
       <release version="1.99.99" date="UNKNOWN" description="">
-      <action dev="psmith" issue="42789" type="add" due-to=" Isuru Suriarachchi  " due-to-email="">
+      <action dev="psmith" issue="42789" type="add" due-to="Isuru Suriarachchi" due-to-email="">
 		Added support for remembering filter expressions for each LogPanel
       </action>
-      <action dev="psmith" issue="42851" type="add" due-to=" Isuru Suriarachchi  " due-to-email="">
+      <action dev="psmith" issue="42851" type="add" due-to="Isuru Suriarachchi" due-to-email="">
 		Added 'Go To Line' feature to navigate to a particular event #
       </action>
+      <action dev="psmith" issue="42883" type="add" due-to="Isuru Suriarachchi" due-to-email="">
+		Added ability to hide Welcome and Drag and Drop panels.
+      </action>
+
     </release>
   </body>
 </document>

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?view=diff&rev=555864&r1=555863&r2=555864
==============================================================================
--- 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 Thu Jul 12 21:01:07 2007
@@ -456,16 +456,7 @@
             
         }});
    
-    final JLabel lbl  = new JLabel();
-    lbl.setEnabled(false);
-    final String dndTitle = "Drag & Drop XML log files here";
-    SwingUtilities.invokeLater(new Runnable() {
-    	public void run() {
-    	    ensureWelcomePanelVisible();
-    	    getTabbedPane().addANewTab(dndTitle,lbl,null, "You can Drag & Drop XML log files onto the Tabbed Pane and they will be loaded into Chainsaw" );
-    	    getTabbedPane().setEnabledAt(getTabbedPane().indexOfTab(dndTitle), false);
-    	}
-    });
+    addDragDropPanel();
     applicationPreferenceModelPanel = new ApplicationPreferenceModelPanel(applicationPreferenceModel);
     applicationPreferenceModelPanel.setOkCancelActionListener(
       new ActionListener() {
@@ -478,6 +469,23 @@
   
   }
 
+  private void addDragDropPanel(){
+    final JLabel lbl  = new JLabel();
+    lbl.setEnabled(false);
+    final String dndTitle = "Drag & Drop XML log files here";
+    SwingUtilities.invokeLater(new Runnable() {
+    	public void run() {
+    	    ensureWelcomePanelVisible();
+    	    getTabbedPane().addANewTab(dndTitle,lbl,null, "You can Drag & Drop XML log files onto the Tabbed Pane and they will be loaded into Chainsaw" );
+    	    getTabbedPane().setEnabledAt(getTabbedPane().indexOfTab(dndTitle), false);
+            if (!getPanelMap().containsKey(dndTitle)) {
+              getPanelMap().put(dndTitle, lbl);
+            }
+        }
+    });
+  }
+
+
   private void initPlugins(PluginRegistry pluginRegistry) {
     pluginRegistry.addPluginListener(
       new PluginListener() {
@@ -804,15 +812,28 @@
     final Action hideCurrentTabAction =
       new AbstractAction("Hide") {
         public void actionPerformed(ActionEvent e) {
-          displayPanel(getCurrentLogPanel().getIdentifier(), false);
-          tbms.stateChange();
+          Component selectedComp = getTabbedPane().getSelectedComponent();
+          if (selectedComp instanceof LogPanel) {
+            displayPanel(getCurrentLogPanel().getIdentifier(), false);
+            tbms.stateChange();
+          } else {
+            getTabbedPane().remove(selectedComp);
+          }
         }
       };
 
     final Action hideOtherTabsAction =
       new AbstractAction("Hide Others") {
         public void actionPerformed(ActionEvent e) {
-          String currentName = getCurrentLogPanel().getIdentifier();
+          Component selectedComp = getTabbedPane().getSelectedComponent();
+          String currentName;
+          if (selectedComp instanceof LogPanel) {
+            currentName = getCurrentLogPanel().getIdentifier();
+          } else if (selectedComp instanceof WelcomePanel) {
+            currentName = "Welcome";
+          } else {
+            currentName = "Drag & Drop XML log files here";
+          }
 
           int count = getTabbedPane().getTabCount();
           int index = 0;
@@ -871,28 +892,6 @@
     final PopupListener tabPopupListener = new PopupListener(tabPopup);
     getTabbedPane().addMouseListener(tabPopupListener);
 
-    final ChangeListener actionEnabler =
-      new ChangeListener() {
-        public void stateChanged(ChangeEvent arg0) {
-          boolean enabled = getCurrentLogPanel() != null;
-          hideCurrentTabAction.setEnabled(enabled);
-          hideOtherTabsAction.setEnabled(enabled);
-        }
-      };
-
-    getTabbedPane().addChangeListener(actionEnabler);
-
-    getTabbedPane().addContainerListener(
-      new ContainerListener() {
-        public void componentAdded(ContainerEvent arg0) {
-          actionEnabler.stateChanged(null);
-        }
-
-        public void componentRemoved(ContainerEvent arg0) {
-          actionEnabler.stateChanged(null);
-        }
-      });
-
     this.handler.addPropertyChangeListener(
       "dataRate",
       new PropertyChangeListener() {
@@ -1418,6 +1417,7 @@
       "Welcome",  new ImageIcon(ChainsawIcons.ABOUT),welcomePanel,
       "Welcome/Help", 0);
     getTabbedPane().setSelectedComponent(welcomePanel);
+    getPanelMap().put("Welcome", welcomePanel);
   }
 
   void removeWelcomePanel() {
@@ -1451,9 +1451,14 @@
 
     while (iter.hasNext()) {
       Map.Entry entry = (Map.Entry) iter.next();
-      m.put(
-        entry.getKey(),
-        new Boolean(((DockablePanel) entry.getValue()).isDocked()));
+      Object o = entry.getValue();
+      boolean valueToSend;
+      if (o instanceof LogPanel){
+        valueToSend = ((DockablePanel) entry.getValue()).isDocked();
+      } else {
+        valueToSend = true;
+      }
+      m.put(entry.getKey(), new Boolean(valueToSend));
     }
 
     return m;
@@ -1461,21 +1466,31 @@
 
   void displayPanel(String panelName, boolean display) {
     Object o = getPanelMap().get(panelName);
+    Component p = null;
 
     if (o instanceof LogPanel) {
-      LogPanel p = (LogPanel) o;
+      p = (LogPanel) o;
+    } else if (o instanceof WelcomePanel) {
+      p = (WelcomePanel) o;
+    } else if (o instanceof JLabel) {
+      p = (JLabel) o;
+    }
 
       int index = getTabbedPane().indexOfTab(panelName);
 
       if ((index == -1) && display) {
-        getTabbedPane().addTab(panelName, p);
+        if (panelName.equals("Drag & Drop XML log files here")){
+          addDragDropPanel();
+        } else {
+          getTabbedPane().addTab(panelName, p);
+        }
       }
 
       if ((index > -1) && !display) {
         getTabbedPane().removeTabAt(index);
       }
-    }
-  }
+   }
+  
 
   /**
    * Shutsdown by ensuring the Appender gets a chance to close.