19package org.sleuthkit.autopsy.communications;
21import com.google.common.eventbus.Subscribe;
22import java.awt.BorderLayout;
23import java.awt.Component;
25import java.awt.event.MouseAdapter;
26import java.awt.event.MouseEvent;
27import java.util.HashSet;
29import java.util.stream.Collectors;
30import javax.swing.ImageIcon;
31import javax.swing.JPanel;
32import javax.swing.JSplitPane;
33import javax.swing.JTabbedPane;
34import org.openide.util.Lookup;
35import org.openide.util.NbBundle;
36import org.openide.windows.Mode;
37import org.openide.windows.RetainLocation;
38import org.openide.windows.TopComponent;
39import org.openide.windows.WindowManager;
40import org.sleuthkit.autopsy.communications.relationships.RelationshipBrowser;
41import org.sleuthkit.autopsy.communications.relationships.SelectionInfo;
42import org.sleuthkit.autopsy.coreutils.ThreadConfined;
43import org.sleuthkit.datamodel.CommunicationsFilter;
48@TopComponent.Description(preferredID =
"CVTTopComponent", persistenceType = TopComponent.PERSISTENCE_NEVER)
49@TopComponent.Registration(mode =
"cvt", openAtStartup =
false)
51@NbBundle.Messages(
"CVTTopComponent.name= Communications Visualization")
52@SuppressWarnings(
"PMD.SingularField")
70 setName(Bundle.CVTTopComponent_name());
78 associateLookup(proxyLookup);
82 if (selectedComponent instanceof Lookup.Provider) {
83 Lookup lookup = ((Lookup.Provider) selectedComponent).getLookup();
93 browseVisualizeTabPane.addTab(NbBundle.getMessage(
CVTTopComponent.class,
"CVTTopComponent.vizPanel.TabConstraints.tabTitle_1"),
new ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/communications/images/emblem-web.png")),
vizPanel);
98 CVTEvents.getCVTEventBus().register(
this);
99 CVTEvents.getCVTEventBus().register(
vizPanel);
103 filterTabbedPane.setIconAt(0,
new ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/communications/images/arrow-left.png")));
109 void pinAccount(CVTEvents.PinAccountsEvent pinEvent) {
110 browseVisualizeTabPane.setSelectedIndex(1);
114 void handle(
final CVTEvents.FilterChangeEvent filterChangeEvent) {
115 currentFilter = filterChangeEvent.getNewFilter();
131 setLayout(
new BorderLayout());
134 public void mouseClicked(MouseEvent evt) {
147 browseVisualizeTabPane.getAccessibleContext().setAccessibleName(NbBundle.getMessage(
CVTTopComponent.class,
"CVTTopComponent.browseVisualizeTabPane.AccessibleContext.accessibleName"));
156 filterTabbedPane.setIconAt(0,
new ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/communications/images/arrow-right.png")));
161 filterTabbedPane.setIconAt(0,
new ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/communications/images/arrow-left.png")));
179 super.componentOpened();
180 WindowManager.getDefault().setTopComponentFloating(
this,
true);
202 return modes.stream().filter(mode -> mode.getName().equals(
"cvt"))
203 .collect(Collectors.toList());
CommunicationsFilter currentFilter
final FiltersPanel filtersPane
JTabbedPane filterTabbedPane
final VisualizationPanel vizPanel
void filterTabbedPaneMouseClicked(MouseEvent evt)
JTabbedPane browseVisualizeTabPane
List< Mode > availableModes(List< Mode > modes)
static final long serialVersionUID
final AccountsBrowser accountsBrowser
final RelationshipBrowser relationshipBrowser
void setNewLookups(final Lookup... lookups)