Class LogUI

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, Serializable, EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, ChainsawViewer, SettingsListener

    public class LogUI
    extends javax.swing.JFrame
    implements ChainsawViewer, SettingsListener
    The main entry point for Chainsaw, this class represents the first frame that is used to display a Welcome panel, and any other panels that are generated because Logging Events are streamed via a Receiver, or other mechanism.

    NOTE: Some of Chainsaw's application initialization should be performed prior to activating receivers and the logging framework used to perform self-logging.

    DELAY as much as possible the logging framework initialization process, currently initialized by the creation of a ChainsawAppenderHandler.

    Author:
    Scott Deboy <sdeboy@apache.org>, Paul Smith <psmith@apache.org>
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JFrame

        javax.swing.JFrame.AccessibleJFrame
      • Nested classes/interfaces inherited from class java.awt.Frame

        java.awt.Frame.AccessibleAWTFrame
      • Nested classes/interfaces inherited from class java.awt.Window

        java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      • Fields inherited from class javax.swing.JFrame

        accessibleContext, rootPane, rootPaneCheckingEnabled
      • Fields inherited from class java.awt.Frame

        CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
      • Fields inherited from class java.awt.Component

        BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
      • Fields inherited from interface javax.swing.WindowConstants

        DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
    • Constructor Summary

      Constructors 
      Constructor Description
      LogUI()
      Constructor which builds up all the visual elements of the frame including the Menu bar
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void activateViewer()
      Activates itself as a viewer by configuring Size, and location of itself, and configures the default Tabbed Pane elements with the correct layout, table columns, and sets itself viewable.
      void activateViewer​(ChainsawAppender appender)
      Allow Chainsaw v2 to be ran in-process (configured as a ChainsawAppender) NOTE: Closing Chainsaw will NOT stop the application generating the events.
      void addShutdownListener​(ShutdownListener l)
      Registers a ShutdownListener with this calss so that it can be notified when the user has requested that Chainsaw exit.
      static void createChainsawGUI​(ApplicationPreferenceModel model, javax.swing.Action newShutdownAction)
      Creates, activates, and then shows the Chainsaw GUI, optionally showing the splash screen, and using the passed shutdown action when the user requests to exit the application (if null, then Chainsaw will exit the vm)
      void createCustomExpressionLogPanel​(String ident)  
      boolean exit()
      Exits the application, ensuring Settings are saved.
      String getActiveTabName()
      DOCUMENT ME!
      ApplicationPreferenceModel getApplicationPreferenceModel()  
      List<String> getFilterableColumns()
      DOCUMENT ME!
      Map<String,​java.awt.Component> getPanelMap()
      DOCUMENT ME!
      SettingsManager getSettingsManager()
      DOCUMENT ME!
      org.apache.log4j.chainsaw.ChainsawTabbedPane getTabbedPane()
      DOCUMENT ME!
      Map getTableMap()
      DOCUMENT ME!
      Map getTableModelMap()
      DOCUMENT ME!
      org.apache.log4j.chainsaw.ChainsawToolBarAndMenus getToolBarAndMenus()
      DOCUMENT ME!
      boolean isLogTreePanelVisible()
      DOCUMENT ME!
      void loadSettings​(LoadSettingsEvent event)
      Given the load event, configures the size/location of the main window etc etc.
      static void main​(String[] args)
      Starts Chainsaw by attaching a new instance to the Log4J main root Logger via a ChainsawAppender, and activates itself
      void removeShutdownListener​(ShutdownListener l)
      Removes the registered ShutdownListener so that the listener will not be notified on a shutdown.
      void saveSettings​(SaveSettingsEvent event)
      Ensures the location/size of the main window is stored with the settings
      void setShutdownAction​(javax.swing.Action shutdownAction)
      Configures LogUI's with an action to execute when the user requests to exit the application, the default action is to exit the VM.
      void setTabbedPane​(org.apache.log4j.chainsaw.ChainsawTabbedPane tabbedPane)
      DOCUMENT ME!
      void setToolBarAndMenus​(org.apache.log4j.chainsaw.ChainsawToolBarAndMenus tbms)
      DOCUMENT ME!
      void setupTutorial()
      DOCUMENT ME!
      void showAboutBox()  
      void showApplicationPreferences()  
      void showHelp​(URL url)
      Causes the Welcome Panel to become visible, and shows the URL specified as it's contents
      void showReceiverConfiguration()  
      boolean shutdown()
      Shutsdown by ensuring the Appender gets a chance to close.
      • Methods inherited from class javax.swing.JFrame

        addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
      • Methods inherited from class java.awt.Frame

        addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from interface java.awt.MenuContainer

        getFont, postEvent
    • Constructor Detail

      • LogUI

        public LogUI()
        Constructor which builds up all the visual elements of the frame including the Menu bar
    • Method Detail

      • addShutdownListener

        public void addShutdownListener​(ShutdownListener l)
        Registers a ShutdownListener with this calss so that it can be notified when the user has requested that Chainsaw exit.
        Parameters:
        l -
      • removeShutdownListener

        public void removeShutdownListener​(ShutdownListener l)
        Removes the registered ShutdownListener so that the listener will not be notified on a shutdown.
        Parameters:
        l -
      • main

        public static void main​(String[] args)
        Starts Chainsaw by attaching a new instance to the Log4J main root Logger via a ChainsawAppender, and activates itself
        Parameters:
        args -
      • createChainsawGUI

        public static void createChainsawGUI​(ApplicationPreferenceModel model,
                                             javax.swing.Action newShutdownAction)
        Creates, activates, and then shows the Chainsaw GUI, optionally showing the splash screen, and using the passed shutdown action when the user requests to exit the application (if null, then Chainsaw will exit the vm)
        Parameters:
        model -
        newShutdownAction - DOCUMENT ME!
      • activateViewer

        public void activateViewer​(ChainsawAppender appender)
        Allow Chainsaw v2 to be ran in-process (configured as a ChainsawAppender) NOTE: Closing Chainsaw will NOT stop the application generating the events.
        Specified by:
        activateViewer in interface ChainsawViewer
        Parameters:
        appender -
      • loadSettings

        public void loadSettings​(LoadSettingsEvent event)
        Given the load event, configures the size/location of the main window etc etc.
        Specified by:
        loadSettings in interface SettingsListener
        Parameters:
        event - DOCUMENT ME!
      • saveSettings

        public void saveSettings​(SaveSettingsEvent event)
        Ensures the location/size of the main window is stored with the settings
        Specified by:
        saveSettings in interface SettingsListener
        Parameters:
        event - DOCUMENT ME!
      • activateViewer

        public void activateViewer()
        Activates itself as a viewer by configuring Size, and location of itself, and configures the default Tabbed Pane elements with the correct layout, table columns, and sets itself viewable.
      • exit

        public boolean exit()
        Exits the application, ensuring Settings are saved.
      • showApplicationPreferences

        public void showApplicationPreferences()
      • showReceiverConfiguration

        public void showReceiverConfiguration()
      • showAboutBox

        public void showAboutBox()
      • shutdown

        public boolean shutdown()
        Shutsdown by ensuring the Appender gets a chance to close.
      • setShutdownAction

        public final void setShutdownAction​(javax.swing.Action shutdownAction)
        Configures LogUI's with an action to execute when the user requests to exit the application, the default action is to exit the VM. This Action is called AFTER all the ShutdownListeners have been notified
        Parameters:
        shutdownAction -
      • getActiveTabName

        public String getActiveTabName()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • showHelp

        public void showHelp​(URL url)
        Causes the Welcome Panel to become visible, and shows the URL specified as it's contents
        Parameters:
        url - for content to show
      • isLogTreePanelVisible

        public boolean isLogTreePanelVisible()
        DOCUMENT ME!
        Returns:
        log tree panel visible flag
      • getPanelMap

        public Map<String,​java.awt.Component> getPanelMap()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • getSettingsManager

        public SettingsManager getSettingsManager()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • getFilterableColumns

        public List<String> getFilterableColumns()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • setToolBarAndMenus

        public void setToolBarAndMenus​(org.apache.log4j.chainsaw.ChainsawToolBarAndMenus tbms)
        DOCUMENT ME!
        Parameters:
        tbms - DOCUMENT ME!
      • getToolBarAndMenus

        public org.apache.log4j.chainsaw.ChainsawToolBarAndMenus getToolBarAndMenus()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • getTableMap

        public Map getTableMap()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • getTableModelMap

        public Map getTableModelMap()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • setTabbedPane

        public void setTabbedPane​(org.apache.log4j.chainsaw.ChainsawTabbedPane tabbedPane)
        DOCUMENT ME!
        Parameters:
        tabbedPane - DOCUMENT ME!
      • getTabbedPane

        public org.apache.log4j.chainsaw.ChainsawTabbedPane getTabbedPane()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • getApplicationPreferenceModel

        public final ApplicationPreferenceModel getApplicationPreferenceModel()
        Returns:
        Returns the applicationPreferenceModel.
      • setupTutorial

        public void setupTutorial()
        DOCUMENT ME!
      • createCustomExpressionLogPanel

        public void createCustomExpressionLogPanel​(String ident)