Fixed table dispose not accounting for a wrapped model; Fixed missing

dispose calls of GTableFilterPanel
This commit is contained in:
dragonmacher 2020-12-07 17:11:14 -05:00
parent f69546e508
commit 8be90db260
19 changed files with 111 additions and 78 deletions

View file

@ -21,14 +21,12 @@ import java.awt.event.MouseEvent;
import java.util.*;
import javax.swing.BorderFactory;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import docking.ActionContext;
import docking.DialogComponentProvider;
import docking.widgets.table.GTableCellRenderer;
import docking.widgets.table.GTableCellRenderingData;
import docking.widgets.table.*;
import docking.widgets.table.threaded.GThreadedTablePanel;
import docking.widgets.table.threaded.ThreadedTableModelListener;
import ghidra.framework.main.datatable.ProjectDataContext;
@ -46,7 +44,7 @@ public class FindCheckoutsDialog extends DialogComponentProvider {
private FindCheckoutsTableModel model;
private Plugin plugin;
private DomainFolder folder;
private JTable table;
private GTable table;
private boolean showMessage = true;
private GThreadedTablePanel<CheckoutInfo> threadedTablePanel;
@ -123,7 +121,7 @@ public class FindCheckoutsDialog extends DialogComponentProvider {
@Override
public void close() {
super.close();
model.dispose();
threadedTablePanel.dispose();
}
@Override

View file

@ -99,8 +99,6 @@ public class KeyBindingsPanel extends JPanel {
public void dispose() {
tableFilterPanel.dispose();
tableModel.dispose();
actionTable.dispose();
propertyChangeListener = null;
}

View file

@ -71,7 +71,7 @@ public class PluginInstallerDialog extends DialogComponentProvider {
@Override
protected void dialogShown() {
// users often wish to start typing in the filter when the dialog appeears
// users often wish to start typing in the filter when the dialog appears
tableFilterPanel.requestFocus();
}
@ -84,7 +84,6 @@ public class PluginInstallerDialog extends DialogComponentProvider {
public void close() {
super.close();
tableFilterPanel.dispose();
table.dispose();
}
/**
@ -173,10 +172,14 @@ public class PluginInstallerDialog extends DialogComponentProvider {
TableSortState.createDefaultSortState(PluginInstallerTableModel.NAME_COL));
tableModel.refresh();
table.getColumnModel().getColumn(PluginInstallerTableModel.NAME_COL).setCellRenderer(
new NameCellRenderer());
table.getColumnModel().getColumn(PluginInstallerTableModel.STATUS_COL).setCellRenderer(
new StatusCellRenderer());
table.getColumnModel()
.getColumn(PluginInstallerTableModel.NAME_COL)
.setCellRenderer(
new NameCellRenderer());
table.getColumnModel()
.getColumn(PluginInstallerTableModel.STATUS_COL)
.setCellRenderer(
new StatusCellRenderer());
HelpService help = Help.getHelpService();
help.registerHelp(table, new HelpLocation(GenericHelpTopics.TOOL, "PluginDialog"));