/* * Copyright 2003,2004,2005 Colin Crist * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package hermes.browser.components; import hermes.swing.SwingAppender; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.SwingUtilities; import org.apache.log4j.Logger; /** * Viewer for log events. * @author colincrist@hermesjms.com * @version $Id: Log4JOutputViewer.java,v 1.1 2006/01/14 12:59:11 colincrist Exp $ */ public class Log4JOutputViewer extends JComponent { /** * */ private static final long serialVersionUID = 4667200695639877103L; private SwingAppender swingAppender ; public Log4JOutputViewer(String filter) { super(); swingAppender = new SwingAppender(filter) ; init(); } public void init() { JScrollPane tableSP = new JScrollPane(); setLayout(new BorderLayout()); add(tableSP, "Center"); tableSP.setViewportView(swingAppender.getComponent()); Logger.getRootLogger().addAppender(swingAppender); final JPopupMenu popupMenu = new JPopupMenu(); final JMenuItem clearItem = new JMenuItem("Clear"); final JMenuItem stopItem = new JMenuItem("Stop"); final JMenuItem startItem = new JMenuItem("Start"); popupMenu.add(stopItem) ; popupMenu.add(startItem) ; popupMenu.add(clearItem); MouseAdapter m = new MouseAdapter() { public void mousePressed(MouseEvent e) { if (SwingUtilities.isRightMouseButton(e)) { stopItem.setEnabled(swingAppender.isActive()) ; startItem.setEnabled(!swingAppender.isActive()) ; popupMenu.show(e.getComponent(), e.getX(), e.getY()); } } }; clearItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { swingAppender.clear() ; } }) ; stopItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { swingAppender.setActive(false) ; } }) ; startItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { swingAppender.setActive(true) ; } }) ; swingAppender.getComponent().addMouseListener(m) ; tableSP.addMouseListener(m) ; addMouseListener(m) ; } }