19package org.sleuthkit.autopsy.timeline.explorernodes;
21import java.util.Collection;
22import java.util.HashMap;
25import java.util.logging.Level;
26import org.openide.nodes.AbstractNode;
27import org.openide.nodes.ChildFactory;
28import org.openide.nodes.Children;
29import org.openide.nodes.Node;
30import org.openide.util.NbBundle;
31import org.openide.util.lookup.Lookups;
32import org.sleuthkit.autopsy.coreutils.Logger;
33import org.sleuthkit.autopsy.datamodel.DisplayableItemNode;
34import org.sleuthkit.autopsy.datamodel.DisplayableItemNodeVisitor;
35import org.sleuthkit.autopsy.timeline.EventsModel;
36import org.sleuthkit.datamodel.TskCoreException;
53 super(Children.create(
new EventNodeChildFactory(eventIds, filteredEvents),
true), Lookups.singleton(eventIds));
68 return getClass().getName();
74 private static class EventNodeChildFactory
extends ChildFactory<Long> {
87 private final Map<Long, Node>
nodesMap =
new HashMap<>();
90 this.eventIDs = eventIds;
102 nodesMap.computeIfAbsent(eventId, this::createNode);
103 toPopulate.add(eventId);
106 nodesMap.computeIfAbsent(-1L, this::createNode);
127 }
catch (TskCoreException ex) {
133 LOGGER.log(Level.SEVERE,
"Error creating explorer node for event id " + eventID +
".", ex);
143 private static class TooManyNode
extends AbstractNode {
146 "# {0} - maximum number of events to display",
147 "# {1} - the number of events that is too many",
148 "EventRoodNode.tooManyNode.displayName=Too many events to display. Maximum = {0}. But there are {1} to display."})
149 TooManyNode(
int size) {
150 super(Children.LEAF);
151 this.setIconBaseWithExtension(
"org/sleuthkit/autopsy/images/info-icon-16.png");
synchronized static Logger getLogger(String name)
DisplayableItemNode(Children children)
static EventNode createEventNode(final Long eventID, EventsModel eventsModel)
final EventsModel filteredEvents
final Map< Long, Node > nodesMap
static final Logger LOGGER
Node createNode(Long eventID)
final Collection< Long > eventIDs
boolean createKeys(List< Long > toPopulate)
Node createNodeForKey(Long eventID)
EventRootNode(Collection< Long > eventIds, EventsModel filteredEvents)
static final long serialVersionUID
static final int MAX_EVENTS_TO_DISPLAY