19 package org.sleuthkit.autopsy.casemodule.multiusercasesbrowser;
21 import java.util.ArrayList;
22 import java.util.Arrays;
23 import java.util.List;
24 import javax.swing.Action;
25 import org.openide.nodes.AbstractNode;
26 import org.openide.nodes.Children;
27 import org.openide.nodes.Sheet;
28 import org.openide.util.lookup.Lookups;
37 final class MultiUserCaseNode
extends AbstractNode {
39 private final CaseNodeData caseNodeData;
40 private final MultiUserCaseBrowserCustomizer customizer;
50 MultiUserCaseNode(CaseNodeData caseNodeData, MultiUserCaseBrowserCustomizer customizer) {
51 super(Children.LEAF, Lookups.fixed(caseNodeData));
52 super.setName(caseNodeData.getDisplayName());
53 super.setDisplayName(caseNodeData.getDisplayName());
54 this.caseNodeData = caseNodeData;
55 this.customizer = customizer;
59 protected Sheet createSheet() {
60 Sheet sheet = super.createSheet();
61 Sheet.Set sheetSet = sheet.get(Sheet.PROPERTIES);
62 if (sheetSet == null) {
63 sheetSet = Sheet.createPropertiesSet();
66 for (Column property : customizer.getColumns()) {
67 String propName =
property.getDisplayName();
70 sheetSet.put(
new NodeProperty<>(propName, propName, propName, caseNodeData.getCreateDate()));
73 sheetSet.put(
new NodeProperty<>(propName, propName, propName, caseNodeData.getDirectory().toString()));
75 case LAST_ACCESS_DATE:
76 sheetSet.put(
new NodeProperty<>(propName, propName, propName, caseNodeData.getLastAccessDate()));
86 public Action[] getActions(
boolean context) {
87 List<Action> actions =
new ArrayList<>();
88 actions.addAll(customizer.getActions(caseNodeData));
89 actions.addAll(Arrays.asList(super.getActions(context)));
90 return actions.toArray(
new Action[actions.size()]);
94 public Action getPreferredAction() {
95 return customizer.getPreferredAction(caseNodeData);