19 package org.sleuthkit.autopsy.centralrepository.optionspanel;
21 import java.awt.Component;
22 import java.awt.Dimension;
23 import java.awt.Toolkit;
24 import java.util.List;
25 import java.util.logging.Level;
26 import javax.swing.DefaultListCellRenderer;
27 import javax.swing.DefaultListModel;
28 import javax.swing.JDialog;
29 import javax.swing.JFrame;
30 import javax.swing.JOptionPane;
31 import javax.swing.event.ListSelectionEvent;
32 import javax.swing.event.ListSelectionListener;
33 import org.openide.util.Exceptions;
34 import org.openide.util.NbBundle.Messages;
35 import org.openide.windows.WindowManager;
48 private final DefaultListModel<EamOrganization>
rulesListModel =
new DefaultListModel<>();
51 @Messages({
"ManageOrganizationsDialog.title.text=Manage Organizations"})
56 super((JFrame) WindowManager.getDefault().getMainWindow(),
57 Bundle.ManageOrganizationsDialog_title_text(),
63 private static final long serialVersionUID = 1L;
65 @SuppressWarnings(
"rawtypes")
67 public Component getListCellRendererComponent(javax.swing.JList list, Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
68 Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
79 Exceptions.printStackTrace(ex);
85 Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
86 setLocation((screenDimension.width - getSize().width) / 2, (screenDimension.height - getSize().height) / 2);
91 rulesListModel.clear();
93 if (orgs.size() > 0) {
95 rulesListModel.addElement(
org);
96 if (selected != null &&
org.getOrgID() == selected.getOrgID()) {
100 if (orgs.contains(selected)) {
115 @Messages({
"ManageOrganizationsDialog.pocNameLabel.text=Point of Contact Name:",
116 "ManageOrganizationsDialog.deleteButton.text=Delete",
117 "ManageOrganizationsDialog.newButton.text=New",
118 "ManageOrganizationsDialog.closeButton.text=Close",
119 "ManageOrganizationsDialog.orgNameLabel.text=Organization Name:",
120 "ManageOrganizationsDialog.pocEmailLabel.text=Point of Contact Email:",
121 "ManageOrganizationsDialog.editButton.text=Edit",
122 "ManageOrganizationsDialog.pocPhoneLabel.text=Point of Contact Phone:",
123 "ManageOrganizationsDialog.orgDescriptionTextArea.text=Organizations are used to provide additional contact information for the content they are associated with.",
124 "ManageOrganizationsDialog.orgListLabel.text=Organizations",
125 "ManageOrganizationsDialog.orgDetailsLabel.text=Organization Details",
126 "ManageOrganizationsDialog.confirmDeletion.title=Confirm Deletion",
127 "ManageOrganizationsDialog.confirmDeletion.message=Are you sure you want to delete the selected organization from the central repo?",
128 "ManageOrganizationsDialog.unableToDeleteOrg.title=Unable to Delete",
129 "ManageOrganizationsDialog.unableToDeleteOrg.message=Unable to delete selected organizaiton."})
135 @SuppressWarnings(
"unchecked")
161 setMinimumSize(
new java.awt.Dimension(545, 450));
168 organizationList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
182 newButton.setMargin(
new java.awt.Insets(2, 6, 2, 6));
183 newButton.setMaximumSize(
new java.awt.Dimension(70, 23));
184 newButton.setMinimumSize(
new java.awt.Dimension(70, 23));
185 newButton.setPreferredSize(
new java.awt.Dimension(70, 23));
186 newButton.addActionListener(
new java.awt.event.ActionListener() {
187 public void actionPerformed(java.awt.event.ActionEvent evt) {
193 deleteButton.setMargin(
new java.awt.Insets(2, 6, 2, 6));
194 deleteButton.setMaximumSize(
new java.awt.Dimension(70, 23));
195 deleteButton.setMinimumSize(
new java.awt.Dimension(70, 23));
196 deleteButton.setPreferredSize(
new java.awt.Dimension(70, 23));
197 deleteButton.addActionListener(
new java.awt.event.ActionListener() {
198 public void actionPerformed(java.awt.event.ActionEvent evt) {
204 closeButton.addActionListener(
new java.awt.event.ActionListener() {
205 public void actionPerformed(java.awt.event.ActionEvent evt) {
212 jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);
231 editButton.setMaximumSize(
new java.awt.Dimension(70, 23));
232 editButton.setMinimumSize(
new java.awt.Dimension(70, 23));
233 editButton.setPreferredSize(
new java.awt.Dimension(70, 23));
234 editButton.addActionListener(
new java.awt.event.ActionListener() {
235 public void actionPerformed(java.awt.event.ActionEvent evt) {
244 manageOrganizationsPanelLayout.setHorizontalGroup(
245 manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
246 .addGroup(manageOrganizationsPanelLayout.createSequentialGroup()
248 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
249 .addComponent(
orgDescriptionScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)
250 .addComponent(
orgListLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
251 .addGroup(manageOrganizationsPanelLayout.createSequentialGroup()
252 .addComponent(
newButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
253 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
254 .addComponent(
editButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
255 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
256 .addComponent(
deleteButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
257 .addComponent(
orgListScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 224, javax.swing.GroupLayout.PREFERRED_SIZE))
258 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
259 .addComponent(
jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
260 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
261 .addGroup(manageOrganizationsPanelLayout.createSequentialGroup()
262 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
263 .addGroup(manageOrganizationsPanelLayout.createSequentialGroup()
264 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
266 .addGroup(manageOrganizationsPanelLayout.createSequentialGroup()
268 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,
false)
269 .addComponent(
pocNameLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
270 .addComponent(
orgNameLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
271 .addComponent(
pocPhoneLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
272 .addComponent(
pocEmailLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
273 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
274 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
280 .addGroup(manageOrganizationsPanelLayout.createSequentialGroup()
281 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
282 .addComponent(
orgDetailsLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
283 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
285 manageOrganizationsPanelLayout.setVerticalGroup(
286 manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
287 .addGroup(manageOrganizationsPanelLayout.createSequentialGroup()
289 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
290 .addGroup(manageOrganizationsPanelLayout.createSequentialGroup()
292 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
293 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
295 .addComponent(
orgNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
296 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
297 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
298 .addComponent(
pocNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
300 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
301 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
302 .addComponent(
pocPhoneTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
304 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
305 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
306 .addComponent(
pocEmailTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
307 .addComponent(
pocEmailLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
308 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 235, Short.MAX_VALUE)
311 .addGroup(manageOrganizationsPanelLayout.createSequentialGroup()
312 .addComponent(
orgDescriptionScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
313 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
315 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
316 .addComponent(
orgListScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE)
317 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
318 .addGroup(manageOrganizationsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
319 .addComponent(
newButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
320 .addComponent(
deleteButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
321 .addComponent(
editButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
327 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(getContentPane());
328 getContentPane().setLayout(layout);
329 layout.setHorizontalGroup(
330 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
331 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
335 layout.setVerticalGroup(
336 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
337 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
345 if (orgToDelete != null) {
346 if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(WindowManager.getDefault().getMainWindow(),
347 Bundle.ManageOrganizationsDialog_confirmDeletion_message(),
348 Bundle.ManageOrganizationsDialog_confirmDeletion_title(),
349 JOptionPane.YES_NO_OPTION)) {
354 JOptionPane.showMessageDialog(null,
355 ex.getMessage(), Bundle.ManageOrganizationsDialog_unableToDeleteOrg_title(), JOptionPane.WARNING_MESSAGE);
356 LOGGER.log(Level.INFO,
"Was unable to delete organization from central repository", ex);
380 if (orgToEdit != null) {
418 return newOrg != null;
426 boolean isSelected = (selectedOrg != null);
427 boolean isDefaultOrg =
false;
428 if(selectedOrg != null){
432 editButton.setEnabled(isSelected && (! isDefaultOrg));
433 deleteButton.setEnabled(isSelected && (! isDefaultOrg));
443 if (e.getValueIsAdjusting()) {
448 if (selected != null) {
static final long serialVersionUID
void editButtonActionPerformed(java.awt.event.ActionEvent evt)
javax.swing.JTextField pocPhoneTextField
void closeButtonActionPerformed(java.awt.event.ActionEvent evt)
javax.swing.JTextField orgNameTextField
void valueChanged(ListSelectionEvent e)
javax.swing.JList< EamOrganization > organizationList
javax.swing.JButton deleteButton
static final Logger LOGGER
final DefaultListModel< EamOrganization > rulesListModel
void deleteButtonActionPerformed(java.awt.event.ActionEvent evt)
static boolean isDefaultOrg(EamOrganization org)
javax.swing.JScrollPane orgDescriptionScrollPane
javax.swing.JPanel manageOrganizationsPanel
javax.swing.JScrollPane manageOrganizationsScrollPane
javax.swing.JLabel pocPhoneLabel
javax.swing.JLabel pocEmailLabel
ManageOrganizationsDialog()
javax.swing.JLabel pocNameLabel
javax.swing.JLabel orgDetailsLabel
javax.swing.JLabel orgListLabel
javax.swing.JSeparator jSeparator1
List< EamOrganization > getOrganizations()
void newButtonActionPerformed(java.awt.event.ActionEvent evt)
static EamDb getInstance()
javax.swing.JTextArea orgDescriptionTextArea
javax.swing.JScrollPane orgListScrollPane
javax.swing.JTextField pocNameTextField
void populateListAndSelect(EamOrganization selected)
javax.swing.JButton editButton
synchronized static Logger getLogger(String name)
javax.swing.JLabel orgNameLabel
void deleteOrganization(EamOrganization organizationToDelete)
void setButtonsEnabled(EamOrganization selectedOrg)
javax.swing.JButton closeButton
javax.swing.JButton newButton
EamOrganization getNewOrg()
javax.swing.JTextField pocEmailTextField
EamOrganization getNewOrg()