19 package org.sleuthkit.autopsy.modules.filetypeid;
21 import java.awt.BorderLayout;
22 import java.awt.Dimension;
23 import java.awt.event.ActionEvent;
24 import java.awt.event.ActionListener;
25 import java.awt.event.WindowAdapter;
26 import java.awt.event.WindowEvent;
27 import java.beans.PropertyChangeEvent;
28 import java.beans.PropertyChangeListener;
29 import javax.swing.BoxLayout;
30 import javax.swing.JButton;
31 import javax.swing.JDialog;
32 import javax.swing.JPanel;
33 import org.openide.util.NbBundle;
34 import org.openide.util.NbBundle.Messages;
35 import org.openide.windows.WindowManager;
40 @SuppressWarnings(
"PMD.SingularField")
41 class AddFileTypeDialog
extends JDialog {
52 private static final long serialVersionUID = 1L;
53 private static final Dimension BUTTON_SIZE =
new Dimension(85, 23);
54 private FileType fileType;
55 final private AddFileTypePanel addMimeTypePanel;
56 private BUTTON_PRESSED result;
57 private JButton okButton;
58 private JButton cancelButton;
63 @Messages({
"AddMimeTypedialog.title=File Type"})
65 super(WindowManager.getDefault().getMainWindow(), Bundle.AddMimeTypedialog_title(),
true);
66 addMimeTypePanel =
new AddFileTypePanel();
75 AddFileTypeDialog(FileType fileType) {
76 super(WindowManager.getDefault().getMainWindow(), Bundle.AddMimeTypedialog_title(),
true);
77 addMimeTypePanel =
new AddFileTypePanel(fileType);
85 "AddMimeTypeDialog.addButton.title=OK",
86 "AddMimeTypeDialog.cancelButton.title=Cancel"})
88 setLayout(
new BorderLayout());
94 add(this.addMimeTypePanel, BorderLayout.PAGE_START);
97 okButton =
new JButton(Bundle.AddMimeTypeDialog_addButton_title());
98 okButton.addActionListener(
new ActionListener() {
100 public void actionPerformed(ActionEvent e) {
101 doButtonAction(
true);
105 okButton.setMaximumSize(BUTTON_SIZE);
106 okButton.setPreferredSize(BUTTON_SIZE);
109 cancelButton =
new JButton(Bundle.AddMimeTypeDialog_cancelButton_title());
110 cancelButton.addActionListener(
new ActionListener() {
112 public void actionPerformed(ActionEvent e) {
113 doButtonAction(
false);
117 cancelButton.setMaximumSize(BUTTON_SIZE);
118 cancelButton.setPreferredSize(BUTTON_SIZE);
121 JPanel buttonPanel =
new JPanel();
122 buttonPanel.setLayout(
new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS));
123 buttonPanel.add(okButton);
124 buttonPanel.add(
new javax.swing.Box.Filler(
new Dimension(10, 35),
new Dimension(10, 35),
new Dimension(10, 35)));
125 buttonPanel.add(cancelButton);
126 buttonPanel.add(
new javax.swing.Box.Filler(
new Dimension(10, 35),
new Dimension(10, 35),
new Dimension(10, 35)));
127 buttonPanel.validate();
128 add(buttonPanel, BorderLayout.LINE_END);
134 this.addWindowListener(
new WindowAdapter() {
136 public void windowClosing(WindowEvent e) {
137 doButtonAction(
false);
140 this.addMimeTypePanel.addPropertyChangeListener(
new PropertyChangeListener() {
142 public void propertyChange(PropertyChangeEvent evt) {
143 if (evt.getPropertyName().equals(AddFileTypePanel.EVENT.SIG_LIST_CHANGED.toString())) {
161 setLocationRelativeTo(WindowManager.getDefault().getMainWindow());
174 private void doButtonAction(
boolean okPressed) {
176 FileType fType = addMimeTypePanel.getFileType();
178 this.fileType = fType;
179 this.result = BUTTON_PRESSED.OK;
183 this.fileType = null;
184 this.result = BUTTON_PRESSED.CANCEL;
194 FileType getFileType() {
203 BUTTON_PRESSED getResult() {
207 private void enableOkButton() {
208 this.okButton.setEnabled(addMimeTypePanel.hasSignature());