19 package org.sleuthkit.autopsy.casemodule;
 
   21 import java.awt.Frame;
 
   22 import java.awt.event.ActionEvent;
 
   23 import java.beans.PropertyChangeEvent;
 
   24 import java.util.EnumSet;
 
   25 import javax.swing.Action;
 
   26 import javax.swing.JDialog;
 
   27 import javax.swing.SwingUtilities;
 
   28 import org.openide.util.HelpCtx;
 
   29 import org.openide.util.NbBundle;
 
   30 import org.openide.util.actions.CallableSystemAction;
 
   31 import org.openide.windows.WindowManager;
 
   37 final class CaseDetailsAction 
extends CallableSystemAction {
 
   39     private static final long serialVersionUID = 1L;
 
   40     private static JDialog caseDetailsDialog;
 
   43         putValue(Action.NAME, NbBundle.getMessage(CaseDetailsAction.class, 
"CTL_CaseDetailsAction"));
 
   44         this.setEnabled(
false);
 
   45         Case.addEventTypeSubscriber(EnumSet.of(Case.Events.CURRENT_CASE), (PropertyChangeEvent evt) -> {
 
   46             setEnabled(null != evt.getNewValue());
 
   51     public void performAction() {
 
   52         SwingUtilities.invokeLater(() -> {
 
   53             String title = NbBundle.getMessage(this.getClass(), 
"CaseDetailsAction.window.title");
 
   54             Frame mainWindow = WindowManager.getDefault().getMainWindow();
 
   55             caseDetailsDialog = 
new JDialog(mainWindow, title, 
true);
 
   56             CaseInformationPanel caseInformationPanel = 
new CaseInformationPanel();
 
   57             caseInformationPanel.addCloseButtonAction((ActionEvent e) -> {
 
   58                 caseDetailsDialog.dispose();
 
   60             caseDetailsDialog.add(caseInformationPanel);
 
   61             caseDetailsDialog.setResizable(
true);
 
   62             caseDetailsDialog.pack();
 
   63             caseDetailsDialog.setLocationRelativeTo(mainWindow);
 
   64             caseDetailsDialog.setVisible(
true);
 
   65             caseDetailsDialog.toFront();
 
   70     public String getName() {
 
   71         return NbBundle.getMessage(CaseDetailsAction.class, 
"CTL_CaseDetailsAction");
 
   75     public HelpCtx getHelpCtx() {
 
   76         return HelpCtx.DEFAULT_HELP;