19 package org.sleuthkit.autopsy.timeline.filters;
21 import java.util.Comparator;
22 import java.util.function.Predicate;
23 import javafx.beans.binding.Bindings;
24 import javafx.beans.value.ObservableBooleanValue;
25 import org.openide.util.NbBundle;
34 @NbBundle.Messages(
"tagsFilter.displayName.text=Tags")
36 return Bundle.tagsFilter_displayName_text();
47 getSubFilters().forEach(tagNameFilter -> filterCopy.
addSubFilter(tagNameFilter.copyOf()));
49 filterCopy.setSelected(isSelected());
50 filterCopy.setDisabled(isDisabled());
65 if (getClass() != obj.getClass()) {
70 if (isActive() != other.isActive()) {
74 return areSubFiltersEqual(
this, other);
78 getSubFilters().removeIf(subfilter -> subfilter.getTagName().equals(tagName));
84 return Bindings.or(super.disabledProperty(), Bindings.isEmpty(getSubFilters()));
88 Predicate<TagNameFilter> getDuplicatePredicate(
TagNameFilter subfilter) {
89 return tagNameFilter -> subfilter.
getTagName().equals(tagNameFilter.getTagName());
void addSubFilter(SubFilterType subfilter)