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