public void onOkButtonPressed()

in modules/jretools/src/main/java/org/apache/harmony/jretools/policytool/view/KeystoreEntryEditFormDialog.java [110:202]


    public void onOkButtonPressed() {
        // validation
        final StringBuilder errorStringBuilder = new StringBuilder( NOT_ALLOWED_QUOTATION_MARKS_MESSAGE );
        boolean validationFails = false;
        if ( keystoreURLTextField.getText().indexOf( '"' ) >= 0 ) {
            validationFails = true;
            errorStringBuilder.append( "Keystore URL" );
        }
        if ( keystoreTypeTextField.getText().indexOf( '"' ) >= 0 ) {
            errorStringBuilder.append( validationFails ? ", Keystore Type" : "Keystore Type" );
            validationFails = true;
        }
        if ( keystoreProviderTextField.getText().indexOf( '"' ) >= 0 ) {
            errorStringBuilder.append( validationFails ? ", Keystore Provider" : "Keystore Provider" );
            validationFails = true;
        }
        if ( keystorePasswordURLTextField.getText().indexOf( '"' ) >= 0 ) {
            errorStringBuilder.append( validationFails ? ", Keystore Password URL" : "Keystore Password URL" );
            validationFails = true;
        }

        if ( !validationFails && keystoreURLTextField.getText().length() > 0 ) {
            try {
                new URL( keystoreURLTextField.getText() );
            } catch ( final MalformedURLException mue ) {
                validationFails = true;
                errorStringBuilder.setLength( 0 );
                errorStringBuilder.append( "Keystore URL contains a malformed URL: " + mue.getMessage() );
            }
        }

        if ( !validationFails && keystorePasswordURLTextField.getText().length() > 0 ) {
            try {
                new URL( keystorePasswordURLTextField.getText() );
            } catch ( final MalformedURLException mue ) {
                validationFails = true;
                errorStringBuilder.setLength( 0 );
                errorStringBuilder.append( "Keystore Password URL contains a malformed URL: " + mue.getMessage() );
            }
        }

        if ( validationFails ) {
            Controller.logError( errorStringBuilder.toString() );
            JOptionPane.showMessageDialog( this, errorStringBuilder.toString(), "Error!", JOptionPane.ERROR_MESSAGE );
            return;
        }
        // validation end

        final KeystoreEntry keystoreEntry = initialKeystoreEntry == null ? new KeystoreEntry() : initialKeystoreEntry;

        if ( keystoreURLTextField.getText().length() == 0 && keystoreTypeTextField.getText().length() == 0 && keystoreProviderTextField.getText().length() == 0 ) {
            // We want no keystore entry!
            if ( initialKeystoreEntry != null )
                policyEntryList.remove( initialKeystoreEntry );
        } else {
            keystoreEntry.setUrl     ( keystoreURLTextField     .getText() );
            keystoreEntry.setType    ( keystoreTypeTextField    .getText() );
            keystoreEntry.setProvider( keystoreProviderTextField.getText() );

            if ( initialKeystoreEntry == null ) { // If it is a new, we have to add it to the "global" list
                // We want to add it to be the first non-comment entry
                int index = 0;
                for ( ; index < policyEntryList.size(); index++ )
                    if ( !( policyEntryList.get( index ) instanceof CommentEntry ) )
                        break;
                policyEntryList.add( index, keystoreEntry );
            }
        }

        if ( keystorePasswordURLTextField.getText().length() == 0 ) {
            // We want no keystore password URL entry!
            if ( initialKeystorePasswordURLEntry != null )
                policyEntryList.remove( initialKeystorePasswordURLEntry );
        } else {
            final KeystorePasswordURLEntry keystorePasswordURLEntry = initialKeystorePasswordURLEntry == null ? new KeystorePasswordURLEntry() : initialKeystorePasswordURLEntry;
            keystorePasswordURLEntry.setUrl( keystorePasswordURLTextField.getText() );

            if ( initialKeystorePasswordURLEntry == null ) { // If it is a new, we have to add it to the "global" list
                // We want to add it after the keystore entry
                int index = policyEntryList.indexOf( keystoreEntry );
                if ( index < 0 ) { // No such entry exists, we want it to be the first non-comment entry then
                    index = 0;
                    for ( ; index < policyEntryList.size(); index++ )
                        if ( !( policyEntryList.get( index ) instanceof CommentEntry ) )
                            break;
                } else
                    index++;  // => after the keystore entry (not before)
                policyEntryList.add( index, keystorePasswordURLEntry );
            }
        }

        finishSuccessfulEdit();
    }