You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2018/03/10 05:40:15 UTC

[08/14] logging-chainsaw git commit: Replace anonymous classes with lambdas

Replace anonymous classes with lambdas


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

Branch: refs/heads/master
Commit: 25eb001265a304484dee109a5f78248ae7da462e
Parents: 561fad6
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:06:20 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:06:20 2018 -0600

----------------------------------------------------------------------
 .../log4j/chainsaw/AbstractPreferencePanel.java |   14 +-
 .../ApplicationPreferenceModelPanel.java        |  350 ++----
 .../apache/log4j/chainsaw/ChainsawAbout.java    |   36 +-
 .../ChainsawCyclicBufferTableModel.java         |  194 ++-
 .../log4j/chainsaw/ChainsawStatusBar.java       |   90 +-
 .../log4j/chainsaw/ChainsawTabbedPane.java      |    6 +-
 .../log4j/chainsaw/ChainsawToolBarAndMenus.java |   44 +-
 .../apache/log4j/chainsaw/FileLoadAction.java   |   20 +-
 .../org/apache/log4j/chainsaw/FileMenu.java     |    9 +-
 .../org/apache/log4j/chainsaw/JSortTable.java   |   34 +-
 .../org/apache/log4j/chainsaw/LogPanel.java     | 1175 ++++++++----------
 .../log4j/chainsaw/LogPanelLoggerTreeModel.java |   12 +-
 .../log4j/chainsaw/LogPanelPreferencePanel.java |  388 ++----
 .../java/org/apache/log4j/chainsaw/LogUI.java   |  915 ++++++--------
 .../log4j/chainsaw/LoggerNameTreePanel.java     |  187 ++-
 .../apache/log4j/chainsaw/ProgressPanel.java    |   12 +-
 .../chainsaw/ReceiverConfigurationPanel.java    |   42 +-
 .../apache/log4j/chainsaw/ThresholdSlider.java  |   22 +-
 .../org/apache/log4j/chainsaw/WelcomePanel.java |   50 +-
 .../apache/log4j/chainsaw/color/ColorPanel.java |  116 +-
 .../log4j/chainsaw/layout/LayoutEditorPane.java |    6 +-
 .../log4j/chainsaw/messages/MessageCenter.java  |   10 +-
 .../plugins/PluginClassLoaderFactory.java       |    6 +-
 .../receivers/NewReceiverDialogPanel.java       |   13 +-
 .../receivers/PluginPropertyEditorPanel.java    |   52 +-
 .../chainsaw/receivers/ReceiversPanel.java      |  154 ++-
 .../chainsaw/receivers/ReceiversTreeModel.java  |   13 +-
 .../chainsaw/vfs/VFSLogFilePatternReceiver.java |  119 +-
 .../log4j/chainsaw/zeroconf/ZeroConfPlugin.java |   33 +-
 .../apache/log4j/xml/LogFileXMLReceiver.java    |   72 +-
 30 files changed, 1721 insertions(+), 2473 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
index a22ad3e..daceffe 100644
--- a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
@@ -123,14 +123,12 @@ public abstract class AbstractPreferencePanel extends JPanel
       TreeSelectionModel.SINGLE_TREE_SELECTION);
     prefTree.setSelectionModel(treeSelectionModel);
     prefTree.addTreeSelectionListener(
-      new TreeSelectionListener() {
-        public void valueChanged(TreeSelectionEvent e) {
-          TreePath path = e.getNewLeadSelectionPath();
-          DefaultMutableTreeNode node =
-            (DefaultMutableTreeNode) path.getLastPathComponent();
-          setDisplayedPrefPanel((JComponent) node.getUserObject());
-        }
-      });
+            e -> {
+              TreePath path = e.getNewLeadSelectionPath();
+              DefaultMutableTreeNode node =
+                (DefaultMutableTreeNode) path.getLastPathComponent();
+              setDisplayedPrefPanel((JComponent) node.getUserObject());
+            });
   
     // ensure the first pref panel is selected and displayed
     DefaultMutableTreeNode root =

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
index a6c1d23..7f36aaa 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
@@ -84,35 +84,31 @@ public class ApplicationPreferenceModelPanel extends AbstractPreferencePanel {
     logger = LogManager.getLogger(ApplicationPreferenceModelPanel.class);
     initComponents();
     getOkButton().addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          uncommittedPreferenceModel.setConfigurationURL((String)configurationURL.getSelectedItem());
-          uncommittedPreferenceModel.setIdentifierExpression(
-            identifierExpression.getText());
-            try {
-                int millis = Integer.parseInt(toolTipDisplayMillis.getText());
-                if (millis >= 0) {
-                    uncommittedPreferenceModel.setToolTipDisplayMillis(millis);
-                }
-            } catch (NumberFormatException nfe) {}
-            try {
-                int bufferSize = Integer.parseInt(cyclicBufferSize.getText());
-                if (bufferSize >= 0) {
-                    uncommittedPreferenceModel.setCyclicBufferSize(bufferSize);
-                }
-            } catch (NumberFormatException nfe) {}
-          committedPreferenceModel.apply(uncommittedPreferenceModel);
-          hidePanel();
-        }
-      });
+            e -> {
+              uncommittedPreferenceModel.setConfigurationURL((String)configurationURL.getSelectedItem());
+              uncommittedPreferenceModel.setIdentifierExpression(
+                identifierExpression.getText());
+                try {
+                    int millis = Integer.parseInt(toolTipDisplayMillis.getText());
+                    if (millis >= 0) {
+                        uncommittedPreferenceModel.setToolTipDisplayMillis(millis);
+                    }
+                } catch (NumberFormatException nfe) {}
+                try {
+                    int bufferSize = Integer.parseInt(cyclicBufferSize.getText());
+                    if (bufferSize >= 0) {
+                        uncommittedPreferenceModel.setCyclicBufferSize(bufferSize);
+                    }
+                } catch (NumberFormatException nfe) {}
+              committedPreferenceModel.apply(uncommittedPreferenceModel);
+              hidePanel();
+            });
 
     getCancelButton().addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          uncommittedPreferenceModel.apply(committedPreferenceModel);
-          hidePanel();
-        }
-      });
+            e -> {
+              uncommittedPreferenceModel.apply(committedPreferenceModel);
+              hidePanel();
+            });
   }
 
 
@@ -125,11 +121,7 @@ public static void main(String[] args) {
 
     model.addPropertyChangeListener(System.out::println);
     panel.setOkCancelActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          System.exit(1);
-        }
-      });
+            e -> System.exit(1));
 
     f.setSize(640, 480);
     f.setVisible(true);
@@ -205,94 +197,58 @@ public static void main(String[] args) {
      */
     private void setupListeners() {
       topPlacement.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setTabPlacement(SwingConstants.TOP);
-          }
-        });
+              e -> uncommittedPreferenceModel.setTabPlacement(SwingConstants.TOP));
       bottomPlacement.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setTabPlacement(SwingConstants.BOTTOM);
-          }
-        });
+              e -> uncommittedPreferenceModel.setTabPlacement(SwingConstants.BOTTOM));
 
       statusBar.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setStatusBar(statusBar.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setStatusBar(statusBar.isSelected()));
 
       toolBar.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setToolbar(toolBar.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setToolbar(toolBar.isSelected()));
 
       receivers.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setReceivers(receivers.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setReceivers(receivers.isSelected()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "tabPlacement",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            int value = (Integer) evt.getNewValue();
+              evt -> {
+                int value = (Integer) evt.getNewValue();
 
-            configureTabPlacement(value);
-          }
-        });
+                configureTabPlacement(value);
+              });
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "statusBar",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            statusBar.setSelected(
-                    (Boolean) evt.getNewValue());
-          }
-        });
+              evt -> statusBar.setSelected(
+                      (Boolean) evt.getNewValue()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "toolbar",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            toolBar.setSelected((Boolean) evt.getNewValue());
-          }
-        });
+              evt -> toolBar.setSelected((Boolean) evt.getNewValue()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "receivers",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            receivers.setSelected(
-                    (Boolean) evt.getNewValue());
-          }
-        });
+              evt -> receivers.setSelected(
+                      (Boolean) evt.getNewValue()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "lookAndFeelClassName",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            String lf = evt.getNewValue().toString();
+              evt -> {
+                String lf = evt.getNewValue().toString();
 
-            Enumeration enumeration = lookAndFeelGroup.getElements();
+                Enumeration enumeration = lookAndFeelGroup.getElements();
 
-            while (enumeration.hasMoreElements()) {
-              JRadioButton button = (JRadioButton) enumeration.nextElement();
+                while (enumeration.hasMoreElements()) {
+                  JRadioButton button = (JRadioButton) enumeration.nextElement();
 
-              if (button.getName()!=null && button.getName().equals(lf)) {
-                button.setSelected(true);
+                  if (button.getName()!=null && button.getName().equals(lf)) {
+                    button.setSelected(true);
 
-                break;
-              }
-            }
-          }
-        });
+                    break;
+                  }
+                }
+              });
     }
 
     /**
@@ -336,12 +292,8 @@ public static void main(String[] args) {
             final JRadioButton lfItem = new JRadioButton(" " + lfInfo.getName() + " ");
             lfItem.setName(lfInfo.getClassName());
             lfItem.addActionListener(
-                    new ActionListener() {
-                        public void actionPerformed(ActionEvent e) {
-                            uncommittedPreferenceModel.setLookAndFeelClassName(
-                                    lfInfo.getClassName());
-                        }
-                    });
+                    e -> uncommittedPreferenceModel.setLookAndFeelClassName(
+                            lfInfo.getClassName()));
             lookAndFeelGroup.add(lfItem);
             lfPanel.add(lfItem);
         }
@@ -351,12 +303,8 @@ public static void main(String[] args) {
           Class.forName("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
         final JRadioButton lfIGTK = new JRadioButton(" GTK+ 2.0 ");
         lfIGTK.addActionListener(
-          new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-              uncommittedPreferenceModel.setLookAndFeelClassName(
-                gtkLF.getName());
-            }
-          });
+                e -> uncommittedPreferenceModel.setLookAndFeelClassName(
+                  gtkLF.getName()));
         lookAndFeelGroup.add(lfIGTK);
         lfPanel.add(lfIGTK);
       } catch (Exception e) {
@@ -500,13 +448,7 @@ public static void main(String[] args) {
       p6.add(configURLPanel);
 
       JButton browseButton = new JButton(" Open File... ");
-      browseButton.addActionListener(new ActionListener()
-      {
-          public void actionPerformed(ActionEvent e)
-          {
-              browseForConfiguration();
-          }
-      });
+      browseButton.addActionListener(e -> browseForConfiguration());
       Box browsePanel = new Box(BoxLayout.X_AXIS);
       browsePanel.add(Box.createHorizontalGlue());
       browsePanel.add(browseButton);
@@ -584,147 +526,105 @@ public static void main(String[] args) {
     private void setupListeners() {
       uncommittedPreferenceModel.addPropertyChangeListener(
         "showNoReceiverWarning",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            showNoReceiverWarning.setSelected(
-                    (Boolean) evt.getNewValue());
-          }
-        });
+              evt -> showNoReceiverWarning.setSelected(
+                      (Boolean) evt.getNewValue()));
       
-      uncommittedPreferenceModel.addPropertyChangeListener("showSplash", new PropertyChangeListener() {
-
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          showSplash.setSelected(value);
-        }});
+      uncommittedPreferenceModel.addPropertyChangeListener("showSplash", evt -> {
+        boolean value = (Boolean) evt.getNewValue();
+        showSplash.setSelected(value);
+      });
       
-      uncommittedPreferenceModel.addPropertyChangeListener("okToRemoveSecurityManager", new PropertyChangeListener() {
-
-		public void propertyChange(PropertyChangeEvent evt) {
-            boolean newValue = (Boolean) evt.getNewValue();
-            if(newValue) {
-            okToRemoveSecurityManager.setSelected(newValue);
-            }else {
-                okToRemoveSecurityManager.setSelected(false);
-            }
-            
-		}});
+      uncommittedPreferenceModel.addPropertyChangeListener("okToRemoveSecurityManager", evt -> {
+boolean newValue = (Boolean) evt.getNewValue();
+if(newValue) {
+okToRemoveSecurityManager.setSelected(newValue);
+}else {
+okToRemoveSecurityManager.setSelected(false);
+}
+
+      });
       
       
       uncommittedPreferenceModel.addPropertyChangeListener(
         "identifierExpression",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            identifierExpression.setText(evt.getNewValue().toString());
-          }
-        });
+              evt -> identifierExpression.setText(evt.getNewValue().toString()));
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "responsiveness",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            int value = (Integer) evt.getNewValue();
-
-            if (value >= 1000) {
-              int newValue = (value - 750) / 1000;
-              logger.debug(
-                "Adjusting old Responsiveness value from " + value + " to "
-                + newValue);
-              value = newValue;
-            }
+              evt -> {
+                int value = (Integer) evt.getNewValue();
+
+                if (value >= 1000) {
+                  int newValue = (value - 750) / 1000;
+                  logger.debug(
+                    "Adjusting old Responsiveness value from " + value + " to "
+                    + newValue);
+                  value = newValue;
+                }
 
-            responsiveSlider.setValue(value);
-          }
-        });
+                responsiveSlider.setValue(value);
+              });
 
         uncommittedPreferenceModel.addPropertyChangeListener(
           "toolTipDisplayMillis",
-          new PropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent evt) {
-              toolTipDisplayMillis.setText(evt.getNewValue().toString());
-            }
-          });
+                evt -> toolTipDisplayMillis.setText(evt.getNewValue().toString()));
 
         uncommittedPreferenceModel.addPropertyChangeListener(
           "cyclicBufferSize",
-          new PropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent evt) {
-              cyclicBufferSize.setText(evt.getNewValue().toString());
-            }
-          });
+                evt -> cyclicBufferSize.setText(evt.getNewValue().toString()));
 
       showNoReceiverWarning.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setShowNoReceiverWarning(
-              showNoReceiverWarning.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setShowNoReceiverWarning(
+                showNoReceiverWarning.isSelected()));
 
-      showSplash.addActionListener(new ActionListener() {
-
-        public void actionPerformed(ActionEvent e) {
-          uncommittedPreferenceModel.setShowSplash(showSplash.isSelected());
-        }});
+      showSplash.addActionListener(e -> uncommittedPreferenceModel.setShowSplash(showSplash.isSelected()));
       
-      okToRemoveSecurityManager.addActionListener(new ActionListener() {
-
-        public void actionPerformed(ActionEvent e) {
-            
-          if(okToRemoveSecurityManager.isSelected() && JOptionPane.showConfirmDialog(okToRemoveSecurityManager, "By ticking this option, you are authorizing Chainsaw to remove Java's Security Manager.\n\n" +
-                    "This is required under Java Web Start so that it can access Jars/classes locally.  Without this, Receivers like JMSReceiver + DBReceiver that require" +
-                    " specific driver jars will NOT be able to be run.  \n\n" +
-                    "By ticking this, you are saying that this is ok.", "Please Confirm", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
-          	uncommittedPreferenceModel.setOkToRemoveSecurityManager(true);
-          }else {
-            uncommittedPreferenceModel.setOkToRemoveSecurityManager(false);
-          }
-                
-        }});
+      okToRemoveSecurityManager.addActionListener(e -> {
+
+        if(okToRemoveSecurityManager.isSelected() && JOptionPane.showConfirmDialog(okToRemoveSecurityManager, "By ticking this option, you are authorizing Chainsaw to remove Java's Security Manager.\n\n" +
+                  "This is required under Java Web Start so that it can access Jars/classes locally.  Without this, Receivers like JMSReceiver + DBReceiver that require" +
+                  " specific driver jars will NOT be able to be run.  \n\n" +
+                  "By ticking this, you are saying that this is ok.", "Please Confirm", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+            uncommittedPreferenceModel.setOkToRemoveSecurityManager(true);
+        }else {
+          uncommittedPreferenceModel.setOkToRemoveSecurityManager(false);
+        }
+
+      });
       
       
       responsiveSlider.getModel().addChangeListener(
-        new ChangeListener() {
-          public void stateChanged(ChangeEvent e) {
-            if (responsiveSlider.getValueIsAdjusting()) {
-              /**
-               * We'll wait until it stops.
-               */
-            } else {
-              int value = responsiveSlider.getValue();
-
-              if (value == 0) {
-                value = 1;
-              }
+              e -> {
+                if (responsiveSlider.getValueIsAdjusting()) {
+                  /**
+                   * We'll wait until it stops.
+                   */
+                } else {
+                  int value = responsiveSlider.getValue();
+
+                  if (value == 0) {
+                    value = 1;
+                  }
 
-              logger.debug("Adjust responsiveness to " + value);
-              uncommittedPreferenceModel.setResponsiveness(value);
-            }
-          }
-        });
+                  logger.debug("Adjust responsiveness to " + value);
+                  uncommittedPreferenceModel.setResponsiveness(value);
+                }
+              });
 
       uncommittedPreferenceModel.addPropertyChangeListener(
         "confirmExit",
-        new PropertyChangeListener() {
-          public void propertyChange(PropertyChangeEvent evt) {
-            boolean value = (Boolean) evt.getNewValue();
-            confirmExit.setSelected(value);
-          }
-        });
-
-      uncommittedPreferenceModel.addPropertyChangeListener("configurationURL", new PropertyChangeListener() {
-
-          public void propertyChange(PropertyChangeEvent evt) {
-            String value = evt.getNewValue().toString();
-            configurationURL.setSelectedItem(value);
-          }});
+              evt -> {
+                boolean value = (Boolean) evt.getNewValue();
+                confirmExit.setSelected(value);
+              });
+
+      uncommittedPreferenceModel.addPropertyChangeListener("configurationURL", evt -> {
+        String value = evt.getNewValue().toString();
+        configurationURL.setSelectedItem(value);
+      });
       confirmExit.addActionListener(
-        new ActionListener() {
-          public void actionPerformed(ActionEvent e) {
-            uncommittedPreferenceModel.setConfirmExit(
-              confirmExit.isSelected());
-          }
-        });
+              e -> uncommittedPreferenceModel.setConfirmExit(
+                confirmExit.isSelected()));
     }
 
     private void setupInitialValues() {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
index 83e93c7..a5daa90 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawAbout.java
@@ -64,11 +64,7 @@ class ChainsawAbout extends JDialog {
         getContentPane().setLayout(new BorderLayout());
 
         JButton closeButton = new JButton(" Close ");
-        closeButton.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                setVisible(false);
-            }
-        });
+        closeButton.addActionListener(e -> setVisible(false));
         closeButton.setDefaultCapable(true);
 
         try {
@@ -82,13 +78,11 @@ class ChainsawAbout extends JDialog {
 
         editPane.setEditable(false);
         editPane.addHyperlinkListener(
-                new HyperlinkListener() {
-                    public void hyperlinkUpdate(HyperlinkEvent e) {
-                      if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
-                          HelpManager.getInstance().setHelpURL(e.getURL());
-                      }
-                    }
-                  });
+                e -> {
+                  if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
+                      HelpManager.getInstance().setHelpURL(e.getURL());
+                  }
+                });
         
         setSize(320, 240);
         new Thread(new Scroller()).start();
@@ -106,21 +100,13 @@ class ChainsawAbout extends JDialog {
                         synchronized (guard) {
                             guard.wait();
                         }
-                            SwingUtilities.invokeLater(new Runnable() {
-                                public void run() {
-                                    scrollPane.getViewport().setViewPosition(
-                                            new Point(0, 0));
-                                }
-                            });
+                            SwingUtilities.invokeLater(() -> scrollPane.getViewport().setViewPosition(
+                                    new Point(0, 0)));
                         continue;
                     }
-                    SwingUtilities.invokeLater(new Runnable() {
-                        public void run() {
-                            scrollPane.getViewport().setViewPosition(
-                                    new Point(0, scrollPane.getViewport()
-                                            .getViewPosition().y + 1));
-                        }
-                    });
+                    SwingUtilities.invokeLater(() -> scrollPane.getViewport().setViewPosition(
+                            new Point(0, scrollPane.getViewport()
+                                    .getViewPosition().y + 1)));
                     Thread.sleep(100);
                 } catch (Exception e) {
                     LOG.error("Error during scrolling", e);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
index 9b513e2..c15a2e8 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
@@ -170,36 +170,31 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
             }
             newSize = filteredList.size();
           }
-      	SwingHelper.invokeOnEDT(new Runnable() {
-      		public void run() {
-      			if (newSize > 0) {
-	      			if (previousSize == newSize) {
-	      				//same - update all
-	      				fireTableRowsUpdated(0, newSize - 1);
-	      			} else if (previousSize > newSize) {
-	      				//less now..update and delete difference
-	      				fireTableRowsUpdated(0, newSize - 1);
-                        //swing bug exposed by variable height rows when calling fireTableRowsDeleted..use tabledatacchanged
-                        fireTableDataChanged();
-	      			} else if (previousSize < newSize) {
-	      				//more now..update and insert difference
-                        if (previousSize > 0) {
-	      				    fireTableRowsUpdated(0, previousSize - 1);
-                        }
-	      				fireTableRowsInserted(Math.max(0, previousSize), newSize - 1);
-	      			}
-      			} else {
-      				//no rows to show
-      				fireTableDataChanged();
-      			}
-	      	notifyCountListeners();
-            //post refilter with newValue of FALSE (filtering is complete)
-            SwingHelper.invokeOnEDT(new Runnable() {
-                public void run() {
-                    propertySupport.firePropertyChange("refilter", Boolean.TRUE, Boolean.FALSE);
-                }
-            });
-      	}});
+      	SwingHelper.invokeOnEDT(() -> {
+              if (newSize > 0) {
+                  if (previousSize == newSize) {
+                      //same - update all
+                      fireTableRowsUpdated(0, newSize - 1);
+                  } else if (previousSize > newSize) {
+                      //less now..update and delete difference
+                      fireTableRowsUpdated(0, newSize - 1);
+//swing bug exposed by variable height rows when calling fireTableRowsDeleted..use tabledatacchanged
+fireTableDataChanged();
+                  } else if (previousSize < newSize) {
+                      //more now..update and insert difference
+if (previousSize > 0) {
+                          fireTableRowsUpdated(0, previousSize - 1);
+}
+                      fireTableRowsInserted(Math.max(0, previousSize), newSize - 1);
+                  }
+              } else {
+                  //no rows to show
+                  fireTableDataChanged();
+              }
+          notifyCountListeners();
+//post refilter with newValue of FALSE (filtering is complete)
+SwingHelper.invokeOnEDT(() -> propertySupport.firePropertyChange("refilter", Boolean.TRUE, Boolean.FALSE));
+      });
   }
 
   public int locate(Rule rule, int startLocation, boolean searchForward) {
@@ -342,11 +337,7 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
         }
       }
       if (sort) {
-        SwingHelper.invokeOnEDT(new Runnable() {
-            public void run() {
-                fireTableRowsUpdated(0, Math.max(filteredListSize - 1, 0));
-            }
-        });
+        SwingHelper.invokeOnEDT(() -> fireTableRowsUpdated(0, Math.max(filteredListSize - 1, 0)));
       }
   }
 
@@ -698,27 +689,26 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
    }
 
   public void fireTableEvent(final int begin, final int end, final int count) {
-  	SwingHelper.invokeOnEDT(new Runnable() {
-  		public void run() {
-    if (cyclic) {
-      if (!reachedCapacity) {
-        //if we didn't loop and it's the 1st time, insert
-        if ((begin + count) < cyclicBufferSize) {
-          fireTableRowsInserted(begin, end);
-        } else {
-          //we did loop - insert and then update rows
-          //rows are zero-indexed, subtract 1 from cyclicbuffersize for the event notification
-          fireTableRowsInserted(begin, cyclicBufferSize - 1);
-          fireTableRowsUpdated(0, cyclicBufferSize - 1);
-          reachedCapacity = true;
-        }
-      } else {
-        fireTableRowsUpdated(0, cyclicBufferSize - 1);
-      }
-    } else {
-      fireTableRowsInserted(begin, end);
-    }
-  }});
+  	SwingHelper.invokeOnEDT(() -> {
+if (cyclic) {
+if (!reachedCapacity) {
+//if we didn't loop and it's the 1st time, insert
+if ((begin + count) < cyclicBufferSize) {
+fireTableRowsInserted(begin, end);
+} else {
+//we did loop - insert and then update rows
+//rows are zero-indexed, subtract 1 from cyclicbuffersize for the event notification
+fireTableRowsInserted(begin, cyclicBufferSize - 1);
+fireTableRowsUpdated(0, cyclicBufferSize - 1);
+reachedCapacity = true;
+}
+} else {
+fireTableRowsUpdated(0, cyclicBufferSize - 1);
+}
+} else {
+fireTableRowsInserted(begin, end);
+}
+});
   }
 
     public void fireRowUpdated(int row, boolean checkForNewColumns) {
@@ -831,58 +821,56 @@ class ChainsawCyclicBufferTableModel extends AbstractTableModel
     public void propertyChange(PropertyChangeEvent arg0) {
       Thread thread =
         new Thread(
-          new Runnable() {
-            public void run() {
-              ProgressMonitor monitor = null;
-
-              int index = 0;
-
-              try {
-                synchronized (mutex) {
-                  monitor =
-                    new ProgressMonitor(
-                      null, "Switching models...",
-                      "Transferring between data structures, please wait...", 0,
-                      unfilteredList.size() + 1);
-                  monitor.setMillisToDecideToPopup(250);
-                  monitor.setMillisToPopup(100);
-                  logger.debug(
-                    "Changing Model, isCyclic is now " + cyclic);
-
-                  List newUnfilteredList = null;
-                  List newFilteredList = null;
-
-                  if (cyclic) {
-                    newUnfilteredList = new CyclicBufferList(cyclicBufferSize);
-                    newFilteredList = new CyclicBufferList(cyclicBufferSize);
-                  } else {
-                    newUnfilteredList = new ArrayList(cyclicBufferSize);
-                    newFilteredList = new ArrayList(cyclicBufferSize);
-                  }
-
-                  int increment = 0;
+                () -> {
+                  ProgressMonitor monitor = null;
+
+                  int index = 0;
+
+                  try {
+                    synchronized (mutex) {
+                      monitor =
+                        new ProgressMonitor(
+                          null, "Switching models...",
+                          "Transferring between data structures, please wait...", 0,
+                          unfilteredList.size() + 1);
+                      monitor.setMillisToDecideToPopup(250);
+                      monitor.setMillisToPopup(100);
+                      logger.debug(
+                        "Changing Model, isCyclic is now " + cyclic);
+
+                      List newUnfilteredList = null;
+                      List newFilteredList = null;
+
+                      if (cyclic) {
+                        newUnfilteredList = new CyclicBufferList(cyclicBufferSize);
+                        newFilteredList = new CyclicBufferList(cyclicBufferSize);
+                      } else {
+                        newUnfilteredList = new ArrayList(cyclicBufferSize);
+                        newFilteredList = new ArrayList(cyclicBufferSize);
+                      }
+
+                      int increment = 0;
+
+                        for (Object anUnfilteredList : unfilteredList) {
+                            LoggingEventWrapper loggingEventWrapper = (LoggingEventWrapper) anUnfilteredList;
+                            newUnfilteredList.add(loggingEventWrapper);
+                            monitor.setProgress(index++);
+                        }
 
-                    for (Object anUnfilteredList : unfilteredList) {
-                        LoggingEventWrapper loggingEventWrapper = (LoggingEventWrapper) anUnfilteredList;
-                        newUnfilteredList.add(loggingEventWrapper);
-                        monitor.setProgress(index++);
+                      unfilteredList = newUnfilteredList;
+                      filteredList = newFilteredList;
                     }
 
-                  unfilteredList = newUnfilteredList;
-                  filteredList = newFilteredList;
-                }
-
-                monitor.setNote("Refiltering...");
-                reFilter();
+                    monitor.setNote("Refiltering...");
+                    reFilter();
 
-                monitor.setProgress(index++);
-              } finally {
-                monitor.close();
-              }
+                    monitor.setProgress(index++);
+                  } finally {
+                    monitor.close();
+                  }
 
-              logger.debug("Model Change completed");
-            }
-          });
+                  logger.debug("Model Change completed");
+                });
       thread.setPriority(Thread.MIN_PRIORITY + 1);
       thread.start();
     }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
index d818bfd..df536c4 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
@@ -185,41 +185,31 @@ public class ChainsawStatusBar extends JPanel {
 
     connectionThread =
       new Thread(
-        new Runnable() {
-          public void run() {
-            while (true) {
-              try {
-                Thread.sleep(DELAY_PERIOD);
-              } catch (InterruptedException e) {
-              }
-
-              Icon icon = null;
-
-              if (
-                (System.currentTimeMillis() - lastReceivedConnection) < DELAY_PERIOD) {
-                icon = netConnectIcon;
-              }
-
-              final Icon theIcon = icon;
-              SwingUtilities.invokeLater(
-                new Runnable() {
-                  public void run() {
-                    receivedConnectionlabel.setIcon(theIcon);
+              () -> {
+                while (true) {
+                  try {
+                    Thread.sleep(DELAY_PERIOD);
+                  } catch (InterruptedException e) {
                   }
-                });
-            }
-          }
-        });
+
+                  Icon icon = null;
+
+                  if (
+                    (System.currentTimeMillis() - lastReceivedConnection) < DELAY_PERIOD) {
+                    icon = netConnectIcon;
+                  }
+
+                  final Icon theIcon = icon;
+                  SwingUtilities.invokeLater(
+                          () -> receivedConnectionlabel.setIcon(theIcon));
+                }
+              });
     connectionThread.start();
   }
 
   void setDataRate(final double dataRate) {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          receivedEventLabel.setText(nf.format(dataRate) + "/s");
-        }
-      });
+            () -> receivedEventLabel.setText(nf.format(dataRate) + "/s"));
   }
 
   /**
@@ -243,14 +233,12 @@ public class ChainsawStatusBar extends JPanel {
   void setPaused(final boolean isPaused, String tabName) {
     if (tabName.equals(logUI.getActiveTabName())) {
       Runnable runnable =
-        new Runnable() {
-          public void run() {
-              pausedLabel.setIcon(isPaused ? pausedIcon : null);
-              pausedLabel.setToolTipText(
-                isPaused ? "This Log panel is currently paused"
-                         : "This Log panel is not paused");
-          }
-      };
+              () -> {
+                  pausedLabel.setIcon(isPaused ? pausedIcon : null);
+                  pausedLabel.setToolTipText(
+                    isPaused ? "This Log panel is currently paused"
+                             : "This Log panel is not paused");
+              };
       SwingUtilities.invokeLater(runnable);
     }
   }
@@ -259,12 +247,10 @@ public class ChainsawStatusBar extends JPanel {
           final int selectedLine, final int lineCount, final int total, String tabName) {
     if (tabName.equals(logUI.getActiveTabName())) {
         SwingUtilities.invokeLater(
-          new Runnable() {
-            public void run() {
-              lineSelectionLabel.setText(selectedLine+"");
-              eventCountLabel.setText("Filtered/Total: " + lineCount + ":" + total);
-            }
-          });
+                () -> {
+                  lineSelectionLabel.setText(selectedLine+"");
+                  eventCountLabel.setText("Filtered/Total: " + lineCount + ":" + total);
+                });
     }
   }
 
@@ -280,30 +266,18 @@ public class ChainsawStatusBar extends JPanel {
 
   void setNothingSelected() {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          lineSelectionLabel.setText("");
-        }
-      });
+            () -> lineSelectionLabel.setText(""));
   }
 
   void clear() {
     setMessage(DEFAULT_MSG);
     setNothingSelected();
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          receivedEventLabel.setText("");
-        }
-      });
+            () -> receivedEventLabel.setText(""));
   }
 
   public void setMessage(final String msg) {
     SwingUtilities.invokeLater(
-      new Runnable() {
-        public void run() {
-          statusMsg.setText(" " + msg);
-        }
-      });
+            () -> statusMsg.setText(" " + msg));
   }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
index 83b9a3f..48796a7 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawTabbedPane.java
@@ -99,11 +99,7 @@ class ChainsawTabbedPane extends JTabbedPane implements SettingsListener {
 
     super.fireStateChanged();
     if (!"chainsaw-log".equals(name)) {
-        EventQueue.invokeLater(new Runnable() {
-            public void run() {
-                setSelectedTab(getTabCount() - 1);
-            }
-        });
+        EventQueue.invokeLater(() -> setSelectedTab(getTabCount() - 1));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
index e40df4e..c9df7e2 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
@@ -159,22 +159,18 @@ class ChainsawToolBarAndMenus implements ChangeListener {
 
     logui.getApplicationPreferenceModel().addPropertyChangeListener(
       "statusBar",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          toggleStatusBarCheck.setSelected(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              toggleStatusBarCheck.setSelected(value);
+            });
 
     logui.getApplicationPreferenceModel().addPropertyChangeListener(
       "receivers",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          showReceiversButton.setSelected(value);
-          toggleShowReceiversCheck.setSelected(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              showReceiversButton.setSelected(value);
+              toggleShowReceiversCheck.setSelected(value);
+            });
   }
 
   /**
@@ -423,12 +419,10 @@ class ChainsawToolBarAndMenus implements ChangeListener {
 
     logui.getApplicationPreferenceModel().addPropertyChangeListener(
       "toolbar",
-      new PropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent evt) {
-          boolean value = (Boolean) evt.getNewValue();
-          showToolbarCheck.setSelected(value);
-        }
-      });
+            evt -> {
+              boolean value = (Boolean) evt.getNewValue();
+              showToolbarCheck.setSelected(value);
+            });
 
     menuShowWelcome.setAction(toggleWelcomeVisibleAction);
 
@@ -452,11 +446,7 @@ class ChainsawToolBarAndMenus implements ChangeListener {
       new JMenuItem("Show Application-wide Preferences...");
 
     showAppPrefs.addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          logui.showApplicationPreferences();
-        }
-      });
+            e -> logui.showApplicationPreferences());
 
     toggleDetailMenuItem.setAction(toggleDetailPaneAction);
     toggleDetailMenuItem.setSelected(true);
@@ -530,11 +520,7 @@ class ChainsawToolBarAndMenus implements ChangeListener {
     JMenuItem about = new JMenuItem("About Chainsaw v2...");
     about.setMnemonic('A');
     about.addActionListener(
-      new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          logui.showAboutBox();
-        }
-      });
+            e -> logui.showAboutBox());
 
     Action startTutorial =
       new AbstractAction("Tutorial...", new ImageIcon(ChainsawIcons.HELP)) {

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java b/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
index 490d238..bcf1da3 100644
--- a/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
+++ b/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
@@ -123,19 +123,17 @@ class FileLoadAction extends AbstractAction {
         decoder.setAdditionalProperties(additionalProperties);
 
         final URL urlToUse = url;
-        new Thread(new Runnable() {
-            public void run() {
-                try {
-                    Vector events = decoder.decode(urlToUse);
-                    for (Object event : events) {
-                        handler.append((LoggingEvent) event);
-                    }
-                } catch (IOException e1) {
-                    // TODO Handle the error with a nice msg
-                    LOG.error(e1);
+        new Thread(() -> {
+            try {
+                Vector events = decoder.decode(urlToUse);
+                for (Object event : events) {
+                    handler.append((LoggingEvent) event);
                 }
-                MRUFileList.log4jMRU().opened(urlToUse);
+            } catch (IOException e1) {
+                // TODO Handle the error with a nice msg
+                LOG.error(e1);
             }
+            MRUFileList.log4jMRU().opened(urlToUse);
         }).start();
     }
 }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/FileMenu.java b/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
index cd256e7..e3454e9 100644
--- a/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
+++ b/src/main/java/org/apache/log4j/chainsaw/FileMenu.java
@@ -133,14 +133,7 @@ class FileMenu extends JMenu {
     
   
     
-    MRUFileList.addChangeListener(new ChangeListener() {
-        
-        public void stateChanged(ChangeEvent e) {
-            
-            buildMRUMenu(mrulog4j, logUI);
-        }
-        
-    });
+    MRUFileList.addChangeListener(e -> buildMRUMenu(mrulog4j, logUI));
     buildMRUMenu(mrulog4j, logUI);
     
     add(mrulog4j);

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/25eb0012/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/JSortTable.java b/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
index 56f5152..601fc3b 100644
--- a/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
+++ b/src/main/java/org/apache/log4j/chainsaw/JSortTable.java
@@ -92,25 +92,23 @@ public class JSortTable extends JTable implements MouseListener {
 
   //Allow synchronous updates if already on the EDT
   private void scrollTo(final int row, final int col) {
-    SwingHelper.invokeOnEDT(new Runnable() {
-      public void run() {
-        final int currentRow = getSelectedRow();
-        if ((row > -1) && (row < getRowCount())) {
-          try {
-            //get the requested row off of the bottom and top of the screen by making the 5 rows around the requested row visible
-            //if new past current row, scroll to display the 20th row past new selected row
-            scrollRectToVisible(getCellRect(row, col, true));
-            if (row > currentRow) {
-                scrollRectToVisible(getCellRect(row + 5, col, true));
-            }
-            if (row < currentRow) {
-                scrollRectToVisible(getCellRect(row - 5, col, true));
-            }
-            scrollRectToVisible(getCellRect(row, col, true));
-            setRowSelectionInterval(row, row);
-          } catch (IllegalArgumentException iae) {
-            //ignore..out of bounds
+    SwingHelper.invokeOnEDT(() -> {
+      final int currentRow = getSelectedRow();
+      if ((row > -1) && (row < getRowCount())) {
+        try {
+          //get the requested row off of the bottom and top of the screen by making the 5 rows around the requested row visible
+          //if new past current row, scroll to display the 20th row past new selected row
+          scrollRectToVisible(getCellRect(row, col, true));
+          if (row > currentRow) {
+              scrollRectToVisible(getCellRect(row + 5, col, true));
           }
+          if (row < currentRow) {
+              scrollRectToVisible(getCellRect(row - 5, col, true));
+          }
+          scrollRectToVisible(getCellRect(row, col, true));
+          setRowSelectionInterval(row, row);
+        } catch (IllegalArgumentException iae) {
+          //ignore..out of bounds
         }
       }
     });