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 2009/10/07 14:13:19 UTC

svn commit: r822686 - in /directory/studio/trunk: aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/model/ aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/ ldapbrowser-common/src/main/java/org/apac...

Author: seelmann
Date: Wed Oct  7 12:13:19 2009
New Revision: 822686

URL: http://svn.apache.org/viewvc?rev=822686&view=rev
Log:
Fix for DIRSTUDIO-549 (subtree userClass editor does not keep full DN for base component upon its selection)
o Added useLocalName flag

Modified:
    directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/model/UserClassWrapperFactory.java
    directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/ExclusionDialog.java
    directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeSpecificationDialog.java
    directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeValueEditor.java
    directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/search/EntryWidget.java

Modified: directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/model/UserClassWrapperFactory.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/model/UserClassWrapperFactory.java?rev=822686&r1=822685&r2=822686&view=diff
==============================================================================
--- directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/model/UserClassWrapperFactory.java (original)
+++ directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/model/UserClassWrapperFactory.java Wed Oct  7 12:13:19 2009
@@ -72,7 +72,7 @@
                 // subtree
                 new UserClassWrapper( UserClass.Subtree.class, "", //$NON-NLS-1$
                     "", //$NON-NLS-1$
-                    new SubtreeValueEditor( false )
+                    new SubtreeValueEditor( false, false )
                 ) };
 
         return userClassWrappers;

Modified: directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/ExclusionDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/ExclusionDialog.java?rev=822686&r1=822685&r2=822686&view=diff
==============================================================================
--- directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/ExclusionDialog.java (original)
+++ directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/ExclusionDialog.java Wed Oct  7 12:13:19 2009
@@ -170,12 +170,12 @@
         typeCombo.setLayoutData( gridData );
 
         BaseWidgetUtils.createLabel( composite, Messages.getString( "ExclusionValueEditor.label.rdn" ), 1 ); //$NON-NLS-1$
-        entryWidget = new EntryWidget( connection, null, base );
+        entryWidget = new EntryWidget( connection, null, base, true );
         entryWidget.createWidget( composite );
         try
         {
             LdapDN dn = new LdapDN( initalDN );
-            entryWidget.setInput( connection, dn, base );
+            entryWidget.setInput( connection, dn, base, true );
         }
         catch ( InvalidNameException e )
         {

Modified: directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeSpecificationDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeSpecificationDialog.java?rev=822686&r1=822685&r2=822686&view=diff
==============================================================================
--- directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeSpecificationDialog.java (original)
+++ directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeSpecificationDialog.java Wed Oct  7 12:13:19 2009
@@ -31,8 +31,8 @@
 import org.apache.directory.shared.ldap.subtree.SubtreeSpecificationParser;
 import org.apache.directory.studio.aciitemeditor.Activator;
 import org.apache.directory.studio.connection.core.DnUtils;
-import org.apache.directory.studio.ldapbrowser.common.dialogs.TextDialog;
 import org.apache.directory.studio.connection.ui.widgets.BaseWidgetUtils;
+import org.apache.directory.studio.ldapbrowser.common.dialogs.TextDialog;
 import org.apache.directory.studio.ldapbrowser.common.widgets.WidgetModifyEvent;
 import org.apache.directory.studio.ldapbrowser.common.widgets.WidgetModifyListener;
 import org.apache.directory.studio.ldapbrowser.common.widgets.search.EntryWidget;
@@ -84,6 +84,9 @@
     /** Flag indicating if the refinement or filter widget should be visible */
     private boolean refinementOrFilterVisible;
 
+    /** Flag indicating if a local name should be used for the base */
+    private boolean useLocalName;
+
     /** The initial SubtreeSpecification */
     private SubtreeSpecification subtreeSpecification;
 
@@ -120,14 +123,17 @@
      *      the initial SubtreeSpecification
      * @param refinementOrFilterVisible
      *      true if the refinement of filter widget should be visible
+     * @param useLocalName 
+     *      true to use local name for the base
      */
     SubtreeSpecificationDialog( Shell shell, IBrowserConnection connection, LdapDN subentryDN,
-        String initialSubtreeSpecification, boolean refinementOrFilterVisible )
+        String initialSubtreeSpecification, boolean refinementOrFilterVisible, boolean useLocalName )
     {
         super( shell );
         this.connection = connection;
         this.subentryDN = subentryDN;
         this.refinementOrFilterVisible = refinementOrFilterVisible;
+        this.useLocalName = useLocalName;
 
         // parse
         try
@@ -146,17 +152,15 @@
         }
 
         exclusions = new ArrayList<String>();
-        Set chopBeforeExclusions = subtreeSpecification.getChopBeforeExclusions();
-        for ( Object chopBeforeExclusion : chopBeforeExclusions )
+        Set<LdapDN> chopBeforeExclusions = subtreeSpecification.getChopBeforeExclusions();
+        for ( LdapDN dn : chopBeforeExclusions )
         {
-            LdapDN dn = ( LdapDN ) chopBeforeExclusion;
             exclusions.add( "chopBefore: \"" + dn.toNormName() + "\"" ); //$NON-NLS-1$ //$NON-NLS-2$
         }
 
-        Set chopAfterExclusions = subtreeSpecification.getChopAfterExclusions();
-        for ( Object chopAfterExclusion : chopAfterExclusions )
+        Set<LdapDN> chopAfterExclusions = subtreeSpecification.getChopAfterExclusions();
+        for ( LdapDN dn : chopAfterExclusions )
         {
-            LdapDN dn = ( LdapDN ) chopAfterExclusion;
             exclusions.add( "chopAfter: \"" + dn.toNormName() + "\"" ); //$NON-NLS-1$ //$NON-NLS-2$
         }
 
@@ -213,7 +217,7 @@
 
         LdapDN base = subtreeSpecification.getBase();
         LdapDN suffix = subentryDN != null ? DnUtils.getParent( subentryDN ) : null;
-        entryWidget = new EntryWidget( connection, base, suffix );
+        entryWidget = new EntryWidget( connection, base, suffix, useLocalName );
         entryWidget.createWidget( composite );
         entryWidget.addWidgetModifyListener( new WidgetModifyListener()
         {
@@ -648,7 +652,7 @@
     private void addValueExclusionsTable()
     {
         LdapDN chopBase = subtreeSpecification.getBase();
-        if ( subentryDN != null && DnUtils.getParent( subentryDN ) != null )
+        if ( useLocalName && subentryDN != null && DnUtils.getParent( subentryDN ) != null )
         {
             LdapDN suffix = subentryDN != null ? DnUtils.getParent( subentryDN ) : null;
             chopBase = DnUtils.composeDn( chopBase, suffix );
@@ -675,7 +679,7 @@
         if ( oldValue != null )
         {
             LdapDN chopBase = subtreeSpecification.getBase();
-            if ( subentryDN != null && DnUtils.getParent( subentryDN ) != null )
+            if ( useLocalName && subentryDN != null && DnUtils.getParent( subentryDN ) != null )
             {
                 LdapDN suffix = subentryDN != null ? DnUtils.getParent( subentryDN ) : null;
                 chopBase = DnUtils.composeDn( chopBase, suffix );

Modified: directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeValueEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeValueEditor.java?rev=822686&r1=822685&r2=822686&view=diff
==============================================================================
--- directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeValueEditor.java (original)
+++ directory/studio/trunk/aciitemeditor/src/main/java/org/apache/directory/studio/aciitemeditor/valueeditors/SubtreeValueEditor.java Wed Oct  7 12:13:19 2009
@@ -41,6 +41,8 @@
     static final String EMPTY = ""; //$NON-NLS-1$
 
     private boolean refinementOrFilterVisible;
+    
+    private boolean useLocalName;
 
 
     /**
@@ -49,6 +51,7 @@
     public SubtreeValueEditor()
     {
         this.refinementOrFilterVisible = true;
+        this.useLocalName = true;
     }
 
 
@@ -56,10 +59,12 @@
      * Default constructor, used by the {@link ValueEditorManager}.
      *
      * @param refinementOrFilterVisible true if the refinement or filter widget should be visible
+     * @param useLocalName true to use local name for the base
      */
-    public SubtreeValueEditor( boolean refinementOrFilterVisible )
+    public SubtreeValueEditor( boolean refinementOrFilterVisible, boolean useLocalName )
     {
         this.refinementOrFilterVisible = refinementOrFilterVisible;
+        this.useLocalName = useLocalName;
     }
 
 
@@ -74,7 +79,7 @@
             SubtreeSpecificationValueWrapper wrapper = ( SubtreeSpecificationValueWrapper ) value;
 
             SubtreeSpecificationDialog dialog = new SubtreeSpecificationDialog( shell, wrapper.connection,
-                wrapper.subentryDN, wrapper.subtreeSpecification, refinementOrFilterVisible );
+                wrapper.subentryDN, wrapper.subtreeSpecification, refinementOrFilterVisible, useLocalName );
             if ( dialog.open() == TextDialog.OK && dialog.getSubtreeSpecificationValue() != null )
             {
                 setValue( dialog.getSubtreeSpecificationValue() );

Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/search/EntryWidget.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/search/EntryWidget.java?rev=822686&r1=822685&r2=822686&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/search/EntryWidget.java (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/search/EntryWidget.java Wed Oct  7 12:13:19 2009
@@ -80,6 +80,9 @@
     /** The suffix. */
     private LdapDN suffix;
 
+    /** Flag indicating if using local name for the dn */
+    boolean useLocalName;
+
 
     /**
      * Creates a new instance of EntryWidget.
@@ -99,7 +102,7 @@
      */
     public EntryWidget( IBrowserConnection browserConnection, LdapDN dn )
     {
-        this( browserConnection, dn, null );
+        this( browserConnection, dn, null, false );
     }
 
 
@@ -109,12 +112,14 @@
      * @param browserConnection the connection
      * @param dn the initial DN
      * @param suffix the suffix
+     * @param useLocalName true to use local name for the DN
      */
-    public EntryWidget( IBrowserConnection browserConnection, LdapDN dn, LdapDN suffix )
+    public EntryWidget( IBrowserConnection browserConnection, LdapDN dn, LdapDN suffix, boolean useLocalName )
     {
         this.browserConnection = browserConnection;
         this.dn = dn;
         this.suffix = suffix;
+        this.useLocalName = useLocalName;
     }
 
 
@@ -197,7 +202,7 @@
 
                     // calculate initial DN
                     LdapDN initialDN = dn;
-                    if( suffix != null && suffix.size() > 0 )
+                    if( useLocalName && suffix != null && suffix.size() > 0 )
                     {
                         if( initialDN != null && initialDN.size() > 0 )
                         {
@@ -227,7 +232,7 @@
                     if ( selectedEntry != null )
                     {
                         dn = selectedEntry.getDn();
-                        if( suffix != null && suffix.size() > 0 )
+                        if( useLocalName && suffix != null && suffix.size() > 0 )
                         {
                             dn = DnUtils.getPrefixName( dn, suffix );
                         }
@@ -334,7 +339,7 @@
      */
     public void setInput( IBrowserConnection browserConnection, LdapDN dn )
     {
-        setInput( browserConnection, dn, null );
+        setInput( browserConnection, dn, null, false );
     }
 
 
@@ -344,14 +349,16 @@
      * @param browserConnection the connection
      * @param dn the DN
      * @param suffix the suffix
+     * @param useLocalName true to use local name for the DN
      */
-    public void setInput( IBrowserConnection browserConnection, LdapDN dn, LdapDN suffix )
+    public void setInput( IBrowserConnection browserConnection, LdapDN dn, LdapDN suffix, boolean useLocalName )
     {
         if ( this.browserConnection != browserConnection || this.dn != dn || this.suffix != suffix )
         {
             this.browserConnection = browserConnection;
             this.dn = dn;
             this.suffix = suffix;
+            this.useLocalName = useLocalName;
             dnChanged();
         }
     }