1 20 21 package org.apache.directory.ldapstudio.valueeditors.administrativerole; 22 23 24 import org.apache.directory.ldapstudio.browser.common.widgets.BaseWidgetUtils; 25 import org.apache.directory.ldapstudio.browser.common.widgets.ListContentProposalProvider; 26 import org.apache.directory.ldapstudio.valueeditors.ValueEditorsActivator; 27 import org.apache.directory.ldapstudio.valueeditors.ValueEditorsConstants; 28 import org.eclipse.jface.dialogs.Dialog; 29 import org.eclipse.jface.dialogs.IDialogConstants; 30 import org.eclipse.jface.fieldassist.ComboContentAdapter; 31 import org.eclipse.jface.fieldassist.ContentProposalAdapter; 32 import org.eclipse.jface.fieldassist.DecoratedField; 33 import org.eclipse.jface.fieldassist.FieldDecoration; 34 import org.eclipse.jface.fieldassist.FieldDecorationRegistry; 35 import org.eclipse.jface.fieldassist.IControlCreator; 36 import org.eclipse.swt.SWT; 37 import org.eclipse.swt.layout.GridData; 38 import org.eclipse.swt.widgets.Combo; 39 import org.eclipse.swt.widgets.Composite; 40 import org.eclipse.swt.widgets.Control; 41 import org.eclipse.swt.widgets.Shell; 42 43 44 50 public class AdministrativeRoleDialog extends Dialog 51 { 52 53 54 public static final String DIALOG_TITLE = "Administrative Role Editor"; 55 56 57 private static final String [] administrativeRoleValues = new String [] 58 { "autonomousArea", "accessControlSpecificArea", "accessControlInnerArea", "subschemaAdminSpecificArea", 59 "collectiveAttributeSpecificArea", "collectiveAttributeInnerArea", "triggerExecutionSpecificArea", 60 "triggerExecutionInnerArea" }; 61 62 63 private String initialValue; 64 65 66 private DecoratedField administrativeRoleComboField; 67 68 69 private Combo administrativeRoleCombo; 70 71 72 private ContentProposalAdapter administrativeRoleCPA; 73 74 75 private String returnValue; 76 77 78 84 public AdministrativeRoleDialog( Shell parentShell, String initialValue ) 85 { 86 super( parentShell ); 87 super.setShellStyle( super.getShellStyle() | SWT.RESIZE ); 88 this.initialValue = initialValue; 89 this.returnValue = null; 90 } 91 92 93 96 protected void configureShell( Shell shell ) 97 { 98 super.configureShell( shell ); 99 shell.setText( DIALOG_TITLE ); 100 shell.setImage( ValueEditorsActivator.getDefault() 101 .getImage( ValueEditorsConstants.IMG_ADMINISTRATIVEROLEEDITOR ) ); 102 } 103 104 105 108 protected void createButtonsForButtonBar( Composite parent ) 109 { 110 super.createButtonsForButtonBar( parent ); 111 } 112 113 114 117 protected void okPressed() 118 { 119 returnValue = administrativeRoleCombo.getText(); 120 super.okPressed(); 121 } 122 123 124 127 protected Control createDialogArea( Composite parent ) 128 { 129 Composite composite = ( Composite ) super.createDialogArea( parent ); 131 GridData gd = new GridData( GridData.FILL_BOTH ); 132 gd.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH ); 133 composite.setLayoutData( gd ); 134 135 final FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault().getFieldDecoration( 137 FieldDecorationRegistry.DEC_CONTENT_PROPOSAL ); 138 administrativeRoleComboField = new DecoratedField( composite, SWT.NONE, new IControlCreator() 139 { 140 public Control createControl( Composite parent, int style ) 141 { 142 Combo combo = BaseWidgetUtils.createCombo( parent, new String [0], -1, 1 ); 143 combo.setVisibleItemCount( 20 ); 144 return combo; 145 } 146 } ); 147 administrativeRoleComboField.addFieldDecoration( fieldDecoration, SWT.TOP | SWT.LEFT, true ); 148 administrativeRoleComboField.getLayoutControl() 149 .setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) ); 150 administrativeRoleCombo = ( Combo ) administrativeRoleComboField.getControl(); 151 administrativeRoleCombo.setItems( administrativeRoleValues ); 152 administrativeRoleCombo.setText( initialValue ); 153 154 administrativeRoleCPA = new ContentProposalAdapter( administrativeRoleCombo, new ComboContentAdapter(), 156 new ListContentProposalProvider( administrativeRoleCombo.getItems() ), null, null ); 157 administrativeRoleCPA.setFilterStyle( ContentProposalAdapter.FILTER_NONE ); 158 administrativeRoleCPA.setProposalAcceptanceStyle( ContentProposalAdapter.PROPOSAL_REPLACE ); 159 160 applyDialogFont( composite ); 161 return composite; 162 } 163 164 165 170 public String getAdministrativeRole() 171 { 172 return returnValue; 173 } 174 } 175 | Popular Tags |