From ab2acb7baaa3d8da76a7fe968e7817ea2987f5ca Mon Sep 17 00:00:00 2001 From: Eugene Livis Date: Thu, 8 Sep 2016 12:32:24 -0400 Subject: [PATCH] Added panel controler for Auto Ingest options panel --- Experimental/nbproject/project.xml | 9 ++ ...m => AdvancedAutoIngestSettingsPanel.form} | 38 ++--- ...a => AdvancedAutoIngestSettingsPanel.java} | 64 ++++----- ...anel.form => AutoIngestSettingsPanel.form} | 0 ...anel.java => AutoIngestSettingsPanel.java} | 0 .../AutoIngestSettingsPanelController.java | 131 ++++++++++++++++++ 6 files changed, 191 insertions(+), 51 deletions(-) rename Experimental/src/org/sleuthkit/autopsy/experimental/configuration/{AdvancedOptionsPanel.form => AdvancedAutoIngestSettingsPanel.form} (82%) rename Experimental/src/org/sleuthkit/autopsy/experimental/configuration/{AdvancedOptionsPanel.java => AdvancedAutoIngestSettingsPanel.java} (81%) rename Experimental/src/org/sleuthkit/autopsy/experimental/configuration/{OptionsPanel.form => AutoIngestSettingsPanel.form} (100%) rename Experimental/src/org/sleuthkit/autopsy/experimental/configuration/{OptionsPanel.java => AutoIngestSettingsPanel.java} (100%) create mode 100644 Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AutoIngestSettingsPanelController.java diff --git a/Experimental/nbproject/project.xml b/Experimental/nbproject/project.xml index 36d3c4660f..de061ccc9d 100644 --- a/Experimental/nbproject/project.xml +++ b/Experimental/nbproject/project.xml @@ -6,6 +6,15 @@ org.sleuthkit.autopsy.experimental + + org.netbeans.modules.options.api + + + + 1 + 1.44.1 + + org.openide.awt diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedOptionsPanel.form b/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedAutoIngestSettingsPanel.form similarity index 82% rename from Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedOptionsPanel.form rename to Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedAutoIngestSettingsPanel.form index 3c5689f031..bd92514bee 100644 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedOptionsPanel.form +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedAutoIngestSettingsPanel.form @@ -113,10 +113,10 @@ - + - + @@ -126,14 +126,14 @@ - + - + @@ -156,17 +156,17 @@ - + - + - + @@ -187,7 +187,7 @@ - + @@ -197,10 +197,10 @@ - + - + @@ -210,17 +210,17 @@ - + - + - + @@ -249,22 +249,22 @@ - + - + - + - + @@ -285,14 +285,14 @@ - + - + diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedOptionsPanel.java b/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedAutoIngestSettingsPanel.java similarity index 81% rename from Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedOptionsPanel.java rename to Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedAutoIngestSettingsPanel.java index f78cb56644..26b508daaf 100644 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedOptionsPanel.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AdvancedAutoIngestSettingsPanel.java @@ -25,11 +25,11 @@ import javax.swing.JComponent; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.core.UserPreferences; -class AdvancedOptionsPanel extends javax.swing.JPanel { +class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel { private static final long serialVersionUID = 1L; - AdvancedOptionsPanel(OptionsPanel.OptionsUiMode mode) { + AdvancedAutoIngestSettingsPanel(AutoIngestSettingsPanel.OptionsUiMode mode) { initComponents(); tbWarning.setLineWrap(true); tbWarning.setWrapStyleWord(true); @@ -58,18 +58,18 @@ class AdvancedOptionsPanel extends javax.swing.JPanel { numberOfFileIngestThreadsComboBox.setSelectedItem(UserPreferences.numberOfFileIngestThreads()); } - private void load(OptionsPanel.OptionsUiMode mode) { + private void load(AutoIngestSettingsPanel.OptionsUiMode mode) { initThreadCount(); spSecondsBetweenJobs.setValue(AutoIngestUserPreferences.getSecondsToSleepBetweenCases()); spMaximumRetryAttempts.setValue(AutoIngestUserPreferences.getMaxNumTimesToProcessImage()); int maxJobsPerCase = AutoIngestUserPreferences.getMaxConcurrentJobsForOneCase(); spConcurrentJobsPerCase.setValue(maxJobsPerCase); - spSecondsBetweenJobs.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM); - spMaximumRetryAttempts.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM); - cbTimeoutEnabled.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM); - lbSecondsBetweenJobs.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM); - lbTimeoutText.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM); - lbRetriesAllowed.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM); + spSecondsBetweenJobs.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.UTILITY || mode == AutoIngestSettingsPanel.OptionsUiMode.AIM); + spMaximumRetryAttempts.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.UTILITY || mode == AutoIngestSettingsPanel.OptionsUiMode.AIM); + cbTimeoutEnabled.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.UTILITY || mode == AutoIngestSettingsPanel.OptionsUiMode.AIM); + lbSecondsBetweenJobs.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.UTILITY || mode == AutoIngestSettingsPanel.OptionsUiMode.AIM); + lbTimeoutText.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.UTILITY || mode == AutoIngestSettingsPanel.OptionsUiMode.AIM); + lbRetriesAllowed.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.UTILITY || mode == AutoIngestSettingsPanel.OptionsUiMode.AIM); cbTimeoutEnabled.setSelected(UserPreferences.getIsTimeOutEnabled()); int timeOutHrs = UserPreferences.getProcessTimeOutHrs(); spTimeoutHours.setValue(timeOutHrs); @@ -90,7 +90,7 @@ class AdvancedOptionsPanel extends javax.swing.JPanel { uiComponents.add(spTimeoutHours); uiComponents.add(spConcurrentJobsPerCase); - String disabledText = " " + NbBundle.getMessage(OptionsPanel.class, "AdvancedOptionsPanel.ItemDisabled.text"); + String disabledText = " " + NbBundle.getMessage(AutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.ItemDisabled.text"); for (JComponent item : uiComponents) { if (!item.isEnabled()) { item.setToolTipText(item.getToolTipText() + disabledText); @@ -135,7 +135,7 @@ class AdvancedOptionsPanel extends javax.swing.JPanel { lbSecondsBetweenJobs = new javax.swing.JLabel(); spSecondsBetweenJobs = new javax.swing.JSpinner(); lbNumberOfThreads = new javax.swing.JLabel(); - numberOfFileIngestThreadsComboBox = new javax.swing.JComboBox(); + numberOfFileIngestThreadsComboBox = new javax.swing.JComboBox<>(); lbRestartRequired = new javax.swing.JLabel(); lbRetriesAllowed = new javax.swing.JLabel(); spMainScrollPane = new javax.swing.JScrollPane(); @@ -150,13 +150,13 @@ class AdvancedOptionsPanel extends javax.swing.JPanel { spTimeoutHours = new javax.swing.JSpinner(); lbSecondsBetweenJobsSeconds = new javax.swing.JLabel(); - org.openide.awt.Mnemonics.setLocalizedText(lbSecondsBetweenJobs, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbSecondsBetweenJobs.text")); // NOI18N - lbSecondsBetweenJobs.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbSecondsBetweenJobs.toolTipText")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(lbSecondsBetweenJobs, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbSecondsBetweenJobs.text")); // NOI18N + lbSecondsBetweenJobs.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbSecondsBetweenJobs.toolTipText")); // NOI18N spSecondsBetweenJobs.setModel(new javax.swing.SpinnerNumberModel(30, 30, 3600, 10)); - spSecondsBetweenJobs.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.spSecondsBetweenJobs.toolTipText")); // NOI18N + spSecondsBetweenJobs.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.spSecondsBetweenJobs.toolTipText")); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(lbNumberOfThreads, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbNumberOfThreads.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(lbNumberOfThreads, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbNumberOfThreads.text")); // NOI18N numberOfFileIngestThreadsComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -164,33 +164,33 @@ class AdvancedOptionsPanel extends javax.swing.JPanel { } }); - lbRestartRequired.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/experimental/images/warning16.png"))); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(lbRestartRequired, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbRestartRequired.text")); // NOI18N + lbRestartRequired.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/warning16.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(lbRestartRequired, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbRestartRequired.text")); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(lbRetriesAllowed, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbRetriesAllowed.text")); // NOI18N - lbRetriesAllowed.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbRetriesAllowed.toolTipText")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(lbRetriesAllowed, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.text")); // NOI18N + lbRetriesAllowed.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.toolTipText")); // NOI18N lbRetriesAllowed.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM); tbWarning.setEditable(false); tbWarning.setColumns(20); tbWarning.setFont(new java.awt.Font("Monospaced", 1, 14)); // NOI18N tbWarning.setRows(5); - tbWarning.setText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.tbWarning.text")); // NOI18N + tbWarning.setText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.tbWarning.text")); // NOI18N tbWarning.setAutoscrolls(false); spMainScrollPane.setViewportView(tbWarning); - org.openide.awt.Mnemonics.setLocalizedText(lbTimeoutText, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbTimeoutText.text")); // NOI18N - lbTimeoutText.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbTimeoutText.toolTipText")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(lbTimeoutText, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbTimeoutText.text")); // NOI18N + lbTimeoutText.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbTimeoutText.toolTipText")); // NOI18N lbTimeoutText.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { lbTimeoutTextMouseClicked(evt); } }); - org.openide.awt.Mnemonics.setLocalizedText(lbTimeoutHours, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbTimeoutHours.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(lbTimeoutHours, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbTimeoutHours.text")); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(cbTimeoutEnabled, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.cbTimeoutEnabled.text")); // NOI18N - cbTimeoutEnabled.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.cbTimeoutEnabled.toolTipText")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(cbTimeoutEnabled, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.text")); // NOI18N + cbTimeoutEnabled.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.toolTipText")); // NOI18N cbTimeoutEnabled.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { cbTimeoutEnabledItemStateChanged(evt); @@ -198,19 +198,19 @@ class AdvancedOptionsPanel extends javax.swing.JPanel { }); spMaximumRetryAttempts.setModel(new javax.swing.SpinnerNumberModel(2, 0, 9999999, 1)); - spMaximumRetryAttempts.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.spMaximumRetryAttempts.toolTipText")); // NOI18N + spMaximumRetryAttempts.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.spMaximumRetryAttempts.toolTipText")); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(lbConcurrentJobsPerCase, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbConcurrentJobsPerCase.text")); // NOI18N - lbConcurrentJobsPerCase.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbConcurrentJobsPerCase.toolTipText")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(lbConcurrentJobsPerCase, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.text")); // NOI18N + lbConcurrentJobsPerCase.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.toolTipText")); // NOI18N lbConcurrentJobsPerCase.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM); spConcurrentJobsPerCase.setModel(new javax.swing.SpinnerNumberModel(3, 1, 100, 1)); - spConcurrentJobsPerCase.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbConcurrentJobsPerCase.toolTipText")); // NOI18N + spConcurrentJobsPerCase.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedOptionsPanel.lbConcurrentJobsPerCase.toolTipText")); // NOI18N spTimeoutHours.setModel(new javax.swing.SpinnerNumberModel(60, 1, 100000, 1)); - spTimeoutHours.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.spTimeoutHours.toolTipText")); // NOI18N + spTimeoutHours.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.spTimeoutHours.toolTipText")); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(lbSecondsBetweenJobsSeconds, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbSecondsBetweenJobsSeconds.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(lbSecondsBetweenJobsSeconds, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbSecondsBetweenJobsSeconds.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); @@ -289,7 +289,7 @@ class AdvancedOptionsPanel extends javax.swing.JPanel { .addContainerGap(241, Short.MAX_VALUE)) ); - spMaximumRetryAttempts.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.spMaximumRetryAttempts.AccessibleContext.accessibleDescription")); // NOI18N + spMaximumRetryAttempts.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.spMaximumRetryAttempts.AccessibleContext.accessibleDescription")); // NOI18N }// //GEN-END:initComponents private void cbTimeoutEnabledItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cbTimeoutEnabledItemStateChanged diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/OptionsPanel.form b/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AutoIngestSettingsPanel.form similarity index 100% rename from Experimental/src/org/sleuthkit/autopsy/experimental/configuration/OptionsPanel.form rename to Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AutoIngestSettingsPanel.form diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/OptionsPanel.java b/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AutoIngestSettingsPanel.java similarity index 100% rename from Experimental/src/org/sleuthkit/autopsy/experimental/configuration/OptionsPanel.java rename to Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AutoIngestSettingsPanel.java diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AutoIngestSettingsPanelController.java b/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AutoIngestSettingsPanelController.java new file mode 100644 index 0000000000..a72e8ded37 --- /dev/null +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/configuration/AutoIngestSettingsPanelController.java @@ -0,0 +1,131 @@ +/* + * Autopsy Forensic Browser + * + * Copyright 2013-2014 Basis Technology Corp. + * Contact: carrier sleuthkit org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.sleuthkit.autopsy.experimental.configuration; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import javax.swing.JComponent; +import org.netbeans.spi.options.OptionsPanelController; +import org.openide.util.HelpCtx; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; +import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; +import java.util.logging.Level; +import org.sleuthkit.autopsy.coreutils.Logger; + +@OptionsPanelController.TopLevelRegistration(categoryName = "#OptionsCategory_Name_Auto_Ingest", + iconBase = "org/sleuthkit/autopsy/images/User-Group-icon-green32.png", + position = 3, + keywords = "#OptionsCategory_Keywords_Auto_Ingest_Settings", + keywordsCategory = "Auto Ingest") +public final class AutoIngestSettingsPanelController extends OptionsPanelController { + + private AutoIngestSettingsPanel panel; + private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + private boolean changed; + private static final Logger logger = Logger.getLogger(AutoIngestSettingsPanelController.class.getName()); + + @Override + public void update() { + getPanel().load(); + changed = false; + } + + @Override + public void applyChanges() { + getPanel().store(); + changed = false; + } + + @Override + public void cancel() { + } + + @Override + public boolean isValid() { + return getPanel().valid(); + } + + @Override + public boolean isChanged() { + return changed; + } + + @Override + public HelpCtx getHelpCtx() { + return null; + } + + @Override + public JComponent getComponent(Lookup masterLookup) { + return getPanel(); + } + + @Override + public void addPropertyChangeListener(PropertyChangeListener l) { + if (pcs.getPropertyChangeListeners().length == 0) { + pcs.addPropertyChangeListener(l); + } + } + + @Override + public void removePropertyChangeListener(PropertyChangeListener l) { + /** + * Note the NetBeans Framework does not appear to call this at all. We + * are using NetBeans 7.3.1 Build 201306052037. Perhaps in a future + * version of the Framework this will be resolved, but for now, simply + * don't unregister anything and add one time only in the + * addPropertyChangeListener() method above. + */ + } + + private AutoIngestSettingsPanel getPanel() { + if (panel == null) { + panel = new AutoIngestSettingsPanel(this); + } + return panel; + } + + void changed() { + if (!changed) { + changed = true; + + try { + pcs.firePropertyChange(OptionsPanelController.PROP_CHANGED, false, true); + } catch (Exception e) { + logger.log(Level.SEVERE, "GeneralOptionsPanelController listener threw exception", e); //NON-NLS + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); + } + } + + try { + pcs.firePropertyChange(OptionsPanelController.PROP_VALID, null, null); + } catch (Exception e) { + logger.log(Level.SEVERE, "GeneralOptionsPanelController listener threw exception", e); //NON-NLS + MessageNotifyUtil.Notify.show( + NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "GeneralOptionsPanelController.moduleErr.msg"), + MessageNotifyUtil.MessageType.ERROR); + } + } +} +