Package com.eviware.soapui.support.log

Source Code of com.eviware.soapui.support.log.InspectorLog4JMonitor

/*
*  soapUI, copyright (C) 2004-2011 eviware.com
*
*  soapUI is free software; you can redistribute it and/or modify it under the
*  terms of version 2.1 of the GNU Lesser General Public License as published by
*  the Free Software Foundation.
*
*  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
*  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*  See the GNU Lesser General Public License for more details at gnu.org.
*/

package com.eviware.soapui.support.log;

import java.awt.Component;
import java.util.List;

import javax.swing.JComponent;

import org.apache.log4j.spi.LoggingEvent;

import com.eviware.soapui.support.components.Inspector;
import com.eviware.soapui.support.components.JComponentInspector;
import com.eviware.soapui.support.components.JInspectorPanel;
import com.eviware.soapui.support.components.JInspectorPanelFactory;

/**
* JTabbedPane that displays Log4J output in different tabs
*
* @author Ole.Matzura
*/

public class InspectorLog4JMonitor implements JInspectorPanel, Log4JMonitor
{
  private JLogList defaultLogArea;
  private JInspectorPanel inspectorPanel;

  public InspectorLog4JMonitor( JComponent content )
  {
    inspectorPanel = JInspectorPanelFactory.build( content );

    setResizeWeight( 0.9F );
  }

  public JLogList addLogArea( String title, String loggerName, boolean isDefault )
  {
    JLogList logArea = new JLogList( title );
    logArea.addLogger( loggerName, !isDefault );
    JComponentInspector<JLogList> inspector = new JComponentInspector<JLogList>( logArea, title, null, true );
    addInspector( inspector );

    if( isDefault )
    {
      defaultLogArea = logArea;
      activate( inspector );
      setDividerLocation( 500 );
    }

    return logArea;
  }

  public void logEvent( Object msg )
  {
    if( msg instanceof LoggingEvent )
    {
      LoggingEvent event = ( LoggingEvent )msg;
      String loggerName = event.getLoggerName();

      for( Inspector inspector : inspectorPanel.getInspectors() )
      {
        Component tabComponent = inspector.getComponent();
        if( tabComponent instanceof JLogList )
        {
          JLogList logArea = ( JLogList )tabComponent;
          if( logArea.monitors( loggerName ) )
          {
            logArea.addLine( msg );
          }
        }
      }
    }
    else if( defaultLogArea != null )
    {
      defaultLogArea.addLine( msg );
    }
  }

  public JLogList getLogArea( String title )
  {
    Inspector inspector = inspectorPanel.getInspectorByTitle( title );
    return ( JLogList )( title == null ? null : inspector.getComponent() );
  }

  public boolean hasLogArea( String loggerName )
  {
    for( Inspector inspector : getInspectors() )
    {
      Component tabComponent = inspector.getComponent();
      if( tabComponent instanceof JLogList )
      {
        JLogList logArea = ( JLogList )tabComponent;
        if( logArea.monitors( loggerName ) )
        {
          return true;
        }
      }
    }

    return false;
  }

  public JComponent getComponent()
  {
    return inspectorPanel.getComponent();
  }

  public Inspector getCurrentInspector()
  {
    return inspectorPanel.getCurrentInspector();
  }

  public Inspector getInspectorByTitle( String title )
  {
    return inspectorPanel.getInspectorByTitle( title );
  }

  public List<Inspector> getInspectors()
  {
    return inspectorPanel.getInspectors();
  }

  public void setCurrentInspector( String s )
  {
    inspectorPanel.setCurrentInspector( s );
  }

  public void setDefaultDividerLocation( float v )
  {
    inspectorPanel.setDefaultDividerLocation( v );
  }

  public void setDividerLocation( int i )
  {
    inspectorPanel.setDividerLocation( i );
  }

  public void setResizeWeight( double v )
  {
    inspectorPanel.setResizeWeight( v );
  }

  public void setCurrentLog( JLogList lastLog )
  {
    for( Inspector inspector : getInspectors() )
    {
      Component tabComponent = inspector.getComponent();
      if( tabComponent == lastLog )
      {
        activate( inspector );
        return;
      }
    }

    inspectorPanel.deactivate();
  }

  public void activate( Inspector inspector )
  {
    inspectorPanel.activate( inspector );
  }

  public <T extends Inspector> T addInspector( T inspector )
  {
    return inspectorPanel.addInspector( inspector );
  }

  public void deactivate()
  {
    inspectorPanel.deactivate();
  }

  public void removeInspector( Inspector inspector )
  {
    inspectorPanel.removeInspector( inspector );
  }

  public JLogList getCurrentLog()
  {
    return ( JLogList )( inspectorPanel.getCurrentInspector() == null ? null : inspectorPanel.getCurrentInspector()
        .getComponent() );
  }

  public boolean removeLogArea( String loggerName )
  {
    for( Inspector inspector : getInspectors() )
    {
      JLogList logList = ( ( JLogList )( ( JComponentInspector<?> )inspector ).getComponent() );
      if( logList.getLogger( loggerName ) != null )
      {
        logList.removeLogger( loggerName );
        inspectorPanel.removeInspector( inspector );

        return true;
      }
    }

    return false;
  }

  public int getDividerLocation()
  {
    return inspectorPanel.getDividerLocation();
  }

  public void setContentComponent( JComponent component )
  {
    inspectorPanel.setContentComponent( component );
  }

  public void release()
  {
    inspectorPanel.release();
  }

  public void setResetDividerLocation()
  {
    inspectorPanel.setResetDividerLocation();
  }

  public void setInspectorVisible( Inspector inspector, boolean b )
  {
    inspectorPanel.setInspectorVisible( inspector, b );
  }

  public Inspector getInspector( String inspectorId )
  {
    return inspectorPanel.getInspector( inspectorId );
  }
}
TOP

Related Classes of com.eviware.soapui.support.log.InspectorLog4JMonitor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.