You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2006/12/30 20:19:07 UTC
svn commit: r491293 [3/3] - in
/directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor: ./ META-INF/
icons/ lib/ src/ src/main/ src/main/java/ src/main/java/org/
src/main/java/org/apache/
src/main/java/org/apache/directory/ldapstudio/aciitemeditor/ ...
Modified: directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/ACIItemUserPermissionsComposite.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/ACIItemUserPermissionsComposite.java?view=diff&rev=491293&r1=491291&r2=491293
==============================================================================
--- directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/ACIItemUserPermissionsComposite.java (original)
+++ directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/ACIItemUserPermissionsComposite.java Sat Dec 30 11:19:04 2006
@@ -20,12 +20,12 @@
package org.apache.directory.ldapstudio.aciitemeditor.widgets;
-import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
+import org.apache.directory.ldapstudio.aciitemeditor.Activator;
import org.apache.directory.ldapstudio.aciitemeditor.dialogs.TextDialog;
import org.apache.directory.ldapstudio.aciitemeditor.dialogs.UserPermissionDialog;
import org.apache.directory.shared.ldap.aci.GrantAndDenial;
@@ -51,8 +51,7 @@
/**
- * This composite contains GUI elements to edit ACI item user permissions.
-
+ * This composite contains GUI elements to add, edit and delete ACI user permissions.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
@@ -62,37 +61,43 @@
/** The inner composite for all the content */
private Composite composite = null;
-
+
/** The description label */
private Label label = null;
-
+
/** The table control for the table viewer */
private Table table = null;
-
+
/** The table viewer containing all user classes */
private TableViewer tableViewer = null;
-
+
/** The composite containing the buttons */
private Composite buttonComposite = null;
-
+
/** The add button */
private Button addButton = null;
-
+
/** The select all button */
private Button editButton = null;
-
+
/** The deselect all button */
private Button deleteButton = null;
-
+
/** The selected user permissions, also input of the table viewer */
List<UserPermissionWrapper> userPermissionWrappers = new ArrayList<UserPermissionWrapper>();
-
-
+
+ /**
+ * UserPermissionWrapper are used as input of the table viewer.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
private class UserPermissionWrapper
{
/** The user permission bean. */
private UserPermission userPermission;
-
+
+
/**
* Creates a new instance of UserPermissionWrapper.
*
@@ -102,85 +107,95 @@
{
this.userPermission = userPermission;
}
-
+
+
+ /**
+ * Returns a user-friedly string, displayed in the table.
+ */
public String toString()
{
- return getUserPermissionValue();
- }
- private String getUserPermissionValue()
- {
- if(userPermission == null)
+ if ( userPermission == null )
{
- return "<UNKNOWN>";
+ return "<UNKNOWN>"; //$NON-NLS-1$
}
- else
+ else
{
StringBuffer buffer = new StringBuffer();
- if(userPermission.getPrecedence() > -1)
+ if ( userPermission.getPrecedence() > -1 )
{
buffer.append( '(' );
buffer.append( userPermission.getPrecedence() );
buffer.append( ')' );
buffer.append( ' ' );
}
- for(Iterator<ProtectedItem> it = ((Collection<ProtectedItem>)userPermission.getProtectedItems()).iterator(); it.hasNext(); )
+ for ( Iterator<ProtectedItem> it = ( ( Collection<ProtectedItem> ) userPermission.getProtectedItems() )
+ .iterator(); it.hasNext(); )
{
ProtectedItem item = it.next();
- String s = ACIItemProtectedItemsComposite.ProtectedItemWrapper.classToDisplayMap.get( item.getClass() );
+ String s = ACIItemProtectedItemsComposite.ProtectedItemWrapper.classToDisplayMap.get( item
+ .getClass() );
buffer.append( s );
-
- if(it.hasNext())
+
+ if ( it.hasNext() )
{
buffer.append( ',' );
}
}
- buffer.append( ": " );
- for(Iterator<GrantAndDenial> it = ((Collection<GrantAndDenial>)userPermission.getGrantsAndDenials()).iterator(); it.hasNext(); )
+ buffer.append( ':' );
+ buffer.append( ' ' );
+ for ( Iterator<GrantAndDenial> it = ( ( Collection<GrantAndDenial> ) userPermission
+ .getGrantsAndDenials() ).iterator(); it.hasNext(); )
{
GrantAndDenial gd = it.next();
- String s = (gd.isGrant() ? "+" : "-") + gd.getMicroOperation().getName();
- buffer.append( s );
-
- if(it.hasNext())
+ buffer.append( gd.isGrant() ? '+' : '-' );
+ buffer.append( gd.getMicroOperation().getName() );
+
+ if ( it.hasNext() )
{
buffer.append( ',' );
}
}
-
+
String s = buffer.toString();
s = s.replace( '\r', ' ' );
s = s.replace( '\n', ' ' );
- if(s.length() > 50)
+ if ( s.length() > 50 )
{
String temp = s;
s = temp.substring( 0, 25 );
- s = s + "...";
+ s = s + "..."; //$NON-NLS-1$
s = s + temp.substring( temp.length() - 25, temp.length() );
}
return s;
}
}
}
-
-
+
+
+ /**
+ * Creates a new instance of ACIItemUserPermissionsComposite.
+ *
+ * @param parent
+ * @param style
+ */
public ACIItemUserPermissionsComposite( Composite parent, int style )
{
super( parent, style );
-
+
GridLayout layout = new GridLayout();
layout.horizontalSpacing = 0;
layout.verticalSpacing = 0;
layout.marginHeight = 0;
layout.marginWidth = 0;
setLayout( layout );
-
- createComposite();
GridData layoutData = new GridData();
layoutData.horizontalAlignment = GridData.FILL;
layoutData.grabExcessHorizontalSpace = true;
layoutData.verticalAlignment = GridData.CENTER;
setLayoutData( layoutData );
+
+ createComposite();
}
@@ -190,33 +205,33 @@
*/
private void createComposite()
{
-
+
GridData labelGridData = new GridData();
labelGridData.horizontalSpan = 2;
labelGridData.verticalAlignment = GridData.CENTER;
labelGridData.grabExcessHorizontalSpace = true;
labelGridData.horizontalAlignment = GridData.FILL;
-
+
GridLayout gridLayout = new GridLayout();
gridLayout.makeColumnsEqualWidth = false;
gridLayout.numColumns = 2;
-
+
GridData gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.grabExcessHorizontalSpace = true;
gridData.verticalSpan = 1;
gridData.verticalAlignment = GridData.BEGINNING;
-
+
composite = new Composite( this, SWT.NONE );
- composite.setLayoutData(gridData);
- composite.setLayout(gridLayout);
-
- label = new Label(composite, SWT.NONE);
- label.setText("User Permissions:");
- label.setLayoutData(labelGridData);
-
+ composite.setLayoutData( gridData );
+ composite.setLayout( gridLayout );
+
+ label = new Label( composite, SWT.NONE );
+ label.setText( Messages.getString( "ACIItemUserPermissionsComposite.descripton" ) ); //$NON-NLS-1$
+ label.setLayoutData( labelGridData );
+
createTable();
-
+
createButtonComposite();
}
@@ -249,16 +264,17 @@
userPermissionSelected();
}
} );
-
- tableViewer.addDoubleClickListener( new IDoubleClickListener(){
+
+ tableViewer.addDoubleClickListener( new IDoubleClickListener()
+ {
public void doubleClick( DoubleClickEvent event )
{
editUserPermission();
}
} );
}
-
-
+
+
/**
* This method initializes buttons
*
@@ -269,17 +285,20 @@
deleteButtonGridData.horizontalAlignment = GridData.FILL;
deleteButtonGridData.grabExcessHorizontalSpace = false;
deleteButtonGridData.verticalAlignment = GridData.BEGINNING;
-
+ deleteButtonGridData.widthHint = Activator.getButtonWidth( this );
+
GridData editButtonGridData = new GridData();
editButtonGridData.horizontalAlignment = GridData.FILL;
editButtonGridData.grabExcessHorizontalSpace = false;
editButtonGridData.verticalAlignment = GridData.BEGINNING;
-
+ editButtonGridData.widthHint = Activator.getButtonWidth( this );
+
GridData addButtonGridData = new GridData();
addButtonGridData.horizontalAlignment = GridData.FILL;
addButtonGridData.grabExcessHorizontalSpace = false;
addButtonGridData.verticalAlignment = GridData.BEGINNING;
-
+ addButtonGridData.widthHint = Activator.getButtonWidth( this );
+
GridLayout gridLayout = new GridLayout();
gridLayout.marginWidth = 0;
gridLayout.marginHeight = 0;
@@ -288,54 +307,61 @@
gridData.grabExcessHorizontalSpace = false;
gridData.grabExcessVerticalSpace = false;
gridData.verticalAlignment = GridData.FILL;
-
+
buttonComposite = new Composite( composite, SWT.NONE );
- buttonComposite.setLayoutData(gridData);
+ buttonComposite.setLayoutData( gridData );
buttonComposite.setLayout( gridLayout );
-
- addButton = new Button(buttonComposite, SWT.NONE);
- addButton.setText("Add...");
- addButton.setLayoutData(addButtonGridData);
- addButton.addSelectionListener( new SelectionAdapter(){
+
+ addButton = new Button( buttonComposite, SWT.NONE );
+ addButton.setText( Messages.getString( "ACIItemUserPermissionsComposite.add.button" ) ); //$NON-NLS-1$
+ addButton.setLayoutData( addButtonGridData );
+ addButton.addSelectionListener( new SelectionAdapter()
+ {
public void widgetSelected( SelectionEvent e )
{
addUserPermission();
}
} );
-
- editButton = new Button(buttonComposite, SWT.NONE);
- editButton.setText("Edit...");
- editButton.setLayoutData(editButtonGridData);
- editButton.addSelectionListener( new SelectionAdapter(){
+
+ editButton = new Button( buttonComposite, SWT.NONE );
+ editButton.setText( Messages.getString( "ACIItemUserPermissionsComposite.edit.button" ) ); //$NON-NLS-1$
+ editButton.setLayoutData( editButtonGridData );
+ editButton.addSelectionListener( new SelectionAdapter()
+ {
public void widgetSelected( SelectionEvent e )
{
editUserPermission();
}
} );
editButton.setEnabled( false );
-
- deleteButton = new Button(buttonComposite, SWT.NONE);
- deleteButton.setText("Delete");
- deleteButton.setLayoutData(deleteButtonGridData);
- deleteButton.addSelectionListener( new SelectionAdapter(){
+
+ deleteButton = new Button( buttonComposite, SWT.NONE );
+ deleteButton.setText( Messages.getString( "ACIItemUserPermissionsComposite.delete.button" ) ); //$NON-NLS-1$
+ deleteButton.setLayoutData( deleteButtonGridData );
+ deleteButton.addSelectionListener( new SelectionAdapter()
+ {
public void widgetSelected( SelectionEvent e )
{
deleteUserPermission();
}
} );
deleteButton.setEnabled( false );
-
+
}
-
-
+
+ /**
+ * Shows or hides this composite.
+ *
+ * @see org.eclipse.swt.widgets.control#setVisible(boolean)
+ */
public void setVisible( boolean visible )
{
super.setVisible( visible );
- ((GridData)getLayoutData()).heightHint = visible ? -1 : 0;
+ ( ( GridData ) getLayoutData() ).heightHint = visible ? -1 : 0;
}
-
-
+
+
/**
* Sets the user permissions.
*
@@ -343,24 +369,25 @@
*/
public void setUserPermissions( Collection<UserPermission> userPermissions )
{
+ userPermissionWrappers.clear();
+
for ( UserPermission userPermission : userPermissions )
{
- UserPermissionWrapper userPermissionWrapper = new UserPermissionWrapper(userPermission);
-
+ UserPermissionWrapper userPermissionWrapper = new UserPermissionWrapper( userPermission );
+
userPermissionWrappers.add( userPermissionWrapper );
}
tableViewer.refresh();
}
-
+
/**
* Returns the user permissions as selected by the user.
*
* @return the user permissions
- * @throws ParseException
*/
- public Collection<UserPermission> getUserPermissions() throws ParseException
+ public Collection<UserPermission> getUserPermissions()
{
Collection<UserPermission> userPermissions = new ArrayList<UserPermission>();
@@ -371,74 +398,84 @@
return userPermissions;
}
-
+
+
/**
*
* @return the user permission that is selected in the table viewer, or null.
*/
- private UserPermissionWrapper getSelectedUserPermissionWrapper()
+ private UserPermissionWrapper getSelectedUserPermissionWrapper()
{
UserPermissionWrapper userPermissionWrapper = null;
-
+
IStructuredSelection selection = ( IStructuredSelection ) tableViewer.getSelection();
if ( !selection.isEmpty() )
{
Object element = selection.getFirstElement();
if ( element instanceof UserPermissionWrapper )
{
- userPermissionWrapper = (UserPermissionWrapper) element;
+ userPermissionWrapper = ( UserPermissionWrapper ) element;
}
}
-
+
return userPermissionWrapper;
}
-
-
- private void addUserPermission()
+
+
+ /**
+ * Opens the UserPermissionDialog and adds the composed
+ * user permission to the list.
+ */
+ private void addUserPermission()
{
UserPermissionDialog dialog = new UserPermissionDialog( getShell(), null );
if ( dialog.open() == TextDialog.OK && dialog.getUserPermission() != null )
{
- UserPermissionWrapper userPermissionWrapper = new UserPermissionWrapper(dialog.getUserPermission());
+ UserPermissionWrapper userPermissionWrapper = new UserPermissionWrapper( dialog.getUserPermission() );
userPermissionWrappers.add( userPermissionWrapper );
-
+
tableViewer.refresh();
}
}
-
-
- private void editUserPermission()
+
+
+ /**
+ * Opens the UserPermissionDialog with the currently selected
+ * user permission and puts the modified user permission into the list.
+ */
+ private void editUserPermission()
{
UserPermissionWrapper oldUserPermissionWrapper = getSelectedUserPermissionWrapper();
- if(oldUserPermissionWrapper != null)
+ if ( oldUserPermissionWrapper != null )
{
UserPermissionDialog dialog = new UserPermissionDialog( getShell(), oldUserPermissionWrapper.userPermission );
if ( dialog.open() == TextDialog.OK )
{
- // remove old
- userPermissionWrappers.remove( oldUserPermissionWrapper );
-
- // create and add new
- UserPermissionWrapper newUserPermissionWrapper = new UserPermissionWrapper(dialog.getUserPermission());
- userPermissionWrappers.add( newUserPermissionWrapper );
-
+ oldUserPermissionWrapper.userPermission = dialog.getUserPermission();
tableViewer.refresh();
}
}
}
-
-
- private void deleteUserPermission()
+
+
+ /**
+ * Deletes the currently selected user permission from list.
+ */
+ private void deleteUserPermission()
{
UserPermissionWrapper userPermissionWrapper = getSelectedUserPermissionWrapper();
- if(userPermissionWrapper != null)
+ if ( userPermissionWrapper != null )
{
userPermissionWrappers.remove( userPermissionWrapper );
tableViewer.refresh();
}
}
-
-
+
+
+ /**
+ * Called when an user permission is selected in table viewer.
+ * Updates the enabled/disabled state of the buttons.
+ */
private void userPermissionSelected()
{
UserPermissionWrapper userPermissionWrapper = getSelectedUserPermissionWrapper();
Added: directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/ACIItemVisualEditorComposite.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/ACIItemVisualEditorComposite.java?view=auto&rev=491293
==============================================================================
--- directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/ACIItemVisualEditorComposite.java (added)
+++ directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/ACIItemVisualEditorComposite.java Sat Dec 30 11:19:04 2006
@@ -0,0 +1,269 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.ldapstudio.aciitemeditor.widgets;
+
+
+import java.text.ParseException;
+import java.util.Collection;
+
+import org.apache.directory.shared.ldap.aci.ACIItem;
+import org.apache.directory.shared.ldap.aci.ACIItemParser;
+import org.apache.directory.shared.ldap.aci.AuthenticationLevel;
+import org.apache.directory.shared.ldap.aci.ItemFirstACIItem;
+import org.apache.directory.shared.ldap.aci.UserFirstACIItem;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * This is the main widget of the ACI item visual editor. It manages
+ * the lifecyle of all other ACI item widgets. In particular it
+ * shows/hides the userFirst and itemFirst widgets depending on
+ * the user's selection.
+ * <p>
+ * It extends ScrolledComposite.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ACIItemVisualEditorComposite extends ScrolledComposite implements WidgetModifyListener
+{
+ /** The inner composite for all the content */
+ private Composite composite = null;
+
+ /** The general composite contains id-tag, precedence, auth-level, userFirst/itemFirst */
+ private ACIItemGeneralComposite generalComposite = null;
+
+ /** The user classes composite used for userFirst selection */
+ private ACIItemUserClassesComposite userFirstUserClassesComposite = null;
+
+ /** The user permission composite used for userFirst selection */
+ private ACIItemUserPermissionsComposite userFirstUserPermissionsComposite = null;
+
+ /** The protected items composite used for itemFirst selection */
+ private ACIItemProtectedItemsComposite itemFirstProtectedItemsComposite = null;
+
+ /** The item permission composite used for itemFirst selection */
+ private ACIItemItemPermissionsComposite itemFirstItemPermissionsComposite = null;
+
+
+ /**
+ * Creates a new instance of ACIItemComposite.
+ *
+ * @param parent
+ * @param style
+ */
+ public ACIItemVisualEditorComposite( Composite parent, int style )
+ {
+ super( parent, style | SWT.H_SCROLL | SWT.V_SCROLL );
+ setExpandHorizontal( true );
+ setExpandVertical( true );
+
+ createComposite();
+
+ setContent( composite );
+ setMinSize( composite.computeSize( SWT.DEFAULT, SWT.DEFAULT ) );
+ }
+
+
+ /**
+ * This method initializes the inner composite with all contained widgets.
+ *
+ */
+ private void createComposite()
+ {
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 1;
+ GridData gridData = new GridData();
+ gridData.horizontalAlignment = GridData.FILL;
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.verticalAlignment = GridData.CENTER;
+
+ composite = new Composite( this, SWT.NONE );
+ composite.setLayout( gridLayout );
+ composite.setLayoutData( gridData );
+
+ // test button
+ // TODO: remove
+ Button testButton = new Button( composite, SWT.NONE );
+ testButton.setText( " C H E C K " ); //$NON-NLS-1$
+ testButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ try
+ {
+ String input = getInput();
+ MessageDialog.openInformation( getShell(), "Check", input ); //$NON-NLS-1$
+ }
+ catch ( ParseException e1 )
+ {
+ MessageDialog.openError( getShell(), "Check Error", e1.getMessage() ); //$NON-NLS-1$
+ }
+ }
+ } );
+
+ generalComposite = new ACIItemGeneralComposite( composite, SWT.NONE );
+ generalComposite.addWidgetModifyListener( this );
+
+ userFirstUserClassesComposite = new ACIItemUserClassesComposite( composite, SWT.NONE );
+ userFirstUserPermissionsComposite = new ACIItemUserPermissionsComposite( composite, SWT.NONE );
+
+ itemFirstProtectedItemsComposite = new ACIItemProtectedItemsComposite( composite, SWT.NONE );
+ itemFirstItemPermissionsComposite = new ACIItemItemPermissionsComposite( composite, SWT.NONE );
+
+ widgetModified( null );
+ }
+
+
+ /**
+ * This method is called from the contained ACIItemXXXComposites
+ * when they are modified.
+ *
+ */
+ public void widgetModified( WidgetModifyEvent event )
+ {
+ // switch userFirst / itemFirst
+ if ( generalComposite.isItemFirst() && !generalComposite.isUserFirst()
+ && !itemFirstProtectedItemsComposite.isVisible() )
+ {
+ userFirstUserClassesComposite.setVisible( false );
+ userFirstUserPermissionsComposite.setVisible( false );
+ itemFirstProtectedItemsComposite.setVisible( true );
+ itemFirstItemPermissionsComposite.setVisible( true );
+
+ setMinSize( composite.computeSize( SWT.DEFAULT, SWT.DEFAULT ) );
+ layout( true, true );
+ }
+ else if ( generalComposite.isUserFirst() && !generalComposite.isItemFirst()
+ && !userFirstUserClassesComposite.isVisible() )
+ {
+ userFirstUserClassesComposite.setVisible( true );
+ userFirstUserPermissionsComposite.setVisible( true );
+ itemFirstProtectedItemsComposite.setVisible( false );
+ itemFirstItemPermissionsComposite.setVisible( false );
+
+ setMinSize( composite.computeSize( SWT.DEFAULT, SWT.DEFAULT ) );
+ layout( true, true );
+ }
+ else if ( !generalComposite.isItemFirst() && !generalComposite.isUserFirst() )
+ {
+ userFirstUserClassesComposite.setVisible( false );
+ userFirstUserPermissionsComposite.setVisible( false );
+ itemFirstProtectedItemsComposite.setVisible( false );
+ itemFirstItemPermissionsComposite.setVisible( false );
+
+ setMinSize( composite.computeSize( SWT.DEFAULT, SWT.DEFAULT ) );
+ layout( true, true );
+ }
+
+ }
+
+
+ /**
+ * Sets the input. The given ACI Item string is parsed and
+ * populated to the GUI elements.
+ *
+ *
+ * @param aciitem The string representation of the ACI item
+ * @throws ParseException if the syntax is invalid
+ */
+ public void setInput( String input ) throws ParseException
+ {
+ ACIItemParser parser = new ACIItemParser( null );
+ ACIItem aciItem = parser.parse( input );
+
+ if ( aciItem != null )
+ {
+ generalComposite.setIdentificationTag( aciItem.getIdentificationTag() );
+ generalComposite.setPrecedence( aciItem.getPrecedence() );
+ generalComposite.setAuthenticationLevel( aciItem.getAuthenticationLevel() );
+
+ if ( aciItem instanceof ItemFirstACIItem )
+ {
+ ItemFirstACIItem itemFirstACI = ( ItemFirstACIItem ) aciItem;
+ generalComposite.setItemFirst();
+ itemFirstProtectedItemsComposite.setProtectedItems( itemFirstACI.getProtectedItems() );
+ itemFirstItemPermissionsComposite.setItemPermissions( itemFirstACI.getItemPermissions() );
+ }
+ else if ( aciItem instanceof UserFirstACIItem )
+ {
+ UserFirstACIItem userFirstACI = ( UserFirstACIItem ) aciItem;
+ generalComposite.setUserFirst();
+ userFirstUserClassesComposite.setUserClasses( userFirstACI.getUserClasses() );
+ userFirstUserPermissionsComposite.setUserPermissions( userFirstACI.getUserPermission() );
+ }
+ }
+
+ // force userFirst/itemFirst switch
+ widgetModified( null );
+
+ }
+
+
+ /**
+ * Returns the string representation of the ACI item as defined in GUI.
+ *
+ *
+ * @return the string representation of the ACI item
+ * @throws ParseException if the syntax is invalid
+ */
+ public String getInput() throws ParseException
+ {
+ String identificationTag = generalComposite.getIdentificationTag();
+ int precedence = generalComposite.getPrecedence();
+ AuthenticationLevel authenticationLevel = generalComposite.getAuthenticationLevel();
+
+ ACIItem aciItem = null;
+ if ( generalComposite.isUserFirst() )
+ {
+ Collection userClasses = userFirstUserClassesComposite.getUserClasses();
+ Collection userPermissions = userFirstUserPermissionsComposite.getUserPermissions();
+ aciItem = new UserFirstACIItem( identificationTag, precedence, authenticationLevel, userClasses,
+ userPermissions );
+ }
+ else if ( generalComposite.isItemFirst() )
+ {
+ Collection protectedItems = itemFirstProtectedItemsComposite.getProtectedItems();
+ Collection itemPermissions = itemFirstItemPermissionsComposite.getItemPermissions();
+ aciItem = new ItemFirstACIItem( identificationTag, precedence, authenticationLevel, protectedItems,
+ itemPermissions );
+ }
+ else
+ {
+ aciItem = null;
+ }
+
+ StringBuffer buffer = new StringBuffer();
+ if(aciItem != null)
+ {
+ aciItem.printToBuffer( buffer );
+ }
+ return buffer.toString();
+ }
+
+}
Added: directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/Messages.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/Messages.java?view=auto&rev=491293
==============================================================================
--- directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/Messages.java (added)
+++ directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/Messages.java Sat Dec 30 11:19:04 2006
@@ -0,0 +1,31 @@
+package org.apache.directory.ldapstudio.aciitemeditor.widgets;
+
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+
+public class Messages
+{
+ private static final String BUNDLE_NAME = "org.apache.directory.ldapstudio.aciitemeditor.widgets.messages"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle( BUNDLE_NAME );
+
+
+ private Messages()
+ {
+ }
+
+
+ public static String getString( String key )
+ {
+ try
+ {
+ return RESOURCE_BUNDLE.getString( key );
+ }
+ catch ( MissingResourceException e )
+ {
+ return '!' + key + '!';
+ }
+ }
+}
Modified: directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/WidgetModifyEvent.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/WidgetModifyEvent.java?view=diff&rev=491293&r1=491291&r2=491293
==============================================================================
--- directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/WidgetModifyEvent.java (original)
+++ directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/WidgetModifyEvent.java Sat Dec 30 11:19:04 2006
@@ -24,16 +24,26 @@
import java.util.EventObject;
+/**
+ * A WidgetModifyEvent contains details of the widget modification.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
public class WidgetModifyEvent extends EventObject
{
private static final long serialVersionUID = 2421335730580648878L;
+ /**
+ * Creates a new instance of WidgetModifyEvent.
+ *
+ * @param source the object on which the event initially occurred
+ */
public WidgetModifyEvent( Object source )
{
super( source );
-
}
}
Modified: directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/WidgetModifyListener.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/WidgetModifyListener.java?view=diff&rev=491293&r1=491291&r2=491293
==============================================================================
--- directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/WidgetModifyListener.java (original)
+++ directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/WidgetModifyListener.java Sat Dec 30 11:19:04 2006
@@ -21,9 +21,20 @@
package org.apache.directory.ldapstudio.aciitemeditor.widgets;
+/**
+ * A widget modify listeners gets informed if a widget was modified.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
public interface WidgetModifyListener
{
+ /**
+ * Informs this listener that a widget was modified
+ *
+ * @param event
+ */
public void widgetModified( WidgetModifyEvent event );
}
Added: directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/resources/org/apache/directory/ldapstudio/aciitemeditor/dialogs/messages.properties
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/resources/org/apache/directory/ldapstudio/aciitemeditor/dialogs/messages.properties?view=auto&rev=491293
==============================================================================
--- directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/resources/org/apache/directory/ldapstudio/aciitemeditor/dialogs/messages.properties (added)
+++ directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/resources/org/apache/directory/ldapstudio/aciitemeditor/dialogs/messages.properties Sat Dec 30 11:19:04 2006
@@ -0,0 +1,12 @@
+ACIItemDialog.dialog.text=ACI Item Editor
+ACIItemDialog.dialog.icon=icons/aciitemeditor.gif
+ACIItemDialog.error.title=Syntax Error
+ACIItemDialog.error.invalidSyntax=Invalid syntax.
+ItemPermissionDialog.dialog.text=Item Permission Editor
+ItemPermissionDialog.dialog.icon=icons/aciitemeditor.gif
+ItemPermissionDialog.error.invalidItemPermission=Invalid Item Permission
+ItemPermissionDialog.precedence.label=Precedence:
+UserPermissionDialog.dialog.text=User Permission Editor
+UserPermissionDialog.dialog.icon=icons/aciitemeditor.gif
+UserPermissionDialog.error.invalidUserPermission=Invalid User Permission
+UserPermissionDialog.precedence.label=Precedence:
Added: directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/resources/org/apache/directory/ldapstudio/aciitemeditor/widgets/messages.properties
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/resources/org/apache/directory/ldapstudio/aciitemeditor/widgets/messages.properties?view=auto&rev=491293
==============================================================================
--- directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/resources/org/apache/directory/ldapstudio/aciitemeditor/widgets/messages.properties (added)
+++ directory/sandbox/seelmann/trunk/ldapstudio-aciitemeditor/src/main/resources/org/apache/directory/ldapstudio/aciitemeditor/widgets/messages.properties Sat Dec 30 11:19:04 2006
@@ -0,0 +1,65 @@
+ACIItemGeneralComposite.idTag.label=Identification Tag:
+ACIItemTabFolderComposite.source.tab=Source
+ACIItemTabFolderComposite.visual.tab=Visual Editor
+ACIItemTabFolderComposite.error.onVisualEditor=Invalid syntax, switching back to visual editor.
+ACIItemTabFolderComposite.error.title=Syntax Error
+ACIItemTabFolderComposite.error.onSourceEditor=Invalid syntax, switching back to source editor.
+ACIItemTabFolderComposite.error.onInput=Invalid syntax, activating source editor.
+ACIItemGeneralComposite.precedence.label=Precedence:
+ACIItemUserClassesComposite.revert.buton=Revert
+ACIItemGeneralComposite.authLevel.label=Authentication Level:
+ACIItemGeneralComposite.userOrItemFirst.label=User or Item first:
+ACIItemItemPermissionsComposite.delete.button=Delete
+ACIItemGeneralComposite.userFirst.label=User First
+ACIItemGeneralComposite.itemFirst.label=Item First
+ACIItemUserClassesComposite.description=User Classes:
+ACIItemUserClassesComposite.edit.button=Edit...
+ACIItemUserClassesComposite.error.icon=icons/error.gif
+ACIItemGrantsAndDenialsComposite.column1.header=Right
+ACIItemGrantsAndDenialsComposite.column2.header=Grant/Deny
+ACIItemGrantsAndDenialsComposite.category.read=Read Rights
+ACIItemUserClassesComposite.deselectAll.button=Deselect All
+ACIItemGrantsAndDenialsComposite.category.modify=Modification Rights
+ACIItemGrantsAndDenialsComposite.category.advanced=Advanced Rights
+ACIItemGrantsAndDenialsComposite.description=Grants and Denials:
+ACIItemGrantsAndDenialsComposite.grantAll.button=Grant All
+ACIItemUserClassesComposite.userClass.name.label=Name
+ACIItemGrantsAndDenialsComposite.denyAll.button=Deny All
+ACIItemProtectedItemsComposite.selectAll.button=Select All
+ACIItemGrantsAndDenialsComposite.deselectAll.button=Deselect All
+ACIItemUserClassesComposite.userClass.allUsers.label=All Users
+ACIItemUserClassesComposite.userClass.thisEntry.label=This Entry
+ACIItemUserClassesComposite.userClass.userGroup.label=User Group
+ACIItemUserClassesComposite.userClass.subtree.label=Subtree
+ACIItemProtectedItemsComposite.protectedItem.entry.label=Entry
+ACIItemGrantsAndDenialsComposite.undo.button=Undo
+ACIItemGrantsAndDenialsComposite.redo.button=Redo
+ACIItemProtectedItemsComposite.revers.button=Revert
+ACIItemGrantsAndDenialsComposite.unspecified.icon=icons/checkbox_unchecked.gif
+ACIItemProtectedItemsComposite.deselectAll.button=Deselect All
+ACIItemGrantsAndDenialsComposite.grant.icon=icons/checkbox_grant.gif
+ACIItemItemPermissionsComposite.description=Item Permissions:
+ACIItemItemPermissionsComposite.edit.button=Edit...
+ACIItemGrantsAndDenialsComposite.deny.icon=icons/checkbox_deny.gif
+ACIItemItemPermissionsComposite.add.button=Add...
+ACIItemProtectedItemsComposite.protectedItem.allUserAttributeTypes.label=All User Attribute Types
+ACIItemProtectedItemsComposite.protectedItem.attributeType.label=Attribute Type
+ACIItemProtectedItemsComposite.protectedItem.allAttributeValues.label=All Attribute Values
+ACIItemProtectedItemsComposite.protectedItem.allUserAttributeTypesAndValues.label=All User Attribute Types and Values
+ACIItemProtectedItemsComposite.protectedItem.attributeValue.label=Attribute Value
+ACIItemProtectedItemsComposite.protectedItem.selfValue.label=Self Value
+ACIItemProtectedItemsComposite.protectedItem.rangeOfValues.label=Range of Values
+ACIItemProtectedItemsComposite.protectedItem.maxValueCount.label=Max. Value Count
+ACIItemProtectedItemsComposite.protectedItem.maxImmSub.label=Max. Number of Immediate Subordinates
+ACIItemProtectedItemsComposite.protectedItem.restrictedBy.label=Restricted by
+ACIItemProtectedItemsComposite.protectedItem.classes.label=Classes
+ACIItemProtectedItemsComposite.description=Protected Items:
+ACIItemProtectedItemsComposite.edit.button=Edit...
+ACIItemProtectedItemsComposite.error.icon=icons/error.gif
+ACIItemUserClassesComposite.error.message=Invalid user class "{0}" with value "{1}"
+ACIItemUserPermissionsComposite.descripton=User Permissions:
+ACIItemUserPermissionsComposite.add.button=Add...
+ACIItemProtectedItemsComposite.error.message=Invalid protected item "{0}" with value "{1}"
+ACIItemUserClassesComposite.selectAll.button=Select All
+ACIItemUserPermissionsComposite.edit.button=Edit...
+ACIItemUserPermissionsComposite.delete.button=Delete