Autopsy  4.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
FilterTreeItem.java
Go to the documentation of this file.
1 package org.sleuthkit.autopsy.timeline.ui.filtering;
2 
3 import javafx.beans.Observable;
4 import javafx.collections.ListChangeListener;
5 import javafx.collections.MapChangeListener;
6 import javafx.collections.ObservableMap;
7 import javafx.scene.control.TreeItem;
10 
14 final public class FilterTreeItem extends TreeItem<Filter> {
15 
25  public FilterTreeItem(Filter f, ObservableMap<String, Boolean> expansionMap) {
26  super(f);
27 
28  expansionMap.addListener((MapChangeListener.Change<? extends String, ? extends Boolean> change) -> {
29  if (change.getKey() == f.getDisplayName()) {
30  setExpanded(expansionMap.get(change.getKey()));
31  }
32  });
33 
34  if (expansionMap.get(f.getDisplayName()) != null) {
35  setExpanded(expansionMap.get(f.getDisplayName()));
36  }
37 
38  expandedProperty().addListener((Observable observable) -> {
39  expansionMap.put(f.getDisplayName(), isExpanded());
40  });
41 
42  if (f instanceof CompoundFilter<?>) {
43  CompoundFilter<?> compoundFilter = (CompoundFilter<?>) f;
44 
45  for (Filter subFilter : compoundFilter.getSubFilters()) {
46  getChildren().add(new FilterTreeItem(subFilter, expansionMap));
47  }
48 
49  compoundFilter.getSubFilters().addListener((ListChangeListener.Change<? extends Filter> c) -> {
50  while (c.next()) {
51  for (Filter subfFilter : c.getAddedSubList()) {
52  setExpanded(true);
53  getChildren().add(new FilterTreeItem(subfFilter, expansionMap));
54  }
55  }
56  });
57  }
58  }
59 }
FilterTreeItem(Filter f, ObservableMap< String, Boolean > expansionMap)

Copyright © 2012-2015 Basis Technology. Generated on: Wed Apr 6 2016
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.