private void create(java.util.List<LabelHistory> list) {
		tableModel = new LabelHistoryTableModel(list, showAddresses);

		// set up table sorter stuff
		//sorter.sortByColumn(tableModel.getDefaultSortColumn());

		historyTable = new GhidraTable(tableModel);
		JScrollPane sp = new JScrollPane(historyTable);

		Dimension d = new Dimension(showAddresses ? 600 : 520, 200);
		historyTable.setPreferredScrollableViewportSize(d);
		historyTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		add(sp, BorderLayout.CENTER);

		TableColumnModel columnModel = historyTable.getColumnModel();

		for (int i = 0; i < columnModel.getColumnCount(); i++) {
			TableColumn column = columnModel.getColumn(i);
			String name = (String) column.getIdentifier();
			if (name.equals(LabelHistoryTableModel.DATE)) {
				column.setCellRenderer(new GenericDateCellRenderer());
				column.setPreferredWidth(190);
			}
			else if (name.equals(LabelHistoryTableModel.LABEL)) {
				column.setPreferredWidth(280);
				column.setCellRenderer(new LabelCellRenderer());
			}
			else if (name.equals(LabelHistoryTableModel.ADDRESS)) {
				column.setPreferredWidth(130);
			}
			else if (name.equals(LabelHistoryTableModel.USER)) {
				column.setPreferredWidth(190);
			}
		}
		historyTable.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if (!e.isPopupTrigger()) {
					handleMouseClicked();
				}
			}
		});

	}
Construct a new history panel

@param program the program
@param list list of LabelHistory objects
@param listener listener that is notified when the user clicks on a
row in the table; null if only label history at a specific address
is being shown, in which case the address column is not displayed.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/label/LabelHistoryPanel.java