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);