Skip to content

Commit

Permalink
'#39 Creates interface IFilter method to return a more detailed textual
Browse files Browse the repository at this point in the history
description, used in the tootip of the filter in the tree.
  • Loading branch information
patrickdalla committed Apr 19, 2024
1 parent a7f8461 commit 8e42673
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
public class ValueCountQueryFilter implements IQueryFilter {
StringBuffer queryStr = null;
StringBuffer name = null;
StringBuffer textualDetail = null;
Set<ValueCount> values = null;
String filterField;
private Query query;
Expand All @@ -26,6 +27,25 @@ public ValueCountQueryFilter(String filterField, Set<ValueCount> selectedValues)
}
}

@Override
public String getTextualDetails() {
if (textualDetail == null) {
textualDetail = new StringBuffer();
textualDetail.append(filterField);
textualDetail.append(":[");
boolean first = true;
for (ValueCount value : values) {
if (!first) {
textualDetail.append(",");
}
textualDetail.append(value.getVal());
first = false;
}
textualDetail.append("]");
}
return textualDetail.toString();
}

public String toString() {
if (name == null) {
name = new StringBuffer();
Expand Down
22 changes: 21 additions & 1 deletion iped-app/src/main/java/iped/app/ui/FiltersPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.ToolTipManager;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
Expand Down Expand Up @@ -80,6 +81,7 @@ public TreePath getLastClickedPath() {
public void install(FilterManager filterManager) {
this.filterManager = filterManager;
filtersTree = new JTree();

CheckBoxTreeCellRenderer treeCellRenderer = new CheckBoxTreeCellRenderer(filtersTree, new Predicate<Object>() {
@Override
public boolean test(Object t) {
Expand All @@ -96,7 +98,20 @@ public boolean test(Object t) {
}
return false;
}
});
}) {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
Component result = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
if (value instanceof IFilter) {
IFilter filter = (IFilter) value;
String toolTip = filter.getTextualDetails();
((JComponent)result).setToolTipText(toolTip);
}

return result;
}
};
filtersTree.setCellRenderer(treeCellRenderer);
filtersTree.setCellEditor(treeCellRenderer);
filtersTree.setEditable(true);
Expand Down Expand Up @@ -183,11 +198,16 @@ public Component getTreeCellRendererComponent(JTree tree, Object value, boolean
Image newimg = ((IMiniaturizable) filter).getThumb().getScaledInstance(16, 16, java.awt.Image.SCALE_SMOOTH);
label.setIcon(new ImageIcon(newimg));
}
String toolTip = filter.getTextualDetails();
p.setToolTipText(toolTip);
} else {
p.setToolTipText(null);
}
return p;
}

});
ToolTipManager.sharedInstance().registerComponent(combinedFiltererTree);

splitPane = new JSplitPane();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,7 @@
* @author patrick.pdb
*/
public interface IFilter {
public default String getTextualDetails() {
return null;
};
}

0 comments on commit 8e42673

Please sign in to comment.