Package org.shiftone.jrat.provider.trace.ui

Source Code of org.shiftone.jrat.provider.trace.ui.TraceViewPanel

package org.shiftone.jrat.provider.trace.ui;

import ca.odell.glazedlists.BasicEventList;
import ca.odell.glazedlists.EventList;
import ca.odell.glazedlists.SortedList;
import ca.odell.glazedlists.swing.EventTableModel;
import ca.odell.glazedlists.swing.TableComparatorChooser;
import org.apache.log4j.Logger;
import org.shiftone.jrat.ui.util.NoOpComparator;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTree;
import javax.swing.SwingConstants;
import javax.swing.table.TableModel;
import java.awt.BorderLayout;
import java.util.Date;

/**
* @author Jeff Drost
* @version $Revision: 1.3 $
*/
public class TraceViewPanel extends JPanel implements SwingConstants {

  private static final Logger LOG = Logger.getLogger(TraceViewPanel.class);
  private JTree traceTree;
  private JLabel traceLabel;
  private JTable blackListTable;
  private JLabel blackListLabel;

  public TraceViewPanel(TraceModel traceModel) {

    EventList methodList = new BasicEventList();
    methodList.addAll(traceModel.getMethodKeyBlackList());
    SortedList sortedMethodList = new SortedList(methodList, NoOpComparator.INSTANCE);
    TableModel tableModel = new EventTableModel(sortedMethodList, new MethodKeyTableFormat());
    blackListTable = new JTable();
    blackListTable.setModel(tableModel);
    new TableComparatorChooser(blackListTable, sortedMethodList, true);
    JTabbedPane tabbedPane = new JTabbedPane(SwingConstants.BOTTOM, JTabbedPane.WRAP_TAB_LAYOUT);
    traceTree = new JTree(traceModel.getRootNode());
    traceTree.setCellRenderer(new TraceTreeCellRenderer());
    traceTree.setRootVisible(false);
    traceTree.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0));
    blackListLabel = new JLabel("These " + sortedMethodList.size() + " method(s) were filtered"
        + " from the traceTree results because" + " they were executed too many times");
    traceLabel = new JLabel("This traceTree was captured " + new Date(traceModel.getRunTime()) + ".");
    JPanel blackList = new JPanel();
    blackList.setLayout(new BorderLayout());
    blackList.add(blackListLabel, BorderLayout.NORTH);
    blackList.add(new JScrollPane(blackListTable), BorderLayout.CENTER);
    JPanel trace = new JPanel();
    trace.setLayout(new BorderLayout());
    trace.add(traceLabel, BorderLayout.NORTH);
    trace.add(new JScrollPane(traceTree), BorderLayout.CENTER);
    tabbedPane.add("Thread Trace", trace);
    tabbedPane.add("Excluded Method(s)", blackList);
    setLayout(new BorderLayout());
    add(tabbedPane, BorderLayout.CENTER);
  }
}
TOP

Related Classes of org.shiftone.jrat.provider.trace.ui.TraceViewPanel

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.