Fixed properties file behavior, TODO: deleted tag names not appear in quick tag

This commit is contained in:
Sophie Mori
2016-08-24 14:38:52 -04:00
parent 791135b6d8
commit 5faaeb06ef
4 changed files with 60 additions and 33 deletions
@@ -13,8 +13,8 @@ TagsManagerOptionsPanel.addTagNameButton.empty=Tag name text is empty.
TagsManagerOptionsPanel.addTagNameButton.containComma=Tag name may not contain commas.
TagsManagerOptionsPanel.addTagNameButton.alreadyExists=Tag name already exists.
TagsManagerOptionsPanel.jLabel1.text=Autopsy keeps a list of the tag names you have used in the past. Add more or delete them here.
TagsManagerOptionsPanel.tagNamesListLabel.text=\
TagsManagerOptionsPanel.userTagNameTextField.text=\
TagsManagerOptionsPanel.tagNamesListLabel.text=Your tag names:
TagsManagerOptionsPanel.userTagNameTextField.text=
TagsManagerOptionsPanel.addTagNameButton.text=Add Tag Name
TagsManagerOptionsPanel.deleteTagNameButton.text=Delete Tag Name
TagsManagerOptionsPanel.tagNameErrLabel.text=\
TagsManagerOptionsPanel.tagNameErrLabel.text=
@@ -180,8 +180,8 @@ public class TagsManager implements Closeable {
* Add the tag name to the tags settings.
*/
uniqueTagNames.put(newTagName.getDisplayName(), newTagName);
saveTagNamesToTagsSettings();
addNewTagNameToTagsSettings(newTagName);
return newTagName;
}
@@ -585,7 +585,7 @@ public class TagsManager implements Closeable {
}
/**
* Closes the tags manager, saving the avaialble tag names to secondary
* Closes the tags manager, saving the available tag names to secondary
* storage.
*
* @throws IOException If there is a problem closing the tags manager.
@@ -594,7 +594,7 @@ public class TagsManager implements Closeable {
@Override
@Deprecated
public synchronized void close() throws IOException {
saveTagNamesToTagsSettings();
//saveTagNamesToTagsSettings();
caseDb = null;
}
@@ -604,10 +604,10 @@ public class TagsManager implements Closeable {
*/
private void lazyLoadExistingTagNames() {
if (!tagNamesLoaded) {
//addTagNamesFromCurrentCase();
addTagNamesFromTagsSettings();
addPredefinedTagNames();
saveTagNamesToTagsSettings();
addTagNamesFromCurrentCase();
tagNamesLoaded = true;
}
}
@@ -687,7 +687,22 @@ public class TagsManager implements Closeable {
ModuleSettings.setConfigSetting(TAGS_SETTINGS_NAME, TAG_NAMES_SETTING_KEY, setting.toString());
}
}
/**
*
*/
private void addNewTagNameToTagsSettings(TagName tagName) {
String setting = ModuleSettings.getConfigSetting(TAGS_SETTINGS_NAME, TAG_NAMES_SETTING_KEY);
if (setting == null || setting.isEmpty()) {
setting = "";
}
else {
setting += ";";
}
setting += tagName.getDisplayName() + "," + tagName.getDescription() + "," + tagName.getColor().name();
ModuleSettings.setConfigSetting(TAGS_SETTINGS_NAME, TAG_NAMES_SETTING_KEY, setting);
}
/**
* Exception thrown if there is an attempt to add a duplicate tag name.
*/
@@ -13,10 +13,13 @@ import java.util.TreeSet;
import java.util.logging.Level;
import javax.swing.DefaultListModel;
import org.netbeans.spi.options.OptionsPanelController;
import org.openide.util.Exceptions;
import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.corecomponents.OptionsPanel;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
import org.sleuthkit.datamodel.TskCoreException;
/**
*
@@ -31,7 +34,7 @@ public class TagsManagerOptionsPanel extends javax.swing.JPanel implements Optio
private static final String DEFAULT_COLOR_STRING = "NONE";
private final DefaultListModel<CustomTagName> tagNamesListModel;
private final Set<CustomTagName> tagNames;
private Set<CustomTagName> tagNames;
/**
* Creates new form TagsManagerPanel
@@ -41,27 +44,23 @@ public class TagsManagerOptionsPanel extends javax.swing.JPanel implements Optio
tagNamesListModel = new DefaultListModel<>();
tagNamesList.setModel(tagNamesListModel);
tagNames = new TreeSet<>();
customizeComponents();
}
private void customizeComponents() {
addTagNamesFromTagsSettings();
tagNames = getTagNamesFromTagsSettings();
userTagNameTextField.setText("");
tagNameErrLabel.setText("");
}
private void addTagNamesFromTagsSettings() {
private Set<CustomTagName> getTagNamesFromTagsSettings() {
Set<CustomTagName> tagNamesFromSettings = new TreeSet<>();
String setting = ModuleSettings.getConfigSetting(TAGS_SETTINGS_NAME, TAG_NAMES_SETTING_KEY);
if ((setting != null) && !setting.isEmpty()) {
List<String> tagNameTuples = Arrays.asList(setting.split(";"));
for (String tagNameTuple : tagNameTuples) {
String[] tagNameAttributes = tagNameTuple.split(",");
CustomTagName tagName = new CustomTagName(tagNameAttributes[0], tagNameAttributes[1], tagNameAttributes[2]);
tagNames.add(tagName);
tagNamesFromSettings.add(tagName);
}
}
return tagNamesFromSettings;
}
private void updateTagNamesListModel() {
@@ -222,8 +221,8 @@ public class TagsManagerOptionsPanel extends javax.swing.JPanel implements Optio
}
CustomTagName tagName = new CustomTagName(newTagName, DEFAULT_DESCRIPTION, DEFAULT_COLOR_STRING);
boolean added = tagNames.add(tagName);
if (!added) {
boolean addedToTagNames = tagNames.add(tagName);
if (!addedToTagNames) {
tagNameErrLabel.setText(NbBundle.getMessage(TagsManagerOptionsPanel.class, "TagsManagerOptionsPanel.addTagNameButton.alreadyExists"));
return;
}
@@ -237,16 +236,19 @@ public class TagsManagerOptionsPanel extends javax.swing.JPanel implements Optio
private void deleteTagNameButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteTagNameButtonActionPerformed
CustomTagName tagName = tagNamesList.getSelectedValue();
if (tagName != null) {
tagNames.remove(tagName);
updateTagNamesListModel();
if (tagName == null) {
tagNameErrLabel.setText("No tag name selected.");
} else {
tagNames.remove(tagName);
updateTagNamesListModel();
if (!tagNamesListModel.isEmpty()) {
tagNamesList.setSelectedIndex(0);
}
if (!tagNamesListModel.isEmpty()) {
tagNamesList.setSelectedIndex(0);
firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
}
firePropertyChange(OptionsPanelController.PROP_CHANGED, null, null);
}
}//GEN-LAST:event_deleteTagNameButtonActionPerformed
@@ -281,9 +283,16 @@ public class TagsManagerOptionsPanel extends javax.swing.JPanel implements Optio
@Override
public void load() {
addTagNamesFromTagsSettings();
tagNames = getTagNamesFromTagsSettings();
updateTagNamesListModel();
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
if (!tagNamesListModel.isEmpty()) {
tagNamesList.setSelectedIndex(0);
}
tagNameErrLabel.setText("");
}
public void cancelChanges() {
tagNames = getTagNamesFromTagsSettings();
}
/**
@@ -42,7 +42,10 @@ public final class TagsManagerOptionsPanelController extends OptionsPanelControl
@Override
public void cancel() {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
if (changed) {
getPanel().cancelChanges();
changed = false;
}
}
@Override