1 20 package org.apache.directory.ldapstudio.aciitemeditor.dialogs; 21 22 23 import java.util.Collection ; 24 25 import org.apache.directory.ldapstudio.aciitemeditor.ACIItemValueWithContext; 26 import org.apache.directory.ldapstudio.aciitemeditor.Activator; 27 import org.apache.directory.ldapstudio.aciitemeditor.widgets.ACIItemGrantsAndDenialsComposite; 28 import org.apache.directory.ldapstudio.aciitemeditor.widgets.ACIItemProtectedItemsComposite; 29 import org.apache.directory.shared.ldap.aci.GrantAndDenial; 30 import org.apache.directory.shared.ldap.aci.ProtectedItem; 31 import org.apache.directory.shared.ldap.aci.UserPermission; 32 import org.eclipse.jface.dialogs.Dialog; 33 import org.eclipse.jface.dialogs.IDialogConstants; 34 import org.eclipse.jface.dialogs.MessageDialog; 35 import org.eclipse.swt.SWT; 36 import org.eclipse.swt.events.SelectionAdapter; 37 import org.eclipse.swt.events.SelectionEvent; 38 import org.eclipse.swt.layout.GridData; 39 import org.eclipse.swt.layout.GridLayout; 40 import org.eclipse.swt.widgets.Button; 41 import org.eclipse.swt.widgets.Composite; 42 import org.eclipse.swt.widgets.Control; 43 import org.eclipse.swt.widgets.Shell; 44 import org.eclipse.swt.widgets.Spinner; 45 46 47 53 public class UserPermissionDialog extends Dialog 54 { 55 56 57 private ACIItemValueWithContext context; 58 59 60 private UserPermission initialUserPermission; 61 62 63 private UserPermission returnUserPermission; 64 65 66 private Button precedenceCheckbox = null; 67 68 69 private Spinner precedenceSpinner = null; 70 71 72 private ACIItemProtectedItemsComposite protectedItemsComposite; 73 74 75 private ACIItemGrantsAndDenialsComposite grantsAndDenialsComposite; 76 77 78 85 public UserPermissionDialog( Shell parentShell, UserPermission initialUserPermission, ACIItemValueWithContext context ) 86 { 87 super( parentShell ); 88 super.setShellStyle( super.getShellStyle() | SWT.RESIZE ); 89 this.initialUserPermission = initialUserPermission; 90 this.context = context; 91 this.returnUserPermission = null; 92 } 93 94 95 100 protected void configureShell( Shell shell ) 101 { 102 super.configureShell( shell ); 103 shell.setText( Messages.getString("UserPermissionDialog.dialog.text") ); shell.setImage( Activator.getDefault().getImage( Messages.getString("UserPermissionDialog.dialog.icon") ) ); } 106 107 108 111 protected void okPressed() 112 { 113 try 114 { 115 int precedence = precedenceCheckbox.getSelection() ? precedenceSpinner.getSelection() : -1; 116 Collection <ProtectedItem> protectedItems = protectedItemsComposite.getProtectedItems(); 117 Collection <GrantAndDenial> grantsAndDenials = grantsAndDenialsComposite.getGrantsAndDenials(); 118 returnUserPermission = new UserPermission( precedence, grantsAndDenials, protectedItems ); 119 super.okPressed(); 120 } 121 catch ( Exception e ) 122 { 123 MessageDialog.openError( getShell(), Messages.getString("UserPermissionDialog.error.invalidUserPermission"), e.getMessage() ); } 125 } 126 127 128 131 protected Control createDialogArea( Composite parent ) 132 { 133 Composite composite = ( Composite ) super.createDialogArea( parent ); 134 GridData gd = new GridData( GridData.FILL_BOTH ); 135 gd.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH ); 136 gd.heightHint = convertVerticalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH ) * 4 / 3; 137 composite.setLayoutData( gd ); 138 139 Composite spinnerComposite = new Composite( composite, SWT.NONE ); 141 spinnerComposite.setLayout( new GridLayout( 2, false ) ); 142 spinnerComposite.setLayoutData( new GridData() ); 143 precedenceCheckbox = new Button( spinnerComposite, SWT.CHECK ); 144 precedenceCheckbox.setText( Messages.getString("UserPermissionDialog.precedence.label") ); precedenceCheckbox.addSelectionListener( new SelectionAdapter() 146 { 147 public void widgetSelected( SelectionEvent e ) 148 { 149 precedenceSpinner.setEnabled( precedenceCheckbox.getSelection() ); 150 } 151 } ); 152 precedenceSpinner = new Spinner( spinnerComposite, SWT.BORDER ); 153 precedenceSpinner.setMinimum( 0 ); 154 precedenceSpinner.setMaximum( 255 ); 155 precedenceSpinner.setDigits( 0 ); 156 precedenceSpinner.setIncrement( 1 ); 157 precedenceSpinner.setPageIncrement( 10 ); 158 precedenceSpinner.setSelection( 0 ); 159 precedenceSpinner.setEnabled( false ); 160 GridData precedenceGridData = new GridData(); 161 precedenceGridData.grabExcessHorizontalSpace = true; 162 precedenceGridData.verticalAlignment = GridData.CENTER; 163 precedenceGridData.horizontalAlignment = GridData.BEGINNING; 164 precedenceGridData.widthHint = 3 * 12; 165 precedenceSpinner.setLayoutData( precedenceGridData ); 166 167 protectedItemsComposite = new ACIItemProtectedItemsComposite( composite, SWT.NONE ); 169 protectedItemsComposite.setContext( context ); 170 171 grantsAndDenialsComposite = new ACIItemGrantsAndDenialsComposite( composite, SWT.NONE ); 173 174 if ( initialUserPermission != null ) 176 { 177 if ( initialUserPermission.getPrecedence() > -1 ) 178 { 179 precedenceCheckbox.setSelection( true ); 180 precedenceSpinner.setEnabled( true ); 181 precedenceSpinner.setSelection( initialUserPermission.getPrecedence() ); 182 } 183 protectedItemsComposite.setProtectedItems( initialUserPermission.getProtectedItems() ); 184 grantsAndDenialsComposite.setGrantsAndDenials( initialUserPermission.getGrantsAndDenials() ); 185 } 186 187 applyDialogFont( composite ); 188 return composite; 189 } 190 191 192 197 public UserPermission getUserPermission() 198 { 199 return returnUserPermission; 200 } 201 202 } 203 | Popular Tags |