19 package org.sleuthkit.autopsy.actions;
21 import java.awt.Window;
22 import java.awt.event.ActionEvent;
23 import java.awt.event.KeyEvent;
24 import java.util.HashMap;
25 import java.util.List;
26 import java.util.logging.Level;
27 import javax.swing.AbstractAction;
28 import javax.swing.ActionMap;
29 import javax.swing.InputMap;
30 import javax.swing.JComponent;
31 import javax.swing.JDialog;
32 import javax.swing.KeyStroke;
33 import org.openide.util.NbBundle;
34 import org.openide.windows.WindowManager;
45 "GetTagNameAndCommentDialog.noTags");
46 private final HashMap<String, TagName>
tagNames =
new HashMap<>();
78 return doDialog(WindowManager.getDefault().getMainWindow());
100 ModalityType.APPLICATION_MODAL);
104 String cancelName = NbBundle.getMessage(this.getClass(),
"GetTagNameAndCommentDialog.cancelName");
105 InputMap inputMap = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
106 inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), cancelName);
107 ActionMap actionMap = getRootPane().getActionMap();
108 actionMap.put(cancelName,
new AbstractAction() {
110 public void actionPerformed(ActionEvent e) {
118 List<TagName> currentTagNames = null;
121 }
catch (TskCoreException ex) {
124 if (null != currentTagNames && currentTagNames.isEmpty()) {
125 tagCombo.addItem(NO_TAG_NAMES_MESSAGE);
127 for (TagName tagName : currentTagNames) {
128 tagNames.put(tagName.getDisplayName(), tagName);
129 tagCombo.addItem(tagName.getDisplayName());
134 this.setLocationRelativeTo(WindowManager.getDefault().getMainWindow());
143 @SuppressWarnings(
"unchecked")
147 okButton =
new javax.swing.JButton();
149 tagCombo =
new javax.swing.JComboBox<String>();
150 tagLabel =
new javax.swing.JLabel();
155 addWindowListener(
new java.awt.event.WindowAdapter() {
156 public void windowClosing(java.awt.event.WindowEvent evt) {
162 okButton.addActionListener(
new java.awt.event.ActionListener() {
163 public void actionPerformed(java.awt.event.ActionEvent evt) {
169 cancelButton.addActionListener(
new java.awt.event.ActionListener() {
170 public void actionPerformed(java.awt.event.ActionEvent evt) {
177 org.openide.awt.Mnemonics.setLocalizedText(tagLabel,
org.openide.util.NbBundle.getMessage(
GetTagNameAndCommentDialog.class,
"GetTagNameAndCommentDialog.tagLabel.text"));
185 newTagButton.addActionListener(
new java.awt.event.ActionListener() {
186 public void actionPerformed(java.awt.event.ActionEvent evt) {
191 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(getContentPane());
192 getContentPane().setLayout(layout);
193 layout.setHorizontalGroup(
194 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
195 .addGroup(layout.createSequentialGroup()
197 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
198 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
200 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 78, Short.MAX_VALUE)
201 .addComponent(
okButton, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
202 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
204 .addGroup(layout.createSequentialGroup()
205 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
207 .addComponent(tagLabel))
208 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
209 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
211 .addComponent(
tagCombo, 0, 214, Short.MAX_VALUE))
212 .addGap(0, 0, Short.MAX_VALUE)))
216 layout.linkSize(javax.swing.SwingConstants.HORIZONTAL,
new java.awt.Component[] {cancelButton, okButton});
218 layout.setVerticalGroup(
219 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
220 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
222 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
223 .addComponent(
tagCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
224 .addComponent(tagLabel))
225 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
226 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
228 .addComponent(
commentText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
229 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 37, Short.MAX_VALUE)
230 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
237 getRootPane().setDefaultButton(
okButton);
248 tagNameAndComment = null;
253 tagNameAndComment = null;
259 if (newTagName != null) {
260 tagNames.put(newTagName.getDisplayName(), newTagName);
261 tagCombo.addItem(newTagName.getDisplayName());
262 tagCombo.setSelectedItem(newTagName.getDisplayName());
TagsManager getTagsManager()
static Case getCurrentCase()
synchronized static Logger getLogger(String name)
static TagName doDialog()