19 package org.sleuthkit.autopsy.communications;
21 import com.google.common.eventbus.Subscribe;
22 import java.awt.Component;
24 import java.awt.GridBagConstraints;
25 import java.awt.GridBagLayout;
26 import java.awt.Insets;
27 import java.util.List;
28 import java.util.stream.Collectors;
29 import javax.swing.ImageIcon;
30 import javax.swing.JSplitPane;
31 import javax.swing.JTabbedPane;
32 import org.openide.util.Lookup;
33 import org.openide.util.NbBundle;
34 import org.openide.windows.Mode;
35 import org.openide.windows.RetainLocation;
36 import org.openide.windows.TopComponent;
37 import org.openide.windows.WindowManager;
43 @TopComponent.Description(preferredID =
"CVTTopComponent", persistenceType = TopComponent.PERSISTENCE_NEVER)
44 @TopComponent.Registration(mode =
"cvt", openAtStartup =
false)
45 @RetainLocation(
"cvt")
46 @NbBundle.Messages(
"CVTTopComponent.name= Communications Visualization")
47 @SuppressWarnings(
"PMD.SingularField")
50 private static final long serialVersionUID = 1L;
55 setName(Bundle.CVTTopComponent_name());
63 associateLookup(proxyLookup);
65 browseVisualizeTabPane.addChangeListener(changeEvent -> {
66 Component selectedComponent = browseVisualizeTabPane.getSelectedComponent();
67 if(selectedComponent instanceof Lookup.Provider) {
68 Lookup lookup = ((Lookup.Provider)selectedComponent).getLookup();
69 proxyLookup.setNewLookups(lookup);
78 CVTEvents.getCVTEventBus().register(
this);
79 CVTEvents.getCVTEventBus().register(vizPanel);
80 CVTEvents.getCVTEventBus().register(accountsBrowser);
81 CVTEvents.getCVTEventBus().register(filtersPane);
83 mainSplitPane.setResizeWeight(0.5);
84 mainSplitPane.setDividerLocation(0.25);
88 void pinAccount(CVTEvents.PinAccountsEvent pinEvent) {
89 browseVisualizeTabPane.setSelectedIndex(1);
99 GridBagConstraints gridBagConstraints;
101 mainSplitPane =
new JSplitPane();
103 browseVisualizeTabPane =
new JTabbedPane();
107 setLayout(
new GridBagLayout());
109 mainSplitPane.setLeftComponent(filtersPane);
111 browseVisualizeTabPane.setFont(
new Font(
"Tahoma", 0, 18));
112 browseVisualizeTabPane.addTab(NbBundle.getMessage(
CVTTopComponent.class,
"CVTTopComponent.accountsBrowser.TabConstraints.tabTitle_1"),
new ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/communications/images/table.png")), accountsBrowser);
113 browseVisualizeTabPane.addTab(NbBundle.getMessage(
CVTTopComponent.class,
"CVTTopComponent.vizPanel.TabConstraints.tabTitle_1"),
new ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/communications/images/emblem-web.png")), vizPanel);
115 mainSplitPane.setRightComponent(browseVisualizeTabPane);
116 browseVisualizeTabPane.getAccessibleContext().setAccessibleName(NbBundle.getMessage(
CVTTopComponent.class,
"CVTTopComponent.browseVisualizeTabPane.AccessibleContext.accessibleName"));
118 gridBagConstraints =
new GridBagConstraints();
119 gridBagConstraints.fill = GridBagConstraints.BOTH;
120 gridBagConstraints.weightx = 1.0;
121 gridBagConstraints.weighty = 1.0;
122 add(mainSplitPane, gridBagConstraints);
136 super.componentOpened();
137 WindowManager.getDefault().setTopComponentFloating(
this,
true);
149 filtersPane.updateAndApplyFilters(
true);
159 return modes.stream().filter(mode -> mode.getName().equals(
"cvt"))
160 .collect(Collectors.toList());
VisualizationPanel vizPanel
JTabbedPane browseVisualizeTabPane
AccountsBrowser accountsBrowser
List< Mode > availableModes(List< Mode > modes)