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);