public void doOk()

in commons-transfer/commons-transfer-interactive/src/main/java/org/apache/archiva/commons/transfer/interactive/NetworkProxyDialog.java [428:527]


    public void doOk( ActionEvent evt )
    {
        boolean directSelected = radioDirectConnection.isSelected();
        boolean proxiedSelected = radioProxiedConnection.isSelected();

        if ( !directSelected && !proxiedSelected )
        {
            JOptionPane.showMessageDialog( this, "Select a mode: Direct or Proxied.", "Validation Error",
                                           JOptionPane.WARNING_MESSAGE );
            return;
        }

        this.model.setEnabled( proxiedSelected );

        // Validate Host
        String host = StringUtils.trimToEmpty( txtProxyHost.getText() );
        if ( proxiedSelected && StringUtils.isBlank( host ) )
        {
            JOptionPane.showMessageDialog( this, "The proxy host name is required.", "Validation Error",
                                           JOptionPane.WARNING_MESSAGE );
            return;
        }
        if ( !StringUtils.containsNone( host, " \\/\t:" ) )
        {
            JOptionPane.showMessageDialog( this, "The proxy host name entered contains invalid characters.",
                                           "Validation Error", JOptionPane.WARNING_MESSAGE );
            return;
        }
        this.model.setHost( host );

        // Validate Port
        String portStr = StringUtils.trimToEmpty( txtProxyPort.getText() );
        if ( proxiedSelected && StringUtils.isBlank( portStr ) )
        {
            JOptionPane.showMessageDialog( this, "The proxy port is required.", "Validation Error",
                                           JOptionPane.WARNING_MESSAGE );
            return;
        }
        if ( !StringUtils.isNumeric( portStr ) )
        {
            JOptionPane.showMessageDialog( this, "The proxy port entered is invalid.", "Validation Error",
                                           JOptionPane.WARNING_MESSAGE );
            return;
        }
        int port = NumberUtils.toInt( portStr, 0 );
        IntRange validTcpPorts = new IntRange( 1, 65535 );
        if ( !validTcpPorts.containsInteger( port ) )
        {
            JOptionPane.showMessageDialog( this, "The proxy port must be a valid tcp port number, within the range of "
                + validTcpPorts.getMinimumInteger() + " and " + validTcpPorts.getMaximumInteger() + ".",
                                           "Validation Error", JOptionPane.WARNING_MESSAGE );
            return;
        }
        this.model.setPort( port );

        // Validate No Proxy List
        this.model.getNoProxyHosts().clear();
        for ( String nohost : noProxyListModel.getHosts() )
        {
            this.model.addNoProxyHost( nohost );
        }

        // Validate Auth
        boolean authEnabled = boxEnableProxyAuth.isSelected();
        this.model.setAuthEnabled( authEnabled );

        // Validate Username
        String username = StringUtils.trimToEmpty( txtProxyUsername.getText() );
        if ( authEnabled && StringUtils.isBlank( username ) )
        {
            JOptionPane.showMessageDialog( this, "The proxy username is required.", "Validation Error",
                                           JOptionPane.WARNING_MESSAGE );
            return;
        }
        this.model.setUsername( username );

        // Validate Password
        String password = new String( txtProxyPassword.getPassword() );
        if ( authEnabled && StringUtils.isBlank( password ) )
        {
            JOptionPane.showMessageDialog( this, "The proxy username is required.", "Validation Error",
                                           JOptionPane.WARNING_MESSAGE );
            return;
        }
        this.model.setPassword( password );

        // Persist network proxy settings.
        try
        {
            getTransferStore().setNetworkProxy( this.model );
            getTransferStore().save();
        }
        catch ( IOException e )
        {
            log.warn( e.getMessage(), e );
        }

        bCanceled = false;
        setVisible( false );
    }