diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/Persona.java b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/Persona.java index b0184e2991..654dfc5562 100644 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/Persona.java +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/Persona.java @@ -254,6 +254,18 @@ public class Persona { return getPersonaByUUID(uuidStr); } + /** + * Sets the comment of this persona + * + * @param name The new comment. + * + * @throws CentralRepoException If there is an error. + */ + public void setComment(String comment) throws CentralRepoException { + String updateClause = "UPDATE personas SET comment = \"" + comment + "\" WHERE id = " + id; + CentralRepository.getInstance().executeUpdateSQL(updateClause); + } + /** * Sets the name of this persona * diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties index 24fdf1c0ff..5f96c698a2 100644 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/Bundle.properties @@ -14,20 +14,6 @@ AddAccountDialog.okBtn.text=OK PersonaManagerTopComponent.editBtn.text=Edit Persona PersonaDetailsDialog.cancelBtn.text=Cancel PersonaDetailsDialog.okBtn.text=OK -PersonaDetailsPanel.deleteCaseBtn.text=Delete -PersonaDetailsPanel.addCaseBtn.text=Add -PersonaDetailsPanel.casesLbl.text=Cases found in: -PersonaDetailsPanel.deleteAliasBtn.text=Delete -PersonaDetailsPanel.addAliasBtn.text=Add -PersonaDetailsPanel.aliasesLabel.text=Aliases: -PersonaDetailsPanel.deleteMetadataBtn.text=Delete -PersonaDetailsPanel.addMetadataBtn.text=Add -PersonaDetailsPanel.metadataLabel.text=Metadata: -PersonaDetailsPanel.deleteAccountBtn.text=Delete -PersonaDetailsPanel.addAccountBtn.text=Add -PersonaDetailsPanel.accountsLbl.text=Accounts: -PersonaDetailsPanel.nameField.text= -PersonaDetailsPanel.nameLbl.text=Name: AddAliasDialog.accountsLbl.text=Account: AddAliasDialog.okBtn.text=OK AddAliasDialog.cancelBtn.text=Cancel @@ -54,3 +40,21 @@ AddAccountDialog.typeLbl.text=Type: AddAccountDialog.identiferLbl.text=Identifier: AddAccountDialog.identifierTextField.text= PersonaManagerTopComponent.deleteBtn.text=Delete Persona +PersonaDetailsPanel.casesLbl.text=Cases found in: +PersonaDetailsPanel.deleteAliasBtn.text=Delete +PersonaDetailsPanel.addAliasBtn.text=Add +PersonaDetailsPanel.aliasesLabel.text=Aliases: +PersonaDetailsPanel.deleteMetadataBtn.text=Delete +PersonaDetailsPanel.addMetadataBtn.text=Add +PersonaDetailsPanel.metadataLabel.text=Metadata: +PersonaDetailsPanel.deleteAccountBtn.text=Delete +PersonaDetailsPanel.addAccountBtn.text=Add +PersonaDetailsPanel.accountsLbl.text=Accounts: +PersonaDetailsPanel.commentField.text= +PersonaDetailsPanel.commentLbl.text=Comment: +PersonaDetailsPanel.nameField.text= +PersonaDetailsPanel.nameLbl.text=Name: +PersonaDetailsPanel.examinerLbl.text=Created by: +PersonaDetailsPanel.examinerField.text= +PersonaDetailsPanel.creationDateLbl.text=Created on: +PersonaDetailsPanel.creationDateField.text= diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.form b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.form index c4200d166b..1ee91512ea 100644 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.form +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.form @@ -37,18 +37,12 @@ - - - - + - - - - + @@ -61,12 +55,7 @@ - - - - - - + @@ -74,13 +63,22 @@ + + + + + + + + + + + + + + - - - - - @@ -99,6 +97,11 @@ + + + + + @@ -107,7 +110,19 @@ + + + + + + + + + + + + @@ -143,17 +158,57 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -168,9 +223,6 @@ - - - @@ -312,22 +364,6 @@ - - - - - - - - - - - - - - - - diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.java b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.java index a7c76b7ad4..2b09647f28 100644 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/persona/PersonaDetailsPanel.java @@ -20,8 +20,10 @@ package org.sleuthkit.autopsy.centralrepository.persona; import java.awt.Component; import java.awt.event.ActionEvent; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.logging.Level; import javax.swing.JButton; @@ -34,7 +36,9 @@ import org.openide.windows.TopComponent; import org.openide.util.NbBundle.Messages; import org.openide.windows.RetainLocation; import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoAccount; +import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoExaminer; import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepoException; +import org.sleuthkit.autopsy.centralrepository.datamodel.CentralRepository; import org.sleuthkit.autopsy.centralrepository.datamodel.CorrelationCase; import org.sleuthkit.autopsy.centralrepository.datamodel.Persona; import org.sleuthkit.autopsy.centralrepository.datamodel.PersonaAccount; @@ -282,6 +286,12 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { private void initComponents() { detailsPanel = new javax.swing.JPanel(); + examinerLbl = new javax.swing.JLabel(); + examinerField = new javax.swing.JTextField(); + creationDateLbl = new javax.swing.JLabel(); + creationDateField = new javax.swing.JTextField(); + commentLbl = new javax.swing.JLabel(); + commentField = new javax.swing.JTextField(); nameLbl = new javax.swing.JLabel(); nameField = new javax.swing.JTextField(); accountsLbl = new javax.swing.JLabel(); @@ -302,18 +312,26 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { casesLbl = new javax.swing.JLabel(); casesTablePane = new javax.swing.JScrollPane(); casesTable = new javax.swing.JTable(); - addCaseBtn = new javax.swing.JButton(); - deleteCaseBtn = new javax.swing.JButton(); + + org.openide.awt.Mnemonics.setLocalizedText(examinerLbl, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.examinerLbl.text")); // NOI18N + + examinerField.setEditable(false); + examinerField.setText(org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.examinerField.text")); // NOI18N + + org.openide.awt.Mnemonics.setLocalizedText(creationDateLbl, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.creationDateLbl.text")); // NOI18N + + creationDateField.setEditable(false); + creationDateField.setText(org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.creationDateField.text")); // NOI18N + + org.openide.awt.Mnemonics.setLocalizedText(commentLbl, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.commentLbl.text")); // NOI18N + + commentField.setEditable(false); + commentField.setText(org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.commentField.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(nameLbl, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.nameLbl.text")); // NOI18N nameField.setEditable(false); nameField.setText(org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.nameField.text")); // NOI18N - nameField.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - nameFieldActionPerformed(evt); - } - }); org.openide.awt.Mnemonics.setLocalizedText(accountsLbl, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.accountsLbl.text")); // NOI18N @@ -393,12 +411,6 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { )); casesTablePane.setViewportView(casesTable); - org.openide.awt.Mnemonics.setLocalizedText(addCaseBtn, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.addCaseBtn.text")); // NOI18N - addCaseBtn.setEnabled(false); - - org.openide.awt.Mnemonics.setLocalizedText(deleteCaseBtn, org.openide.util.NbBundle.getMessage(PersonaDetailsPanel.class, "PersonaDetailsPanel.deleteCaseBtn.text")); // NOI18N - deleteCaseBtn.setEnabled(false); - javax.swing.GroupLayout detailsPanelLayout = new javax.swing.GroupLayout(detailsPanel); detailsPanel.setLayout(detailsPanelLayout); detailsPanelLayout.setHorizontalGroup( @@ -406,11 +418,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { .addGroup(detailsPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(accountsTablePane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 549, Short.MAX_VALUE) - .addGroup(detailsPanelLayout.createSequentialGroup() - .addComponent(nameLbl) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(nameField)) + .addComponent(accountsTablePane, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(accountsLbl, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(metadataLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(metadataTablePane, javax.swing.GroupLayout.Alignment.TRAILING) @@ -418,12 +426,20 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { .addComponent(aliasesTablePane) .addComponent(casesLbl, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(casesTablePane) + .addGroup(detailsPanelLayout.createSequentialGroup() + .addComponent(commentLbl) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(commentField)) + .addGroup(detailsPanelLayout.createSequentialGroup() + .addComponent(examinerLbl) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(examinerField, javax.swing.GroupLayout.PREFERRED_SIZE, 222, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(creationDateLbl) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(creationDateField, javax.swing.GroupLayout.PREFERRED_SIZE, 222, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(detailsPanelLayout.createSequentialGroup() .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(detailsPanelLayout.createSequentialGroup() - .addComponent(addCaseBtn) - .addGap(18, 18, 18) - .addComponent(deleteCaseBtn)) .addGroup(detailsPanelLayout.createSequentialGroup() .addComponent(addAccountBtn) .addGap(18, 18, 18) @@ -436,13 +452,27 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { .addComponent(addAliasBtn) .addGap(18, 18, 18) .addComponent(deleteAliasBtn))) - .addGap(0, 0, Short.MAX_VALUE))) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(detailsPanelLayout.createSequentialGroup() + .addComponent(nameLbl) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(nameField))) .addContainerGap()) ); detailsPanelLayout.setVerticalGroup( detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(detailsPanelLayout.createSequentialGroup() - .addContainerGap() + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(examinerLbl) + .addComponent(examinerField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(creationDateLbl) + .addComponent(creationDateField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(commentField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(commentLbl)) + .addGap(20, 20, 20) .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(nameLbl) .addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) @@ -474,40 +504,27 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { .addComponent(casesLbl) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(casesTablePane, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(detailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(addCaseBtn) - .addComponent(deleteCaseBtn)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 561, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(detailsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(detailsPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 559, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(detailsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(detailsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) ); }// //GEN-END:initComponents - private void nameFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nameFieldActionPerformed - - }//GEN-LAST:event_nameFieldActionPerformed - // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel accountsLbl; private javax.swing.JTable accountsTable; private javax.swing.JScrollPane accountsTablePane; private javax.swing.JButton addAccountBtn; private javax.swing.JButton addAliasBtn; - private javax.swing.JButton addCaseBtn; private javax.swing.JButton addMetadataBtn; private javax.swing.JLabel aliasesLabel; private javax.swing.JTable aliasesTable; @@ -515,11 +532,16 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { private javax.swing.JLabel casesLbl; private javax.swing.JTable casesTable; private javax.swing.JScrollPane casesTablePane; + private javax.swing.JTextField commentField; + private javax.swing.JLabel commentLbl; + private javax.swing.JTextField creationDateField; + private javax.swing.JLabel creationDateLbl; private javax.swing.JButton deleteAccountBtn; private javax.swing.JButton deleteAliasBtn; - private javax.swing.JButton deleteCaseBtn; private javax.swing.JButton deleteMetadataBtn; private javax.swing.JPanel detailsPanel; + private javax.swing.JTextField examinerField; + private javax.swing.JLabel examinerLbl; private javax.swing.JLabel metadataLabel; private javax.swing.JTable metadataTable; private javax.swing.JScrollPane metadataTablePane; @@ -531,12 +553,22 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { "PersonaDetailsPanel_load_exception_Title=Initialization failure", "PersonaDetailsPanel_load_exception_msg=Failed to load persona",}) private void loadPersona(Component parent, Persona persona) { + String examiner; + String creationDate; + String comment; String name; Collection accounts; Collection metadata; Collection aliases; Collection cases; try { + examiner = persona.getExaminer().getLoginName(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + Date cDate = new Date(persona.getCreatedDate()); + creationDate = dateFormat.format(cDate); + + comment = persona.getComment(); name = persona.getName(); accounts = persona.getPersonaAccounts(); metadata = persona.getMetadata(); @@ -551,6 +583,9 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { return; } this.currentPersona = persona; + this.examinerField.setText(examiner); + this.creationDateField.setText(creationDate); + this.commentField.setText(comment); this.nameField.setText(name); this.currentAccounts.addAll(accounts); this.currentMetadata.addAll(metadata); @@ -560,6 +595,9 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { void clear() { currentPersona = null; + examinerField.setText(""); + creationDateField.setText(""); + commentField.setText(""); nameField.setText(mode == PersonaDetailsMode.CREATE ? Persona.getDefaultName() : ""); currentAccounts = new ArrayList<>(); currentMetadata = new ArrayList<>(); @@ -569,17 +607,16 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { metadataToAdd.clear(); aliasesToAdd.clear(); nameField.setEditable(false); + commentField.setEditable(false); initializeFields(); addAccountBtn.setEnabled(false); addMetadataBtn.setEnabled(false); addAliasBtn.setEnabled(false); - addCaseBtn.setEnabled(false); deleteAccountBtn.setEnabled(false); deleteMetadataBtn.setEnabled(false); deleteAliasBtn.setEnabled(false); - deleteCaseBtn.setEnabled(false); } /** @@ -678,14 +715,26 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { } void enableEditUIComponents() { + commentField.setEditable(true); nameField.setEditable(true); addAccountBtn.setEnabled(true); addMetadataBtn.setEnabled(true); addAliasBtn.setEnabled(true); - //addCaseBtn.setEnabled(true); //todo } void initializeFields() { + if (mode == PersonaDetailsMode.CREATE) { + try { + CentralRepoExaminer examiner = CentralRepository.getInstance().getOrInsertExaminer(System.getProperty("user.name")); + examinerField.setText(examiner.getLoginName()); + } catch (CentralRepoException e) { + logger.log(Level.SEVERE, "Failed to access central repository", e); + JOptionPane.showMessageDialog(this, + Bundle.PersonaDetailsPanel_CentralRepoErr_msg(), + Bundle.PersonaDetailsPanel_CentralRepoErr_Title(), + JOptionPane.ERROR_MESSAGE); + } + } updateAccountsTable(); updateMetadataTable(); updateAliasesTable(); @@ -719,7 +768,9 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { "PersonaDetailsPanel_CentralRepoErr_msg=Failure to write to Central Repository", "PersonaDetailsPanel_CentralRepoErr_Title=Central Repository failure", "PersonaDetailsPanel_EmptyName_msg=Persona name cannot be empty", - "PersonaDetailsPanel_EmptyName_Title=Empty persona name",}) + "PersonaDetailsPanel_EmptyName_Title=Empty persona name", + "PersonaDetailsPanel_EmptyComment_msg=Persona comment cannot be empty", + "PersonaDetailsPanel_EmptyComment_Title=Empty persona comment",}) Persona okHandler() { if (accountsToAdd.size() + currentAccounts.size() < 1) { JOptionPane.showMessageDialog(this, @@ -729,6 +780,13 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { return null; } + if (commentField.getText().isEmpty()) { + JOptionPane.showMessageDialog(this, + Bundle.PersonaDetailsPanel_EmptyComment_msg(), + Bundle.PersonaDetailsPanel_EmptyComment_Title(), + JOptionPane.ERROR_MESSAGE); + return null; + } if (nameField.getText().isEmpty()) { JOptionPane.showMessageDialog(this, Bundle.PersonaDetailsPanel_EmptyName_msg(), @@ -743,7 +801,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { try { PAccount firstAccount = accountsToAdd.get(0); ret = Persona.createPersonaForAccount(nameField.getText(), - "", Persona.PersonaStatus.ACTIVE, firstAccount.account, + commentField.getText(), Persona.PersonaStatus.ACTIVE, firstAccount.account, firstAccount.justification, firstAccount.confidence); for (int i = 1; i < accountsToAdd.size(); i++) { ret.addAccount(accountsToAdd.get(i).account, @@ -768,6 +826,7 @@ public final class PersonaDetailsPanel extends javax.swing.JPanel { case EDIT: try { ret = currentPersona; + currentPersona.setComment(commentField.getText()); currentPersona.setName(nameField.getText()); for (PAccount acc : accountsToAdd) { ret.addAccount(acc.account, acc.justification, acc.confidence);