001 package org.shiftone.jrat.provider.tree.ui; 002 003 import org.shiftone.jrat.provider.tree.ui.hierarchy.HierarchyModelBuilder; 004 import org.shiftone.jrat.provider.tree.ui.hierarchy.HierarchyPanel; 005 import org.shiftone.jrat.provider.tree.ui.summary.MethodSummaryModel; 006 import org.shiftone.jrat.provider.tree.ui.summary.SummaryPanel; 007 import org.shiftone.jrat.provider.tree.ui.summary.SummaryTableModel; 008 import org.shiftone.jrat.provider.tree.ui.trace.TracePanel; 009 import org.shiftone.jrat.util.log.Logger; 010 011 import javax.swing.*; 012 import java.awt.*; 013 import java.util.Properties; 014 import java.util.Set; 015 016 /** 017 * @author jeff@shiftone.org (Jeff Drost) 018 */ 019 public class TraceViewPanel extends JPanel { 020 021 private static final Logger LOG = Logger.getLogger(TraceViewPanel.class); 022 private final JTabbedPane tabbedPane = new JTabbedPane(); 023 024 public TraceViewPanel( 025 TraceTreeNode node, 026 Set allMethodKeys, 027 long sessionStartMs, 028 long sessionEndMs, 029 Properties systemProperties, 030 String hostName, 031 String hostAddress) { 032 033 setLayout(new BorderLayout()); 034 035 //tabbedPane.setTabPlacement(JTabbedPane.BOTTOM); 036 037 add(tabbedPane, BorderLayout.CENTER); 038 039 long start = System.currentTimeMillis(); 040 041 MethodSummaryModel methodSummaryModel = new MethodSummaryModel(node); 042 043 { 044 SummaryTableModel summaryTableModel = new SummaryTableModel(methodSummaryModel); 045 tabbedPane.addTab("Summary", 046 new SummaryPanel(summaryTableModel, 047 methodSummaryModel.getTotalMethodDuration(), 048 sessionStartMs, sessionEndMs, 049 systemProperties, 050 hostName, hostAddress)); 051 } 052 { 053 tabbedPane.addTab("Trace", new TracePanel(node)); 054 } 055 { 056 HierarchyModelBuilder builder = new HierarchyModelBuilder(methodSummaryModel, allMethodKeys); 057 tabbedPane.addTab("Hierarchy", new HierarchyPanel(builder.getModel())); 058 } 059 060 LOG.info("loaded in " + (System.currentTimeMillis() - start) + " ms"); 061 062 } 063 064 065 }