Author: cmarcum
Date: Sat May 2 14:44:13 2015
New Revision: 1677319
URL: http://svn.apache.org/r1677319
Log:
#i126246#
ConfigurationValidator used a ConfigurationPanel to get office and sdk paths if
they are not already valid. This panel was copied to
ConfigurationValidatorPanel to add the DialogDescriptor necessary to disable
and enable the OK button. A copy was needed because the
ConfigurationOptionsPanelController used ConfigurationPanel which is final and
could not be extended.
ConfigurationOptionsPanelController was not enabling the Apply button when
paths were valid in ConfigurationPanel. This was due to some checks being
reversed. This was corrected.
Added:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidatorPanel.form
- copied unchanged from r1673331,
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationPanel.form
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidatorPanel.java
- copied, changed from r1673331,
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationPanel.java
Modified:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationOptionsPanelController.java
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidator.java
Modified:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationOptionsPanelController.java
URL:
http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationOptionsPanelController.java?rev=1677319&r1=1677318&r2=1677319&view=diff
==============================================================================
---
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationOptionsPanelController.java
(original)
+++
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationOptionsPanelController.java
Sat May 2 14:44:13 2015
@@ -68,8 +68,9 @@ final class ConfigurationOptionsPanelCon
}
public boolean isChanged() {
- return
(panel.getOffice().trim().equals(settings.getValue(settings.KEY_OFFICE_INSTALLATION))
||
-
panel.getSDK().trim().equals(settings.getValue(settings.KEY_SDK_INSTALLATION)));
+
+ return
(!panel.getOffice().trim().equals(settings.getValue(settings.KEY_OFFICE_INSTALLATION))
||
+
!panel.getSDK().trim().equals(settings.getValue(settings.KEY_SDK_INSTALLATION)));
// return changed;
}
Modified:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidator.java
URL:
http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidator.java?rev=1677319&r1=1677318&r2=1677319&view=diff
==============================================================================
---
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidator.java
(original)
+++
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidator.java
Sat May 2 14:44:13 2015
@@ -58,8 +58,7 @@ public class ConfigurationValidator {
String title = ResourceBundle.getBundle(
"org/openoffice/extensions/config/Bundle").getString(
"ConfigurationDialog_Title"); // NOI18N
- final ConfigurationPanel panel = new
ConfigurationPanel(officePath, sdkPath);
- panel.validateWithFocus(); // set the initial error message incl.
focus on the right text field
+ final ConfigurationValidatorPanel panel = new
ConfigurationValidatorPanel(officePath, sdkPath);
DialogDescriptor ddscr = new DialogDescriptor(panel, title);
ddscr.setButtonListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
@@ -72,12 +71,15 @@ public class ConfigurationValidator {
});
// set help to this panel
ddscr.setHelpCtx(new
HelpCtx("org.openoffice.extensions.config.paths")); // NOI18N
+ panel.setDialogDescriptor(ddscr);
+ ddscr.setValid(false); // disable OK button
+ panel.validateWithFocus(); // set the initial error message incl.
focus on the right text field
Dialog d = DialogDisplayer.getDefault().createDialog(ddscr);
d.setVisible(true);
officePath =
settings.getValue(ConfigurationSettings.KEY_OFFICE_INSTALLATION);
sdkPath =
settings.getValue(ConfigurationSettings.KEY_SDK_INSTALLATION);
loc = OpenOfficeLocation.getOpenOfficeLocation(officePath,
sdkPath, false);
- valid = loc != null && loc.validate();
+ valid = (loc != null && loc.validate());
}
return valid;
}
Copied:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidatorPanel.java
(from r1673331,
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationPanel.java)
URL:
http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidatorPanel.java?p2=openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidatorPanel.java&p1=openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationPanel.java&r1=1673331&r2=1677319&rev=1677319&view=diff
==============================================================================
---
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationPanel.java
(original)
+++
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/config/ConfigurationValidatorPanel.java
Sat May 2 14:44:13 2015
@@ -32,25 +32,21 @@ import javax.swing.JPanel;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.filechooser.FileSystemView;
+import org.openide.DialogDescriptor;
import org.openide.filesystems.FileUtil;
import org.openide.util.ImageUtilities;
import org.openide.util.NbBundle;
import org.openoffice.extensions.config.office.OpenOfficeLocation;
import org.openoffice.extensions.config.office.PlatformInfo;
-final class ConfigurationPanel extends javax.swing.JPanel {
+final class ConfigurationValidatorPanel extends javax.swing.JPanel {
protected static final boolean VALIDATE_SDK = Boolean.TRUE;
protected static final boolean VALIDATE_OFFICE = Boolean.FALSE;
- //private final ConfigurationOptionsPanelController controller;
+ private DialogDescriptor ddscr;
-// ConfigurationPanel(ConfigurationOptionsPanelController controller) {
-// this.controller = controller;
-// initComponents();
-// // TODO listen to changes in form fields and call
controller.changed()
-// }
- ConfigurationPanel(String officeInstallation, String sdkInstallation) {
+ ConfigurationValidatorPanel(String officeInstallation, String
sdkInstallation) {
initComponents();
officeTextField.setText(officeInstallation);
sdkTextField.setText(sdkInstallation);
@@ -59,11 +55,10 @@ final class ConfigurationPanel extends j
sdkTextField.setEnabled(!threeLayerOffice);
browseButtonSDK.setEnabled(!threeLayerOffice);
- // initial error message
- validate();
-
officeTextField.getDocument().addDocumentListener(new
DocumentListenerImplementation(VALIDATE_OFFICE));
sdkTextField.getDocument().addDocumentListener(new
DocumentListenerImplementation(VALIDATE_SDK));
+
+
}
/** This method is called from within the constructor to
@@ -102,7 +97,7 @@ final class ConfigurationPanel extends j
sdkTextField.setToolTipText(NbBundle.getMessage(ConfigurationPanel.class,
"TF_SDKInstallation_Tooltip")); // NOI18N
- org.openide.awt.Mnemonics.setLocalizedText(browseButtonOffice,
NbBundle.getMessage(ConfigurationPanel.class, "LBL_BUTTON_BrowseOffice")); //
NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(browseButtonOffice,
NbBundle.getMessage(ConfigurationValidatorPanel.class,
"LBL_BUTTON_BrowseOffice")); // NOI18N
browseButtonOffice.setToolTipText(NbBundle.getMessage(ConfigurationPanel.class,
"BUTTON_Office_Browse")); // NOI18N
browseButtonOffice.setActionCommand("BROWSE_OFFICE");
browseButtonOffice.addActionListener(new
java.awt.event.ActionListener() {
@@ -111,7 +106,7 @@ final class ConfigurationPanel extends j
}
});
- org.openide.awt.Mnemonics.setLocalizedText(browseButtonSDK,
NbBundle.getMessage(ConfigurationPanel.class, "LBL_BUTTON_BrowseSDK")); //
NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(browseButtonSDK,
NbBundle.getMessage(ConfigurationValidatorPanel.class,
"LBL_BUTTON_BrowseSDK")); // NOI18N
browseButtonSDK.setToolTipText(NbBundle.getMessage(ConfigurationPanel.class,
"BUTTON_SDK_Browse")); // NOI18N
browseButtonSDK.setActionCommand("BROWSE_SDK");
browseButtonSDK.addActionListener(new java.awt.event.ActionListener() {
@@ -173,15 +168,15 @@ final class ConfigurationPanel extends j
.addContainerGap())
);
- descriptionTextPane.setBorder(null);
descriptionTextPane.setEditable(false);
+ descriptionTextPane.setBorder(null);
descriptionTextPane.setText(NbBundle.getMessage(ConfigurationPanel.class,
"TP_InitialSettings_Description")); // NOI18N
descriptionTextPane.setAutoscrolls(false);
descriptionTextPane.setOpaque(false);
descriptionTextPane.setRequestFocusEnabled(false);
descriptionTextPane.setVerifyInputWhenFocusTarget(false);
- org.openide.awt.Mnemonics.setLocalizedText(sunLabel,
NbBundle.getMessage(ConfigurationPanel.class,
"TP_InitialSettings_SunDevelopment")); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(sunLabel,
NbBundle.getMessage(ConfigurationValidatorPanel.class,
"TP_InitialSettings_SunDevelopment")); // NOI18N
sunLogoPanel.setOpaque(false);
@@ -197,7 +192,7 @@ final class ConfigurationPanel extends j
);
jTextPane1.setEditable(false);
- jTextPane1.setText(NbBundle.getMessage(ConfigurationPanel.class,
"TP_LegalNotice")); // NOI18N
+
jTextPane1.setText(NbBundle.getMessage(ConfigurationValidatorPanel.class,
"TP_LegalNotice")); // NOI18N
jTextPane1.setOpaque(false);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
@@ -336,6 +331,7 @@ final class ConfigurationPanel extends j
}
protected void validate(boolean val) {
+ ddscr.setValid(false); // disable OK button
if (val == VALIDATE_SDK) {
validateSDK();
}
@@ -353,13 +349,16 @@ final class ConfigurationPanel extends j
// TODO: make error message for SDK not found with OOo 3
if( !OpenOfficeLocation.validateOffice(officePath) ) {
errorTextPane.setText(NbBundle.getMessage(ConfigurationPanel.class,
"Error_OfficeInstallation")); // NOI18N
+ ddscr.setValid(false); // disable OK button
} else {
String sdk = OpenOfficeLocation.getSdk(officePath);
if (sdk != null && sdk.length() != 0) {
sdkTextField.setText(sdk);
errorTextPane.setText(""); // NOI18N
+
}
else {
+ ddscr.setValid(false); // disable OK button
validateSDK();
}
}
@@ -368,30 +367,29 @@ final class ConfigurationPanel extends j
private void validateSDK() {
if( !OpenOfficeLocation.validateSDK(sdkTextField.getText()) ) {
errorTextPane.setText(NbBundle.getMessage(ConfigurationPanel.class,
"Error_SDKInstallation")); // NOI18N
+ ddscr.setValid(false); // disable OK button
} else {
errorTextPane.setText(""); // NOI18N
+ ddscr.setValid(true); // enable OK button
}
}
private void validatePlatform() {
if( !ConfigurationValidator.validatePlatform() ) {
errorTextPane.setText(NbBundle.getMessage(ConfigurationPanel.class,
"Error_UnknownPlatform")); // NOI18N
+ ddscr.setValid(false); // disable OK button
} else {
errorTextPane.setText(""); // NOI18N
}
}
-// public void removeUpdate(DocumentEvent e) {
-// validate(e);
-// }
-//
-// public void insertUpdate(DocumentEvent e) {
-// validate(e);
-// }
-//
-// public void changedUpdate(DocumentEvent e) {
-// validate(e);
-// }
+
+ void setDialogDescriptor(DialogDescriptor ddscr) {
+ this.ddscr = ddscr;
+
+ }
+
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton browseButtonOffice;
@@ -453,15 +451,15 @@ final class ConfigurationPanel extends j
this.validationType = validationType;
}
public void insertUpdate(DocumentEvent e) {
- ConfigurationPanel.this.validate(validationType);
+ ConfigurationValidatorPanel.this.validate(validationType);
}
public void removeUpdate(DocumentEvent e) {
- ConfigurationPanel.this.validate(validationType);
+ ConfigurationValidatorPanel.this.validate(validationType);
}
public void changedUpdate(DocumentEvent e) {
- ConfigurationPanel.this.validate(validationType);
+ ConfigurationValidatorPanel.this.validate(validationType);
}
}