6 package org.sleuthkit.autopsy.timeline.filters;
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;
21 @NbBundle.Messages(
"tagsFilter.displayName.text=Tags")
23 return Bundle.tagsFilter_displayName_text();
33 filterCopy.setSelected(isSelected());
45 if (getSubFilters().isEmpty() ==
false) {
46 string =
string +
" : " + getSubFilters().stream()
49 .collect(Collectors.joining(
"</li><li>",
"<ul><li>",
"</li></ul>"));
64 if (getClass() != obj.getClass()) {
69 if (isSelected() != other.isSelected()) {
73 return areSubFiltersEqual(
this, other);
77 TagName newFilterTagName = tagFilter.
getTagName();
78 if (getSubFilters().stream()
80 .filter(newFilterTagName::equals)
81 .findAny().isPresent() ==
false) {
82 getSubFilters().add(tagFilter);
88 getSubFilters().removeIf(subfilter -> subfilter.getTagName().equals(tagName));
94 return Bindings.or(super.disabledProperty(), Bindings.isEmpty(getSubFilters()));
synchronized TagNameFilter copyOf()
String getHTMLReportString()