diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/CombinedTableFilter.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/CombinedTableFilter.java index 06c903af4e..e9c4a10540 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/CombinedTableFilter.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/CombinedTableFilter.java @@ -51,6 +51,11 @@ public class CombinedTableFilter implements TableFilter { return true; } + @Override + public boolean isEmpty() { + return filters.isEmpty(); + } + /** * Returns the number of sub-filters in this combined filter. * diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/TableFilter.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/TableFilter.java index 08e87cccad..2191edc6c1 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/TableFilter.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/TableFilter.java @@ -48,4 +48,13 @@ public interface TableFilter { return false; } + /** + * A method that allows filters to report that they have nothing to actually filter. This + * is useful for empty/null filters. + * + * @return true if this filter will not perform any filtering + */ + public default boolean isEmpty() { + return false; + } } diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/NullTableFilter.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/NullTableFilter.java index 0e85d2cc36..4875b7098c 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/NullTableFilter.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/NullTableFilter.java @@ -39,6 +39,11 @@ public class NullTableFilter implements TableFilter { return false; } + @Override + public boolean isEmpty() { + return true; + } + @Override public boolean equals(Object obj) { if (this == obj) { diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableData.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableData.java index 00cc7c5160..c4ac89b99e 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableData.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableData.java @@ -26,7 +26,7 @@ import ghidra.util.SystemUtilities; * encapsulates the actual data, along with any filter applied, any sort applied, along with * some convenience methods for performing operations on this group of data. * - * @param + * @param the row type */ public class TableData implements Iterable { diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableUpdateJob.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableUpdateJob.java index d4318e60f1..ab581f01de 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableUpdateJob.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableUpdateJob.java @@ -322,7 +322,7 @@ public class TableUpdateJob { /** * Calls the appropriate method to process the given state. * @param state the state to process. - * @throws CancelledException + * @throws CancelledException if the job was cancelled */ private void processState(JobState state) throws CancelledException { switch (state) { diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/ThreadedTableModel.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/ThreadedTableModel.java index 0ba1569521..3357ce3f55 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/ThreadedTableModel.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/ThreadedTableModel.java @@ -162,7 +162,7 @@ public abstract class ThreadedTableModel * * @param monitor the monitor * @return the loaded data - * @throws CancelledException + * @throws CancelledException if the load was cancelled */ final List load(TaskMonitor monitor) throws CancelledException { if (loadIncrementally) { @@ -371,7 +371,7 @@ public abstract class ThreadedTableModel */ public boolean hasFitler() { TableFilter currentFilter = getTableFilter(); - return !(currentFilter instanceof NullTableFilter); + return !currentFilter.isEmpty(); } /** @@ -772,7 +772,7 @@ public abstract class ThreadedTableModel * Adds a listener that will be notified of the first table load of this model. After the * initial load, the listener is removed. * - * @param listener + * @param listener the listener */ public void addInitialLoadListener(ThreadedTableModelListener listener) { listeners.add(new OneTimeListenerWrapper(listener));