protected void okPressed()

in PluginsAndFeatures/azure-toolkit-for-eclipse/com.microsoft.azuretools.core/src/com/microsoft/azuretools/core/ui/commoncontrols/NewCertificateDialog.java [287:427]


    protected void okPressed() {
        if (txtPwd.getText() == null
                || txtPwd.getText().isEmpty()) {
            errorTitle = Messages.newCertDlgCrtErTtl;
            errorMessage = Messages.newCertDlgPwNul;
            PluginUtil.displayErrorDialog(this.getShell(),
                    errorTitle, errorMessage);
            return;
        } else if (txtConfirmPwd.getText() == null
                || txtConfirmPwd.getText().isEmpty()) {
            errorTitle = Messages.newCertDlgCrtErTtl;
            errorMessage = Messages.newCertDlgCfPwNul;
            PluginUtil.displayErrorDialog(this.getShell(),
                    errorTitle, errorMessage);
            return;
        } else if (!(txtPwd.getText() == null)
                && !(txtPwd.getText().isEmpty())) {
            // check for password length
            if (txtPwd.getText().length() < 6) {
                PluginUtil.displayErrorDialog(getShell(),
                        Messages.newCertDlgPwdWrng, Messages.newCertDlgPwLength);
                return;
            }
            Pattern pattern = Pattern.compile("^\\S+$");
            Matcher match = pattern.matcher(txtPwd.getText());
            if (!match.find()) {
                errorTitle = Messages.newCertDlgPwdWrng;
                errorMessage = Messages.newCertDlgPwNtCor;
                PluginUtil.displayErrorDialog(getShell(),
                        errorTitle, errorMessage);
                return;
            }
        }
        if (!(txtConfirmPwd.getText() == null)
                && !(txtConfirmPwd.getText().isEmpty())) {
            // check for password length
            if (txtConfirmPwd.getText().length() < 6) {
                PluginUtil.displayErrorDialog(getShell(),
                        Messages.newCertDlgPwdWrng, Messages.newCertDlgPwLength);
                return;
            }
            Pattern pattern = Pattern.compile("^\\S+$");
            Matcher match = pattern.matcher(txtConfirmPwd.getText());
            if (!match.find()) {
                errorTitle = Messages.newCertDlgPwdWrng;
                errorMessage = Messages.newCertDlgPwNtCor;
                PluginUtil.displayErrorDialog(getShell(),
                        errorTitle, errorMessage);
                return;
            }
        }
        if (!(txtPwd.getText()).equals(txtConfirmPwd.getText())) {
            errorTitle = Messages.newCertDlgPwNtMtch;
            errorMessage = Messages.newCerDlgPwNtMsg;
            PluginUtil.displayErrorDialog(getShell(),
                    errorTitle, errorMessage);
            return;
        }
        if (txtCNName.getText() == null || txtCNName.getText().isEmpty()) {
             errorTitle = Messages.newCertDlgCrtErTtl;
             errorMessage = Messages.newCertDlgCNNull;
             PluginUtil.displayErrorDialog(this.getShell(),
                     errorTitle, errorMessage);
             return;
        }
        if (txtCertFile.getText() == null || txtCertFile.getText().isEmpty()) {
            errorTitle = Messages.newCertDlgCrtErTtl;
            errorMessage = Messages.newCertDlgCerNul;
            PluginUtil.displayErrorDialog(this.getShell(),
                    errorTitle, errorMessage);
            return;
        } else if (txtPFXFile.getText() == null
                || txtPFXFile.getText().isEmpty()) {
            errorTitle = Messages.newCertDlgCrtErTtl;
            errorMessage = Messages.newCertDlgPFXNull;
            PluginUtil.displayErrorDialog(this.getShell(),
                    errorTitle, errorMessage);
            return;
        }
        String certFilePath = txtCertFile.getText();
        String pfxFilePath = txtPFXFile.getText();
        if (certFilePath.lastIndexOf(File.separator) == -1
                || pfxFilePath.lastIndexOf(File.separator) == -1) {
            errorTitle = Messages.newCertDlgCrtErTtl;
            errorMessage = Messages.newCerDlgInvldPth;
            PluginUtil.displayErrorDialog(this.getShell(),
                    errorTitle, errorMessage);
            return;
        }
        if ((!(certFilePath.endsWith(".cer") || certFilePath.endsWith(".CER")))
                || (!(pfxFilePath.endsWith(".pfx") || pfxFilePath.endsWith(".PFX")))) {
            errorTitle = Messages.newCertDlgCrtErTtl;
            errorMessage = Messages.newCerDlgInvdFlExt;
            PluginUtil.displayErrorDialog(this.getShell(),
                    errorTitle, errorMessage);
            return;
        }
        String certFolder = certFilePath.substring(0,
                certFilePath.lastIndexOf(File.separator));
        String pfxFolder = pfxFilePath.substring(0,
                pfxFilePath.lastIndexOf(File.separator));
        File certFile = new File(certFolder);
        File pfxFile = new File(pfxFolder);
        if (!(certFile.exists() && pfxFile.exists())) {
            errorTitle = Messages.newCertDlgCrtErTtl;
            errorMessage = Messages.newCerDlgInvldPth;
            PluginUtil.displayErrorDialog(this.getShell(),
                    errorTitle, errorMessage);
            return;
        }
        else {
            try {
                PluginUtil.showBusy(true, getShell());
                String alias = Messages.newCertDlgAlias;
                // fix for #2663
                if (jdkPath == null || jdkPath.isEmpty()) {
                    jdkPath = WAEclipseHelperMethods.jdkDefaultDirectory(null);
                }
                com.microsoft.azuretools.azurecommons.util.CerPfxUtil.createCertificate(txtCertFile.getText(),
                        txtPFXFile.getText(), alias , txtPwd.getText(), txtCNName.getText(), jdkPath);

                //At this point certificates are created , populate the values for caller
                if(newCertificateDialogHolder != null ){
                    newCertificateDialogHolder.setCerFilePath(txtCertFile.getText());
                    newCertificateDialogHolder.setPfxFilePath(txtPFXFile.getText());
                    newCertificateDialogHolder.setPassword(txtPFXFile.getText());
                    newCertificateDialogHolder.setCnName(txtCNName.getText());
                }
                PluginUtil.showBusy(false, getShell());
            } catch (Exception e) {
                PluginUtil.showBusy(false, getShell());
                Activator.getDefault().log(e.getMessage(), e);
                errorTitle = Messages.newCertDlgCrtErTtl;
                errorMessage = Messages.newCerDlgCrtCerEr;
                PluginUtil.displayErrorDialog(this.getShell(),
                        errorTitle, errorMessage);
                return;
            }
        }
        super.okPressed();
    }