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    }