19 package org.sleuthkit.autopsy.timeline.ui;
21 import java.util.ArrayList;
22 import java.util.HashMap;
24 import javafx.scene.image.Image;
25 import javafx.scene.paint.Color;
34 static final private String
IMAGE_BASE_PATH =
"org/sleuthkit/autopsy/timeline/images/";
35 static private final Map<TimelineEventType, Image>
imageMap =
new HashMap<>();
38 return imageMap.computeIfAbsent(type, type2 ->
new Image(
getImagePath(type2)));
45 imageFileName =
"blue-document.png";
47 imageFileName =
"block.png";
49 imageFileName =
"web-file.png";
51 imageFileName =
"block.png";
53 imageFileName =
"blue-document-attribute-a.png";
55 imageFileName =
"blue-document-attribute-c.png";
57 imageFileName =
"blue-document-attribute-m.png";
59 imageFileName =
"blue-document-attribute-b.png";
61 imageFileName =
"downloads.png";
63 imageFileName =
"cookies.png";
65 imageFileName =
"bookmarks.png";
67 imageFileName =
"history.png";
69 imageFileName =
"searchquery.png";
71 imageFileName =
"calllog.png";
73 imageFileName =
"usb_devices.png";
75 imageFileName =
"mail-icon-16.png";
77 imageFileName =
"camera-icon-16.png";
79 imageFileName =
"gps-search.png";
81 imageFileName =
"gps-trackpoint.png";
83 imageFileName =
"programs.png";
85 imageFileName =
"message.png";
87 imageFileName =
"recent_docs.png";
89 imageFileName =
"registry.png";
91 imageFileName =
"raw_access_logs.png";
93 imageFileName =
"hand_point.png";
95 imageFileName =
"artifact-icon.png";
97 imageFileName =
"artifact-icon.png";
99 imageFileName =
"blue-document-attribute-b.png";
101 imageFileName =
"blue-document-attribute-m.png";
103 imageFileName =
"blue-document.png";
105 imageFileName =
"timeline_marker.png";
108 return IMAGE_BASE_PATH + imageFileName;
113 return Color.hsb(359, .9, .9, 0);
118 Color baseColor =
getColor(superType);
120 .max((type1, type2) -> Integer.compare(type1.getChildren().size(), type2.getChildren().size()))
121 .get().getChildren().size() + 1;
122 int superSiblingsCount = superType.
getSiblings().size();
124 int ordinal =
new ArrayList<>(type.
getSiblings()).indexOf(type);
125 double offset = (360.0 / superSiblingsCount) / siblings;
126 Color deriveColor = baseColor.deriveColor(ordinal * offset, 1, 1, 1);
128 return Color.hsb(deriveColor.getHue(), deriveColor.getSaturation(), deriveColor.getBrightness());
TimelineEventType REGISTRY
TimelineEventType FILE_ACCESSED
TimelineEventType LOG_ENTRY
TimelineEventType RECENT_DOCUMENTS
TimelineEventType MESSAGE
default SortedSet<?extends TimelineEventType > getSiblings()
TimelineEventType GPS_ROUTE
TimelineEventType WEB_COOKIE
TimelineEventType WEB_ACTIVITY
TimelineEventType USER_CREATED
TimelineEventType FILE_MODIFIED
TimelineEventType MISC_TYPES
TimelineEventType WEB_SEARCH
TimelineEventType WEB_BOOKMARK
static Image getImage(TimelineEventType type)
TimelineEventType FILE_CREATED
TimelineEventType INSTALLED_PROGRAM
TimelineEventType CALL_LOG
TimelineEventType WEB_HISTORY
TimelineEventType getParent()
TimelineEventType FILE_SYSTEM
TimelineEventType DEVICES_ATTACHED
TimelineEventType WEB_FORM_ADDRESSES
TimelineEventType WEB_DOWNLOADS
TimelineEventType ROOT_EVENT_TYPE
static String getImagePath(TimelineEventType type)
TimelineEventType WEB_FORM_AUTOFILL
static final String IMAGE_BASE_PATH
TimelineEventType METADATA_CREATED
TimelineEventType GPS_TRACKPOINT
static Color getColor(TimelineEventType type)
TimelineEventType METADATA_LAST_PRINTED
TimelineEventType FILE_CHANGED
TimelineEventType METADATA_LAST_SAVED
static final Map< TimelineEventType, Image > imageMap