19 package org.sleuthkit.autopsy.casemodule;
21 import java.awt.Dimension;
22 import java.awt.Toolkit;
23 import java.awt.event.ActionEvent;
24 import java.awt.event.ActionListener;
25 import javax.swing.JDialog;
26 import javax.swing.event.ChangeEvent;
27 import javax.swing.event.ChangeListener;
28 import org.openide.util.NbBundle.Messages;
29 import org.openide.windows.WindowManager;
35 class CaseInformationPanel
extends javax.swing.JPanel {
37 private static final long serialVersionUID = 1L;
38 CasePropertiesPanel propertiesPanel;
44 CaseInformationPanel() {
46 customizeComponents();
50 "CaseInformationPanel.caseDetails.header=Details",
51 "CaseInformationPanel.ingestJobInfo.header=Ingest History",
52 "CaseInformationPanel.editDetailsButton.text=Edit Details",
53 "CaseInformationPanel.editDetailsDialog.title=Edit Case Details"
55 private void customizeComponents() {
56 propertiesPanel =
new CasePropertiesPanel(Case.getCurrentCase());
57 propertiesPanel.setSize(propertiesPanel.getPreferredSize());
58 this.tabbedPane.addTab(Bundle.CaseInformationPanel_caseDetails_header(), propertiesPanel);
59 this.tabbedPane.addTab(Bundle.CaseInformationPanel_ingestJobInfo_header(),
new IngestJobInfoPanel());
60 this.tabbedPane.addChangeListener(
new ChangeListener() {
62 public void stateChanged(ChangeEvent e) {
63 tabbedPane.getSelectedComponent().setSize(tabbedPane.getSelectedComponent().getPreferredSize());
64 if (tabbedPane.getSelectedComponent() instanceof CasePropertiesPanel) {
65 editDetailsButton.setVisible(
true);
67 editDetailsButton.setVisible(
false);
78 void addCloseButtonAction(ActionListener action) {
79 this.closeButton.addActionListener(action);
87 @SuppressWarnings(
"unchecked")
89 private
void initComponents() {
91 outerDetailsPanel =
new javax.swing.JPanel();
92 tabbedPane =
new javax.swing.JTabbedPane();
93 closeButton =
new javax.swing.JButton();
94 editDetailsButton =
new javax.swing.JButton();
96 tabbedPane.setPreferredSize(
new java.awt.Dimension(420, 200));
98 org.openide.awt.Mnemonics.setLocalizedText(closeButton,
org.openide.util.NbBundle.getMessage(CaseInformationPanel.class,
"CaseInformationPanel.closeButton.text"));
100 org.openide.awt.Mnemonics.setLocalizedText(editDetailsButton,
org.openide.util.NbBundle.getMessage(CaseInformationPanel.class,
"CaseInformationPanel.editDetailsButton.text"));
101 editDetailsButton.addActionListener(
new java.awt.event.ActionListener() {
102 public void actionPerformed(java.awt.event.ActionEvent evt) {
103 editDetailsButtonActionPerformed(evt);
107 javax.swing.GroupLayout outerDetailsPanelLayout =
new javax.swing.GroupLayout(outerDetailsPanel);
108 outerDetailsPanel.setLayout(outerDetailsPanelLayout);
109 outerDetailsPanelLayout.setHorizontalGroup(
110 outerDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
111 .addComponent(tabbedPane, javax.swing.GroupLayout.DEFAULT_SIZE, 709, Short.MAX_VALUE)
112 .addGroup(outerDetailsPanelLayout.createSequentialGroup()
114 .addComponent(editDetailsButton, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
115 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
116 .addComponent(closeButton)
120 outerDetailsPanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL,
new java.awt.Component[] {closeButton, editDetailsButton});
122 outerDetailsPanelLayout.setVerticalGroup(
123 outerDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
124 .addGroup(outerDetailsPanelLayout.createSequentialGroup()
125 .addComponent(tabbedPane, javax.swing.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE)
127 .addGroup(outerDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
128 .addComponent(closeButton)
129 .addComponent(editDetailsButton))
133 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(
this);
134 this.setLayout(layout);
135 layout.setHorizontalGroup(
136 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
137 .addGroup(layout.createSequentialGroup()
139 .addComponent(outerDetailsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
142 layout.setVerticalGroup(
143 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
144 .addComponent(outerDetailsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
148 private void editDetailsButtonActionPerformed(java.awt.event.ActionEvent evt) {
149 JDialog editCasePropertiesDialog =
new JDialog(WindowManager.getDefault().getMainWindow(), Bundle.CaseInformationPanel_editDetailsDialog_title(),
true);
150 EditOptionalCasePropertiesPanel editCasePropertiesPanel =
new EditOptionalCasePropertiesPanel();
151 editCasePropertiesPanel.addCancelButtonAction((ActionEvent e) -> {
152 editCasePropertiesDialog.setVisible(
false);
154 editCasePropertiesPanel.addSaveButtonAction((ActionEvent e) -> {
155 editCasePropertiesDialog.setVisible(
false);
156 editCasePropertiesPanel.saveProperties();
157 propertiesPanel.updateCaseInfo();
161 editCasePropertiesDialog.add(editCasePropertiesPanel);
162 editCasePropertiesDialog.setResizable(
true);
163 editCasePropertiesDialog.pack();
165 Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
166 double w = editCasePropertiesDialog.getSize().getWidth();
167 double h = editCasePropertiesDialog.getSize().getHeight();
168 editCasePropertiesDialog.setLocation((
int) ((screenDimension.getWidth() - w) / 2), (int) ((screenDimension.getHeight() - h) / 2));
169 editCasePropertiesDialog.setVisible(
true);
170 editCasePropertiesDialog.toFront();
171 propertiesPanel.updateCaseInfo();
175 private javax.swing.JButton closeButton;
176 private javax.swing.JButton editDetailsButton;
177 private javax.swing.JPanel outerDetailsPanel;
178 private javax.swing.JTabbedPane tabbedPane;