Autopsy  4.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
TagsFilter.java
Go to the documentation of this file.
1 /*
2  * To change this license header, choose License Headers in Project Properties.
3  * To change this template file, choose Tools | Templates
4  * and open the template in the editor.
5  */
6 package org.sleuthkit.autopsy.timeline.filters;
7 
8 import java.util.Comparator;
9 import java.util.stream.Collectors;
10 import javafx.beans.binding.Bindings;
11 import javafx.beans.value.ObservableBooleanValue;
12 import org.openide.util.NbBundle;
13 import org.sleuthkit.datamodel.TagName;
14 
18 public class TagsFilter extends UnionFilter<TagNameFilter> {
19 
20  @Override
21  @NbBundle.Messages("tagsFilter.displayName.text=Tags")
22  public String getDisplayName() {
23  return Bundle.tagsFilter_displayName_text();
24  }
25 
26  public TagsFilter() {
27  setSelected(false);
28  }
29 
30  @Override
31  public TagsFilter copyOf() {
32  TagsFilter filterCopy = new TagsFilter();
33  filterCopy.setSelected(isSelected());
34  //add a copy of each subfilter
35  this.getSubFilters().forEach((TagNameFilter t) -> {
36  filterCopy.addSubFilter(t.copyOf());
37  });
38  return filterCopy;
39  }
40 
41  @Override
42  public String getHTMLReportString() {
43  //move this logic into SaveSnapshot
44  String string = getDisplayName() + getStringCheckBox();
45  if (getSubFilters().isEmpty() == false) {
46  string = string + " : " + getSubFilters().stream()
47  .filter(Filter::isSelected)
49  .collect(Collectors.joining("</li><li>", "<ul><li>", "</li></ul>")); // NON-NLS
50  }
51  return string;
52  }
53 
54  @Override
55  public int hashCode() {
56  return 7;
57  }
58 
59  @Override
60  public boolean equals(Object obj) {
61  if (obj == null) {
62  return false;
63  }
64  if (getClass() != obj.getClass()) {
65  return false;
66  }
67  final TagsFilter other = (TagsFilter) obj;
68 
69  if (isSelected() != other.isSelected()) {
70  return false;
71  }
72 
73  return areSubFiltersEqual(this, other);
74  }
75 
76  public void addSubFilter(TagNameFilter tagFilter) {
77  TagName newFilterTagName = tagFilter.getTagName();
78  if (getSubFilters().stream()
80  .filter(newFilterTagName::equals)
81  .findAny().isPresent() == false) {
82  getSubFilters().add(tagFilter);
83  }
84  getSubFilters().sort(Comparator.comparing(TagNameFilter::getDisplayName));
85  }
86 
87  public void removeFilterForTag(TagName tagName) {
88  getSubFilters().removeIf(subfilter -> subfilter.getTagName().equals(tagName));
89  getSubFilters().sort(Comparator.comparing(TagNameFilter::getDisplayName));
90  }
91 
92  @Override
93  public ObservableBooleanValue disabledProperty() {
94  return Bindings.or(super.disabledProperty(), Bindings.isEmpty(getSubFilters()));
95  }
96 }
void addSubFilter(TagNameFilter tagFilter)
Definition: TagsFilter.java:76

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.