You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2007/04/04 13:21:59 UTC
svn commit: r525492 - in
/directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor:
SubtreeValueEditor.java model/UserClassWrapperFactory.java
widgets/SubtreeSpecificationValueEditor.java
Author: pamarcelot
Date: Wed Apr 4 04:21:57 2007
New Revision: 525492
URL: http://svn.apache.org/viewvc?view=rev&rev=525492
Log:
Moved and renamed the SubtreeSpecificiationValueEditor.
Added:
directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/SubtreeValueEditor.java
Removed:
directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/widgets/SubtreeSpecificationValueEditor.java
Modified:
directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/model/UserClassWrapperFactory.java
Added: directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/SubtreeValueEditor.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/SubtreeValueEditor.java?view=auto&rev=525492
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/SubtreeValueEditor.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/SubtreeValueEditor.java Wed Apr 4 04:21:57 2007
@@ -0,0 +1,788 @@
+/*
+ * 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;
+
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.directory.ldapstudio.browser.core.model.DN;
+import org.apache.directory.ldapstudio.browser.core.model.IConnection;
+import org.apache.directory.ldapstudio.browser.core.model.NameException;
+import org.apache.directory.ldapstudio.browser.ui.dialogs.TextDialog;
+import org.apache.directory.ldapstudio.browser.ui.valueeditors.AbstractDialogStringValueEditor;
+import org.apache.directory.ldapstudio.browser.ui.widgets.BaseWidgetUtils;
+import org.apache.directory.ldapstudio.browser.ui.widgets.search.EntryWidget;
+import org.apache.directory.shared.ldap.name.LdapDN;
+import org.apache.directory.shared.ldap.subtree.SubtreeSpecification;
+import org.apache.directory.shared.ldap.subtree.SubtreeSpecificationParser;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+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;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Table;
+
+
+/**
+ * ACI item editor specific value editor to edit the SubtreeSpecification.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class SubtreeValueEditor extends AbstractDialogStringValueEditor
+{
+ /* (non-Javadoc)
+ * @see org.apache.directory.ldapstudio.browser.ui.valueeditors.AbstractDialogValueEditor#openDialog(org.eclipse.swt.widgets.Shell)
+ */
+ protected boolean openDialog( Shell shell )
+ {
+ Object value = getValue();
+ if ( value != null && value instanceof SubtreeSpecificationValueWrapper )
+ {
+ SubtreeSpecificationValueWrapper wrapper = ( SubtreeSpecificationValueWrapper ) value;
+ SubtreeSpecificationDialog dialog = new SubtreeSpecificationDialog( shell, wrapper.connection,
+ wrapper.subtreeSpecification );
+ if ( dialog.open() == TextDialog.OK )
+ {
+ String base = dialog.getBase();
+ int minimum = dialog.getMinimum();
+ int maximum = dialog.getMaximum();
+ List<String> exclusions = dialog.getExclusions();
+
+ StringBuffer sb = new StringBuffer();
+ sb.append( "{" );
+
+ // Adding base
+ if ( base != null )
+ {
+ sb.append( " base \"" + base + "\"," );
+ }
+
+ // Adding Minimum
+ if ( minimum != 0 )
+ {
+ sb.append( " minimum " + minimum + "," );
+ }
+
+ // Adding Maximum
+ if ( maximum != 0 )
+ {
+ sb.append( " maximum " + maximum + "," );
+ }
+
+ // Adding Exclusions
+ if ( !exclusions.isEmpty() )
+ {
+ sb.append( " specificExclusions {" );
+
+ for ( Iterator<String> it = exclusions.iterator(); it.hasNext(); )
+ {
+ sb.append( " " + it.next() );
+
+ if ( it.hasNext() )
+ {
+ sb.append( "," );
+ }
+ }
+
+ sb.append( " }," );
+ }
+
+ // Removing the last ','
+ if ( sb.charAt( sb.length() - 1 ) == ',' )
+ {
+ sb.deleteCharAt( sb.length() - 1 );
+ }
+
+ sb.append( " }" );
+
+ setValue( sb.toString() );
+
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.directory.ldapstudio.browser.ui.valueeditors.AbstractDialogStringValueEditor#getRawValue(org.apache.directory.ldapstudio.browser.core.model.IConnection, java.lang.Object)
+ */
+ public Object getRawValue( IConnection connection, Object value )
+ {
+ Object o = super.getRawValue( connection, value );
+ if ( o != null && o instanceof String )
+ {
+ SubtreeSpecificationParser parser = new SubtreeSpecificationParser( null );
+ try
+ {
+ SubtreeSpecification subtreeSpecification = parser.parse( ( String ) value );
+ if ( subtreeSpecification != null )
+ {
+ return new SubtreeSpecificationValueWrapper( connection, subtreeSpecification );
+ }
+ }
+ catch ( ParseException e1 )
+ {
+ return new SubtreeSpecificationValueWrapper( connection, null );
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This class provides a dialog to enter the Subtree Specification value.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+ private class SubtreeSpecificationDialog extends Dialog
+ {
+ /** The dialog title */
+ private static final String DIALOG_TITLE = "Subtree Editor";
+
+ /** The connection */
+ private IConnection connection;
+
+ /** The SubtreeSpecification */
+ private SubtreeSpecification subtreeSpecification;
+
+ private int initialMaximum = 0;
+ private int initialMinimum = 0;
+
+ /** The return Base */
+ private String returnBase;
+
+ /** The return Minimum */
+ private int returnMinimum;
+
+ /** The return Maximum */
+ private int returnMaximum;
+
+ /** The Exclusions List */
+ private List<String> exclusions;
+
+ // UI Fields
+ private EntryWidget entryWidget;
+ private Spinner minimumSpinner;
+ private Spinner maximumSpinner;
+ private TableViewer exclusionsTableViewer;
+ private Button exclusionsTableAddButton;
+ private Button exclusionsTableEditButton;
+ private Button exclusionsTableDeleteButton;
+ private TableViewer refinementsTableViewer;
+ private Button refinementsTableAddButton;
+ private Button refinementsTableEditButton;
+ private Button refinementsTableDeleteButton;
+
+
+ /**
+ * Creates a new instance of SubtreeSpecificationDialog.
+ *
+ * @param shell
+ * the shell to use
+ * @param connection
+ * the connection to use
+ * @param subtreeSpecification
+ * the SubtreeSpecification
+ */
+ private SubtreeSpecificationDialog( Shell shell, IConnection connection,
+ SubtreeSpecification subtreeSpecification )
+ {
+ super( shell );
+ this.connection = connection;
+ this.subtreeSpecification = subtreeSpecification;
+ exclusions = new ArrayList<String>();
+ if ( subtreeSpecification != null )
+ {
+ Set chopBeforeExclusions = subtreeSpecification.getChopBeforeExclusions();
+ for ( Object chopBeforeExclusion : chopBeforeExclusions )
+ {
+ LdapDN dn = ( LdapDN ) chopBeforeExclusion;
+ exclusions.add( "chopBefore: \"" + dn.toNormName() + "\"" );
+ }
+
+ Set chopAfterExclusions = subtreeSpecification.getChopAfterExclusions();
+ for ( Object chopAfterExclusion : chopAfterExclusions )
+ {
+ LdapDN dn = ( LdapDN ) chopAfterExclusion;
+ exclusions.add( "chopAfter: \"" + dn.toNormName() + "\"" );
+ }
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+ */
+ protected void configureShell( Shell newShell )
+ {
+ super.configureShell( newShell );
+ newShell.setText( DIALOG_TITLE );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+ */
+ protected void okPressed()
+ {
+ returnBase = entryWidget.getDn().toString();
+ returnMinimum = minimumSpinner.getSelection();
+ returnMaximum = maximumSpinner.getSelection();
+ super.okPressed();
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+ */
+ protected Control createDialogArea( Composite parent )
+ {
+ Composite composite = ( Composite ) super.createDialogArea( parent );
+ GridData gd = new GridData( GridData.FILL_BOTH );
+ gd.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH );
+ composite.setLayoutData( gd );
+ composite.setLayout( new GridLayout( 3, false ) );
+
+ BaseWidgetUtils.createLabel( composite, "Base:", 1 );
+ entryWidget = new EntryWidget( connection, null );
+ entryWidget.createWidget( composite );
+
+ GridData spinnersGridData = new GridData();
+ spinnersGridData.grabExcessHorizontalSpace = true;
+ spinnersGridData.verticalAlignment = GridData.CENTER;
+ spinnersGridData.horizontalSpan = 2;
+ spinnersGridData.horizontalAlignment = GridData.BEGINNING;
+ spinnersGridData.widthHint = 3 * 12;
+
+ BaseWidgetUtils.createLabel( composite, "Minimum:", 1 );
+ minimumSpinner = new Spinner( composite, SWT.BORDER );
+ minimumSpinner.setMinimum( 0 );
+ minimumSpinner.setMaximum( Integer.MAX_VALUE );
+ minimumSpinner.setDigits( 0 );
+ minimumSpinner.setIncrement( 1 );
+ minimumSpinner.setPageIncrement( 100 );
+ minimumSpinner.setSelection( initialMinimum );
+ minimumSpinner.setLayoutData( spinnersGridData );
+
+ BaseWidgetUtils.createLabel( composite, "Maximum:", 1 );
+ maximumSpinner = new Spinner( composite, SWT.BORDER );
+ maximumSpinner.setMinimum( 0 );
+ maximumSpinner.setMaximum( Integer.MAX_VALUE );
+ maximumSpinner.setDigits( 0 );
+ maximumSpinner.setIncrement( 1 );
+ maximumSpinner.setPageIncrement( 100 );
+ maximumSpinner.setSelection( initialMaximum );
+ maximumSpinner.setLayoutData( spinnersGridData );
+
+ createExclusionsTable( composite );
+
+ createRefinementsTable( composite );
+
+ applyDialogFont( composite );
+
+ initFromInput();
+
+ return composite;
+ }
+
+
+ /**
+ * Initializes the Value Editor from the input.
+ */
+ private void initFromInput()
+ {
+ DN dn = null;
+ try
+ {
+ dn = new DN( subtreeSpecification.getBase().toNormName() );
+ }
+ catch ( NameException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ entryWidget.setInput( connection, dn );
+ minimumSpinner.setSelection( subtreeSpecification.getMinBaseDistance() );
+ maximumSpinner.setSelection( subtreeSpecification.getMaxBaseDistance() );
+ exclusionsTableViewer.setInput( exclusions );
+ }
+
+
+ /**
+ * Creates the Exclusions Table.
+ *
+ * @param composite
+ * the composite
+ */
+ private void createExclusionsTable( Composite composite )
+ {
+ GridData tableGridData = new GridData();
+ tableGridData.grabExcessHorizontalSpace = true;
+ tableGridData.verticalAlignment = GridData.FILL;
+ tableGridData.horizontalAlignment = GridData.FILL;
+ tableGridData.heightHint = 100;
+
+ BaseWidgetUtils.createLabel( composite, "Exclusions:", 1 );
+ Table exclusionsTable = new Table( composite, SWT.BORDER );
+ exclusionsTable.setHeaderVisible( false );
+ exclusionsTable.setLayoutData( tableGridData );
+ exclusionsTable.setLinesVisible( false );
+ exclusionsTableViewer = new TableViewer( exclusionsTable );
+ exclusionsTableViewer.setContentProvider( new ArrayContentProvider() );
+ exclusionsTableViewer.setLabelProvider( new LabelProvider() );
+ exclusionsTableViewer.addSelectionChangedListener( new ISelectionChangedListener()
+ {
+ public void selectionChanged( SelectionChangedEvent event )
+ {
+ valueSelectedExclusionsTable();
+ }
+ } );
+ exclusionsTableViewer.addDoubleClickListener( new IDoubleClickListener()
+ {
+ public void doubleClick( DoubleClickEvent event )
+ {
+ editValueExclusionsTable();
+ }
+ } );
+
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.marginWidth = 0;
+ gridLayout.marginHeight = 0;
+ GridData gridData = new GridData();
+ gridData.horizontalAlignment = GridData.CENTER;
+ gridData.grabExcessHorizontalSpace = false;
+ gridData.grabExcessVerticalSpace = false;
+ gridData.verticalAlignment = GridData.FILL;
+
+ Composite buttonComposite = new Composite( composite, SWT.NONE );
+ buttonComposite.setLayoutData( gridData );
+ buttonComposite.setLayout( gridLayout );
+
+ GridData buttonGridData = new GridData();
+ buttonGridData.horizontalAlignment = GridData.FILL;
+ buttonGridData.grabExcessHorizontalSpace = false;
+ buttonGridData.verticalAlignment = GridData.BEGINNING;
+ buttonGridData.widthHint = Activator.getButtonWidth( composite );
+
+ exclusionsTableAddButton = new Button( buttonComposite, SWT.PUSH );
+ exclusionsTableAddButton.setText( "Add..." );
+ exclusionsTableAddButton.setLayoutData( buttonGridData );
+ exclusionsTableAddButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ addValueExclusionsTable();
+ }
+ } );
+
+ exclusionsTableEditButton = new Button( buttonComposite, SWT.PUSH );
+ exclusionsTableEditButton.setText( "Edit..." );
+ exclusionsTableEditButton.setLayoutData( buttonGridData );
+ exclusionsTableEditButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ editValueExclusionsTable();
+ }
+ } );
+ exclusionsTableEditButton.setEnabled( false );
+
+ exclusionsTableDeleteButton = new Button( buttonComposite, SWT.PUSH );
+ exclusionsTableDeleteButton.setText( "Delete" );
+ exclusionsTableDeleteButton.setLayoutData( buttonGridData );
+ exclusionsTableDeleteButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ deleteValueExclusionsTable();
+ }
+ } );
+ exclusionsTableDeleteButton.setEnabled( false );
+ }
+
+
+ /**
+ * Called when value is selected in Exclusions table viewer.
+ * Updates the enabled/disabled state of the buttons.
+ */
+ private void valueSelectedExclusionsTable()
+ {
+ String value = getSelectedValueExclusionsTable();
+
+ if ( value == null )
+ {
+ exclusionsTableEditButton.setEnabled( false );
+ exclusionsTableDeleteButton.setEnabled( false );
+ }
+ else
+ {
+ exclusionsTableEditButton.setEnabled( true );
+ exclusionsTableDeleteButton.setEnabled( true );
+ }
+ }
+
+
+ /**
+ * Retuns the current selection in the Exclusions table viewer.
+ *
+ * @return
+ * the value that is selected in the Exclusions table viewer, or null.
+ */
+ private String getSelectedValueExclusionsTable()
+ {
+ String value = null;
+
+ IStructuredSelection selection = ( IStructuredSelection ) exclusionsTableViewer.getSelection();
+ if ( !selection.isEmpty() )
+ {
+ Object element = selection.getFirstElement();
+ if ( element instanceof String )
+ {
+ value = ( String ) element;
+ }
+ }
+
+ return value;
+ }
+
+
+ /**
+ * Opens the editor and adds the new Exclusion value to the list.
+ */
+ private void addValueExclusionsTable()
+ {
+ ExclusionValueEditor valueEditor = new ExclusionValueEditor();
+
+ Object oldRawValue = valueEditor.getRawValue( connection, "" );
+
+ CellEditor cellEditor = valueEditor.getCellEditor();
+ cellEditor.setValue( oldRawValue );
+ cellEditor.activate();
+ Object newRawValue = cellEditor.getValue();
+
+ if ( newRawValue != null )
+ {
+ String newValue = ( String ) valueEditor.getStringOrBinaryValue( newRawValue );
+
+ exclusions.add( newValue );
+ exclusionsTableViewer.refresh();
+ }
+ }
+
+
+ /**
+ * Opens the editor with the currently selected Exclusion
+ * value and puts the modified value into the list.
+ */
+ private void editValueExclusionsTable()
+ {
+ ExclusionValueEditor valueEditor = new ExclusionValueEditor();
+
+ String oldValue = getSelectedValueExclusionsTable();
+ if ( oldValue != null )
+ {
+ Object oldRawValue = valueEditor.getRawValue( connection, oldValue );
+
+ CellEditor cellEditor = valueEditor.getCellEditor();
+ cellEditor.setValue( oldRawValue );
+ cellEditor.activate();
+ Object newRawValue = cellEditor.getValue();
+
+ if ( newRawValue != null )
+ {
+ String newValue = ( String ) valueEditor.getStringOrBinaryValue( newRawValue );
+
+ exclusions.remove( oldValue );
+ exclusions.add( newValue );
+ exclusionsTableViewer.refresh();
+ }
+ }
+ }
+
+
+ /**
+ * Deletes the currently selected Exclusion value from list.
+ */
+ private void deleteValueExclusionsTable()
+ {
+ String value = getSelectedValueExclusionsTable();
+ if ( value != null )
+ {
+ exclusions.remove( value );
+ exclusionsTableViewer.refresh();
+ }
+ }
+
+
+ private void createRefinementsTable( Composite composite )
+ {
+ GridData tableGridData = new GridData();
+ tableGridData.grabExcessHorizontalSpace = true;
+ tableGridData.verticalAlignment = GridData.FILL;
+ tableGridData.horizontalAlignment = GridData.FILL;
+ tableGridData.heightHint = 100;
+
+ BaseWidgetUtils.createLabel( composite, "Refinements:", 1 );
+ Table refinementsTable = new Table( composite, SWT.BORDER );
+ refinementsTable.setHeaderVisible( false );
+ refinementsTable.setLayoutData( tableGridData );
+ refinementsTable.setLinesVisible( false );
+ refinementsTableViewer = new TableViewer( refinementsTable );
+ refinementsTableViewer.setContentProvider( new ArrayContentProvider() );
+ refinementsTableViewer.setLabelProvider( new LabelProvider() );
+ refinementsTableViewer.addSelectionChangedListener( new ISelectionChangedListener()
+ {
+ public void selectionChanged( SelectionChangedEvent event )
+ {
+ valueSelectedRefinementsTable();
+ }
+ } );
+
+ refinementsTableViewer.addDoubleClickListener( new IDoubleClickListener()
+ {
+ public void doubleClick( DoubleClickEvent event )
+ {
+ editValueRefinementsTable();
+ }
+ } );
+
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.marginWidth = 0;
+ gridLayout.marginHeight = 0;
+ GridData gridData = new GridData();
+ gridData.horizontalAlignment = GridData.CENTER;
+ gridData.grabExcessHorizontalSpace = false;
+ gridData.grabExcessVerticalSpace = false;
+ gridData.verticalAlignment = GridData.FILL;
+
+ Composite buttonComposite = new Composite( composite, SWT.NONE );
+ buttonComposite.setLayoutData( gridData );
+ buttonComposite.setLayout( gridLayout );
+
+ GridData buttonGridData = new GridData();
+ buttonGridData.horizontalAlignment = GridData.FILL;
+ buttonGridData.grabExcessHorizontalSpace = false;
+ buttonGridData.verticalAlignment = GridData.BEGINNING;
+ buttonGridData.widthHint = Activator.getButtonWidth( composite );
+
+ refinementsTableAddButton = new Button( buttonComposite, SWT.PUSH );
+ refinementsTableAddButton.setText( "Add..." );
+ refinementsTableAddButton.setLayoutData( buttonGridData );
+ refinementsTableAddButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ addValueRefinementsTable();
+ }
+ } );
+
+ refinementsTableEditButton = new Button( buttonComposite, SWT.PUSH );
+ refinementsTableEditButton.setText( "Edit..." );
+ refinementsTableEditButton.setLayoutData( buttonGridData );
+ refinementsTableEditButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ editValueRefinementsTable();
+ }
+ } );
+ refinementsTableEditButton.setEnabled( false );
+
+ refinementsTableDeleteButton = new Button( buttonComposite, SWT.PUSH );
+ refinementsTableDeleteButton.setText( "Delete" );
+ refinementsTableDeleteButton.setLayoutData( buttonGridData );
+ refinementsTableDeleteButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ deleteValueRefinementsTable();
+ }
+ } );
+ refinementsTableDeleteButton.setEnabled( false );
+ }
+
+
+ /**
+ * TODO valueSelectedExclusionsTable.
+ *
+ */
+ private void valueSelectedRefinementsTable()
+ {
+ String value = getSelectedValueRefinementsTable();
+
+ if ( value == null )
+ {
+ refinementsTableEditButton.setEnabled( false );
+ refinementsTableDeleteButton.setEnabled( false );
+ }
+ else
+ {
+ refinementsTableEditButton.setEnabled( true );
+ refinementsTableDeleteButton.setEnabled( true );
+ }
+ }
+
+
+ /**
+ * TODO getSelectedValue.
+ *
+ * @return
+ */
+ private String getSelectedValueRefinementsTable()
+ {
+ String value = null;
+
+ IStructuredSelection selection = ( IStructuredSelection ) refinementsTableViewer.getSelection();
+ if ( !selection.isEmpty() )
+ {
+ Object element = selection.getFirstElement();
+ if ( element instanceof String )
+ {
+ value = ( String ) element;
+ }
+ }
+
+ return value;
+ }
+
+
+ private void addValueRefinementsTable()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ private void editValueRefinementsTable()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ private void deleteValueRefinementsTable()
+ {
+
+ // TODO Auto-generated method stub
+ }
+
+
+ /**
+ * Gets the Base value.
+ *
+ * @return
+ * the base
+ */
+ public String getBase()
+ {
+ return returnBase;
+ }
+
+
+ /**
+ * Gets the Minimum Value.
+ *
+ * @return
+ * the miminum
+ */
+ public int getMinimum()
+ {
+ return returnMinimum;
+ }
+
+
+ /**
+ * Gets the Maximum value.
+ *
+ * @return
+ * the maximum
+ */
+ public int getMaximum()
+ {
+ return returnMaximum;
+ }
+
+
+ /**
+ * Gets the List of Eclusions.
+ *
+ * @return
+ * the list of exclusions
+ */
+ public List<String> getExclusions()
+ {
+ return exclusions;
+ }
+ }
+
+ /**
+ * The SubtreeSpecificationValueWrapper is used to pass contextual
+ * information to the opened SubtreeSpecificationDialog.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+ private class SubtreeSpecificationValueWrapper
+ {
+ /** The connection, used in DnDialog to browse for an entry */
+ private IConnection connection;
+
+ /** The subtreeSpecification */
+ private SubtreeSpecification subtreeSpecification;
+
+
+ /**
+ * Creates a new instance of SubtreeSpecificationValueWrapper.
+ *
+ * @param connection
+ * the connection
+ * @param dn
+ * the DN
+ */
+ private SubtreeSpecificationValueWrapper( IConnection connection, SubtreeSpecification subtreeSpecification )
+ {
+ this.connection = connection;
+ this.subtreeSpecification = subtreeSpecification;
+ }
+ }
+}
Modified: directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/model/UserClassWrapperFactory.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/model/UserClassWrapperFactory.java?view=diff&rev=525492&r1=525491&r2=525492
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/model/UserClassWrapperFactory.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-aciitemeditor/src/main/java/org/apache/directory/ldapstudio/aciitemeditor/model/UserClassWrapperFactory.java Wed Apr 4 04:21:57 2007
@@ -1,7 +1,7 @@
package org.apache.directory.ldapstudio.aciitemeditor.model;
-import org.apache.directory.ldapstudio.aciitemeditor.widgets.SubtreeSpecificationValueEditor;
+import org.apache.directory.ldapstudio.aciitemeditor.SubtreeValueEditor;
import org.apache.directory.ldapstudio.browser.ui.valueeditors.internal.DnValueEditor;
import org.apache.directory.ldapstudio.browser.ui.valueeditors.internal.TextValueEditor;
import org.apache.directory.shared.ldap.aci.UserClass;
@@ -56,7 +56,7 @@
UserClass.Subtree.class,
"", //$NON-NLS-1$
"", //$NON-NLS-1$
- new SubtreeSpecificationValueEditor() // TODO: SubtreeSpecificationValueEditor
+ new SubtreeValueEditor() // TODO: SubtreeValueEditor
)
};