protected void buildGUI()

in modules/jretools/src/main/java/org/apache/harmony/jretools/policytool/view/PermissionEditFormDialog.java [132:230]


    protected void buildGUI() {
        final JPanel panel = new JPanel( new GridLayout( 4, 2, 5, 10 ) );

        permissionTypeComboBox.addActionListener( new ActionListener() {
            public void actionPerformed( final ActionEvent ae ) {
                final String classNameForSelectedType = DEFAULT_PERMISSION_TYPE_CLASS_NAMES[ permissionTypeComboBox.getSelectedIndex() ];
                if ( classNameForSelectedType != null ) {
                    permissionTypeTextField.setText( classNameForSelectedType );

                    targetNameTextField.setText( null );
                    targetNameComboBoxModel.removeAllElements();
                    targetNameComboBoxModel.addElement( DEFAULT_TARGET_NAME_COMBO_BOX_ITEM );

                    actionsTextField.setText( null );
                    actionsComboBoxModel.removeAllElements();
                    actionsComboBoxModel.addElement( DEFAULT_ACTIONS_COMBO_BOX_ITEM );

                    final String[][] targetNameActions = permissionTypeTargetNamesActionsMap.get( DEFAULT_PERMISSION_TYPE_NAMES[ permissionTypeComboBox.getSelectedIndex() ] );
                    if ( targetNameActions[ 0 ] == null )
                        targetNameTextField.setEnabled( false );
                    else {
                        targetNameTextField.setEnabled( true );
                        for ( final String targetName : targetNameActions[ 0 ] )
                            targetNameComboBoxModel.addElement( targetName );
                    }
                    if ( targetNameActions[ 1 ] == null )
                        actionsTextField.setEnabled( false );
                    else {
                        actionsTextField.setEnabled( true );
                        for ( final String actions : targetNameActions[ 1 ] )
                            actionsComboBoxModel.addElement( actions );
                    }
                }
            }
        } );
        panel.add( permissionTypeComboBox );
        panel.add( permissionTypeTextField );

        targetNameComboBox.addActionListener( new ActionListener() {
            public void actionPerformed( final ActionEvent ae ) {
                if ( targetNameComboBox.getSelectedIndex() > 0 )
                    targetNameTextField.setText( targetNameComboBox.getSelectedItem().toString() );
            }
        } );
        panel.add( targetNameComboBox );
        panel.add( targetNameTextField );

        actionsComboBox.addActionListener( new ActionListener() {
            public void actionPerformed( final ActionEvent ae ) {
                if ( actionsComboBox.getSelectedIndex() > 0 )
                    actionsTextField.setText( actionsTextField.getText() + ( actionsTextField.getText().length() > 0 ? ", " : "" ) + actionsComboBox.getSelectedItem().toString() );
            }
        } );
        panel.add( actionsComboBox );
        panel.add( actionsTextField );

        panel.add( new JLabel( "Signed By:" ) );
        panel.add( signedByTextField );

        if ( initialPermission != null ) {
            // Should we choose anything in the permission type combo box?
            if ( initialPermission.getClassName() != null )
                for ( int i = 0; i < DEFAULT_PERMISSION_TYPE_CLASS_NAMES.length; i++ )
                    if ( DEFAULT_PERMISSION_TYPE_CLASS_NAMES[ i ] != null && DEFAULT_PERMISSION_TYPE_CLASS_NAMES[ i ].equals( initialPermission.getClassName() ) ) {
                        permissionTypeComboBox.setSelectedIndex( i );
                        break;
                    }
            permissionTypeTextField.setText( initialPermission.getClassName() );

            final String[][] targetNameActions = permissionTypeTargetNamesActionsMap.get( DEFAULT_PERMISSION_TYPE_NAMES[ permissionTypeComboBox.getSelectedIndex() ] );
            final String[]   targetNames       = targetNameActions[ 0 ];
            final String[]   actions           = targetNameActions[ 1 ];

            // Should we choose anything in the target name combo box?
            if ( initialPermission.getTargetName() != null && targetNames != null )
                for ( int i = 0; i < targetNames.length; i++ )
                    if ( targetNames[ i ].equals( initialPermission.getTargetName() ) ) {
                        targetNameComboBox.setSelectedIndex( i+1 ); // +1 for the constant "Target Name:" item
                        break;
                    }
            targetNameTextField.setText( initialPermission.getTargetName() );

            // Should we choose anything in the actions combo box?
            if ( initialPermission.getActions() != null && actions != null )
                for ( int i = 0; i < actions.length; i++ )
                    if ( actions[ i ].equals( initialPermission.getActions() ) ) {
                        actionsComboBox.setSelectedIndex( i ); // +1 for the constant "Actions:" item
                        break;
                    }
            actionsTextField.setText( initialPermission.getActions() );

            signedByTextField.setText( initialPermission.getSignedBy() );
        }


        final JPanel flowPanel = new JPanel();
        flowPanel.add( panel );
        add( new JScrollPane( flowPanel ), BorderLayout.CENTER );
    }