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);
         }
         
     }


Reply via email to