private boolean match(@Nonnull TreeItem<PathNode<?>> item) {
		PathNode<?> node = item.getValue();
		String path = switch (node) {
			case DirectoryPathNode directoryNode -> directoryNode.getValue();
			case ClassPathNode classPathNode -> classPathNode.getValue().getName();
			case FilePathNode classPathNode -> classPathNode.getValue().getName();
			case null, default -> null;
		};

		// Some PathNode types do not correlate to things that can be represented as file paths.
		// For instance, the actual file bundle containing files, can't represent that because it is
		// effectively the root.
		//
		// When we find a PathNode that does not have a "file path" like string, we will only show it
		// if it has children. This will hide trees that don't have any actual results in them.
		if (path == null) return !item.getChildren().isEmpty();

		// Otherwise, for things like classes and files, we'll match their path in their respective bundles
		// to the text-field input.
		return caseSensitivity.get() ?
				path.contains(textField.getText()) :
				path.toLowerCase().contains(textField.getText().toLowerCase());
	}
@return Text field for filtering by path names.
recaf-ui/src/main/java/software/coley/recaf/ui/control/tree/WorkspaceTreeFilterPane.java