From 36bd8a1622831499e26e564354c23a4fb497c001 Mon Sep 17 00:00:00 2001
From: Richard Cordovano <rcordovano@basistech.com>
Date: Wed, 4 Dec 2019 18:31:57 -0500
Subject: [PATCH] Remove JFX dependency in TSK

---
 .travis.yml                                   |  3 ---
 .../org/sleuthkit/datamodel/Bundle.properties |  6 +++---
 .../sleuthkit/datamodel/TimelineFilter.java   | 20 +++++++++----------
 3 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 2c2bbd9d5..a61544ce8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -30,9 +30,6 @@ addons:
     - libcppunit-dev
     - wget
     - openjdk-8-jdk
-    - openjfx=8u161-b12-1ubuntu2
-    - libopenjfx-java=8u161-b12-1ubuntu2
-    - libopenjfx-jni=8u161-b12-1ubuntu2
   homebrew:
     update: true
     packages:
diff --git a/bindings/java/src/org/sleuthkit/datamodel/Bundle.properties b/bindings/java/src/org/sleuthkit/datamodel/Bundle.properties
index 9241a1bb1..89ef565f7 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/Bundle.properties
+++ b/bindings/java/src/org/sleuthkit/datamodel/Bundle.properties
@@ -322,7 +322,7 @@ BaseTypes.customTypes.name=Custom Types
 EventTypeHierarchyLevel.root=Root
 EventTypeHierarchyLevel.category=Category
 EventTypeHierarchyLevel.event=Event
-DataSourcesFilter.displayName.text=Limit data sources
+DataSourcesFilter.displayName.text=Limit data sources to
 DescriptionFilter.mode.exclude=Exclude
 DescriptionFilter.mode.include=Include
 hashHitsFilter.displayName.text=Must have hash hit
@@ -330,5 +330,5 @@ hideKnownFilter.displayName.text=Hide Known Files
 IntersectionFilter.displayName.text=Intersection 
 tagsFilter.displayName.text=Must be tagged
 TextFilter.displayName.text=Must include text:
-TypeFilter.displayName.text=Limit event types
-FileTypesFilter.displayName.text=Limit file types
\ No newline at end of file
+TypeFilter.displayName.text=Limit event types to
+FileTypesFilter.displayName.text=Limit file types to
\ No newline at end of file
diff --git a/bindings/java/src/org/sleuthkit/datamodel/TimelineFilter.java b/bindings/java/src/org/sleuthkit/datamodel/TimelineFilter.java
index 7e4665395..233b0eb8a 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/TimelineFilter.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/TimelineFilter.java
@@ -21,6 +21,8 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Lists;
 import com.google.common.net.MediaType;
+import java.util.ArrayList;
+import java.util.Arrays;
 import static java.util.Arrays.asList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -30,8 +32,6 @@
 import java.util.stream.Collectors;
 import static java.util.stream.Collectors.joining;
 import java.util.stream.Stream;
-import javafx.collections.FXCollections;
-import javafx.collections.ObservableList;
 import static org.apache.commons.lang3.ObjectUtils.notEqual;
 import org.apache.commons.lang3.StringUtils;
 import static org.sleuthkit.datamodel.SleuthkitCase.escapeSingleQuotes;
@@ -145,7 +145,7 @@ public static final class EventTypeFilter extends UnionFilter<EventTypeFilter> {
 		 *                      event types hierarchy from the root event type.
 		 */
 		private EventTypeFilter(TimelineEventType rootEventType, boolean recursive) {
-			super(FXCollections.observableArrayList());
+			super(new ArrayList<>());
 			this.rootEventType = rootEventType;
 			if (recursive) {
 				// add subfilters for each subtype
@@ -335,12 +335,12 @@ String getSQLWhere(TimelineManager manager) {
 	 */
 	public static abstract class UnionFilter<SubFilterType extends TimelineFilter> extends TimelineFilter.CompoundFilter<SubFilterType> {
 
-		UnionFilter(ObservableList<SubFilterType> subFilters) {
+		UnionFilter(List<SubFilterType> subFilters) {
 			super(subFilters);
 		}
 
 		UnionFilter() {
-			super(FXCollections.<SubFilterType>observableArrayList());
+			super(new ArrayList<SubFilterType>());
 		}
 
 		@Override
@@ -568,7 +568,7 @@ public RootFilter(
 				FileTypesFilter fileTypesFilter,
 				Collection<TimelineFilter> additionalFilters) {
 
-			super(FXCollections.observableArrayList(descriptionSubstringFilter, knownFilesFilter, tagsFilter, dataSourcesFilter, hashSetHitsFilter, fileTypesFilter, eventTypesFilter));
+			super(Arrays.asList(descriptionSubstringFilter, knownFilesFilter, tagsFilter, dataSourcesFilter, hashSetHitsFilter, fileTypesFilter, eventTypesFilter));
 			getSubFilters().removeIf(Objects::isNull);
 			this.knownFilesFilter = knownFilesFilter;
 			this.tagsFilter = tagsFilter;
@@ -716,15 +716,15 @@ protected void addSubFilter(SubFilterType subfilter) {
 			}
 		}
 
-		private final ObservableList<SubFilterType> subFilters = FXCollections.observableArrayList();
+		private final List<SubFilterType> subFilters = new ArrayList<>();
 
 		/**
 		 * Gets the collection of filters that make up this filter.
 		 *
 		 * @return The filters.
 		 */
-		public final ObservableList<SubFilterType> getSubFilters() {
-			return subFilters;
+		public final List<SubFilterType> getSubFilters() {
+			return subFilters; // RJCTODO: DO we need to hand out a mutable reference?
 		}
 
 		/**
@@ -744,7 +744,7 @@ public boolean hasSubFilters() {
 		 */
 		protected CompoundFilter(List<SubFilterType> subFilters) {
 			super();
-			this.subFilters.setAll(subFilters);
+			this.subFilters.addAll(subFilters);
 		}
 
 		@Override
-- 
GitLab