directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elecha...@apache.org
Subject svn commit: r1686952 - in /directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor: dialogs/ pages/ wrappers/
Date Mon, 22 Jun 2015 22:24:44 GMT
Author: elecharny
Date: Mon Jun 22 22:24:44 2015
New Revision: 1686952

URL: http://svn.apache.org/r1686952
Log:
o Made the rootDse a Table
o Created some decorator and widget for plain String parameters
o Prepared the code for the authzRegexp and authIdRewrite parameters

Added:
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteDecorator.java
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpDecorator.java
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueDecorator.java
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueWrapper.java
Modified:
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/OptionsPage.java
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages.properties
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_de.properties
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_fr.properties
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteWrapper.java
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpWrapper.java

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java?rev=1686952&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java Mon Jun 22 22:24:44 2015
@@ -0,0 +1,197 @@
+/*
+ *  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.studio.openldap.config.editor.dialogs;
+
+
+import org.apache.directory.studio.common.ui.AddEditDialog;
+import org.apache.directory.studio.common.ui.widgets.BaseWidgetUtils;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+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.Group;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.apache.directory.studio.openldap.config.editor.wrappers.StringValueWrapper;
+
+
+/**
+ * The StringValueDialog is used to edit a String, which is a value for any simple multiple
+ * value attribute.
+ * 
+ * <pre>
+ * +---------------------------------------+
+ * |  XXXXXXXX Input                       |
+ * | .-----------------------------------. |
+ * | | Value  : [                      ] | |
+ * | '-----------------------------------' |
+ * |                                       |
+ * |  (cancel)                       (OK)  |
+ * +---------------------------------------+
+ * 
+ * </pre>
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class StringValueDialog extends AddEditDialog<StringValueWrapper>
+{
+    // UI widgets
+    /** The attribute name */
+    private String attributeName;
+    
+    /** The String value */
+    private Text stringValue;
+    
+    /**
+     * Create a new instance of the String
+     * 
+     * @param parentShell The parent Shell
+     */
+    public StringValueDialog( Shell parentShell, String atttributeName )
+    {
+        super( parentShell );
+        super.setShellStyle( super.getShellStyle() | SWT.RESIZE );
+        this.attributeName = atttributeName;
+    }
+    
+    
+    /**
+     * The listener for the String Text
+     */
+    private ModifyListener stringValueTextListener = new ModifyListener()
+    {
+        public void modifyText( ModifyEvent e )
+        {
+            Button okButton = getButton( IDialogConstants.OK_ID );
+            
+            // This button might be null when the dialog is called.
+            if ( okButton == null )
+            {
+                return;
+            }
+
+            getEditedElement().setValue( stringValue.getText() );
+            okButton.setEnabled( true );
+        }
+    };
+    
+    
+    /**
+     * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+     */
+    protected void configureShell( Shell shell )
+    {
+        super.configureShell( shell );
+        shell.setText( attributeName );
+    }
+
+
+    /**
+     * Create the Dialog for StringValue :
+     * <pre>
+     * +---------------------------------------+
+     * |  XXXXXXXX                             |
+     * | .-----------------------------------. |
+     * | | Value  : [                      ] | |
+     * | '-----------------------------------' |
+     * |                                       |
+     * |  (cancel)                       (OK)  |
+     * +---------------------------------------+
+     * @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 );
+        composite.setLayoutData( gd );
+
+        // StringValue Group
+        Group stringValueGroup = BaseWidgetUtils.createGroup( parent, "Value input", 1 );
+        GridLayout stringValueGroupGridLayout = new GridLayout( 2, false );
+        stringValueGroup.setLayout( stringValueGroupGridLayout );
+        stringValueGroup.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+
+        // String Text
+        BaseWidgetUtils.createLabel( stringValueGroup, attributeName + ":", 1 );
+        stringValue = BaseWidgetUtils.createText( stringValueGroup, "", 1 );
+        stringValue.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+
+        initDialog();
+        addListeners();
+
+        applyDialogFont( composite );
+        
+        return composite;
+    }
+
+
+    /**
+     * Initializes the UI from the String
+     */
+    protected void initDialog()
+    {
+        StringValueWrapper editedElement = (StringValueWrapper)getEditedElement();
+        
+        if ( editedElement != null )
+        {
+            String value = editedElement.getValue();
+            
+            if ( value == null )
+            {
+                stringValue.setText( "" );
+            }
+            else
+            {
+                stringValue.setText( editedElement.getValue() );
+            }
+        }
+    }
+
+
+    /**
+     * Add a new Element that will be edited
+     */
+    public void addNewElement()
+    {
+        setEditedElement( new StringValueWrapper( "", true ) );
+    }
+
+
+    @Override
+    public void addNewElement( StringValueWrapper editedElement )
+    {
+        StringValueWrapper newElement = (StringValueWrapper)editedElement.clone();
+        setEditedElement( newElement );
+    }
+
+    
+    /**
+     * Adds listeners.
+     */
+    private void addListeners()
+    {
+        stringValue.addModifyListener( stringValueTextListener );
+    }
+}

Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/OptionsPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/OptionsPage.java?rev=1686952&r1=1686951&r2=1686952&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/OptionsPage.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/OptionsPage.java Mon Jun 22 22:24:44 2015
@@ -35,11 +35,15 @@ import org.apache.directory.studio.openl
 import org.apache.directory.studio.openldap.common.ui.model.RestrictOperationEnum;
 import org.apache.directory.studio.openldap.config.editor.OpenLDAPServerConfigurationEditor;
 import org.apache.directory.studio.openldap.config.editor.wrappers.AllowFeatureDecorator;
+import org.apache.directory.studio.openldap.config.editor.wrappers.AuthIdRewriteDecorator;
 import org.apache.directory.studio.openldap.config.editor.wrappers.AuthIdRewriteWrapper;
+import org.apache.directory.studio.openldap.config.editor.wrappers.AuthzRegexpDecorator;
 import org.apache.directory.studio.openldap.config.editor.wrappers.AuthzRegexpWrapper;
 import org.apache.directory.studio.openldap.config.editor.wrappers.DisallowFeatureDecorator;
 import org.apache.directory.studio.openldap.config.editor.wrappers.RequireConditionDecorator;
 import org.apache.directory.studio.openldap.config.editor.wrappers.RestrictOperationDecorator;
+import org.apache.directory.studio.openldap.config.editor.wrappers.StringValueDecorator;
+import org.apache.directory.studio.openldap.config.editor.wrappers.StringValueWrapper;
 import org.apache.directory.studio.openldap.config.model.OlcGlobal;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
@@ -120,11 +124,11 @@ import org.eclipse.ui.forms.widgets.Tabl
  * | +---------------------------------------+ +----------------------------------------+ |
  * | | +--------------------------+          | | +--------------------------+           | |
  * | | | xyz                      | (Add...) | | | xyz                      | (Add...)  | |
- * | | | abcde                    |          | | | abcde                    |           | |
- * | | | aaa                      | (Edit)   | | | aaa                      | (Edit...) | |
- * | | |                          |          | | |                          |           | |
- * | | |                          | (Delete) | | |                          | (Delete)  | |
- * | | +--------------------------+          | | +--------------------------+           | |
+ * | | | abcde                    |          | | | abcde                    | (Edit...) | |
+ * | | | aaa                      | (Edit)   | | | aaa                      | (Delete)  | |
+ * | | |                          |          | | |                          | --------- | |
+ * | | |                          | (Delete) | | |                          | (Up...)   | |
+ * | | +--------------------------+          | | +--------------------------+ (Down...) | |
  * | +---------------------------------------+ +----------------------------------------+ |
  * | .----------------------------------------------------------------------------------. |
  * | |V Miscellaneous options                                                           | |
@@ -133,9 +137,12 @@ import org.eclipse.ui.forms.widgets.Tabl
  * | |                                                                                  | |
  * | | Referral :  [///////////////////////]     Authz Policy :    [------------------] | |
  * | |                                                                                  | |
- * | | Root DSE :  [///////////////////////]     GentleHUP :       [X]                  | |
- * | |                                                                                  | |
- * | | Read Only : [X]                           Reverse Lookup :  [X]                  | |
+ * | | Root DSE :                                Other :                                | |
+ * | | +--------------------------+              .------------------------------------. | |
+ * | | | xyz                      | (Add...)     | [X] Read Only                      | | |
+ * | | | abcde                    |              | [X] GentleHUP                      | | |
+ * | | | aaa                      | (Delete)     | [X] Reverse Lookup                 | | |
+ * | | +--------------------------+              '------------------------------------' | |
  * | +----------------------------------------------------------------------------------+ |
  * +--------------------------------------------------------------------------------------+
  * </pre>
@@ -171,7 +178,6 @@ public class OptionsPage extends OpenLDA
     /** The olcAuthzRegexp parameter */
     private TableWidget<AuthzRegexpWrapper> authzRegexpTableWidget;
 
-    
     // The miscellaneous parameters
     /** The olcArgsFile parameter */
     private Text argsFileText; 
@@ -183,7 +189,7 @@ public class OptionsPage extends OpenLDA
     private Text referralText; 
 
     /** The olcRootDSE parameter */
-    private Text rootDseText; 
+    private TableWidget<StringValueWrapper> rootDseTableWidget; 
 
     /** The olcAuthzPolicy parameter */
     private Combo authzPolicyCombo; 
@@ -275,6 +281,44 @@ public class OptionsPage extends OpenLDA
     
     
     /**
+     * The olcAuthIdRewrite listener
+     */
+    private WidgetModifyListener authIdRewriteListener = new WidgetModifyListener()
+    {
+        public void widgetModified( WidgetModifyEvent e )
+        {
+            List<String> authIdRewrites = new ArrayList<String>();
+            
+            for ( AuthIdRewriteWrapper authIdRewrite : authIdRewriteTableWidget.getElements() )
+            {
+                authIdRewrites.add( authIdRewrite.toString() );
+            }
+            
+            getConfiguration().getGlobal().setOlcAuthIDRewrite( authIdRewrites );
+        }
+    };
+    
+    
+    /**
+     * The olcAuthzRegexp listener
+     */
+    private WidgetModifyListener authzRegexpListener = new WidgetModifyListener()
+    {
+        public void widgetModified( WidgetModifyEvent e )
+        {
+            List<String> authzRegexps = new ArrayList<String>();
+            
+            for ( AuthzRegexpWrapper authzRegexp : authzRegexpTableWidget.getElements() )
+            {
+                authzRegexps.add( authzRegexp.toString() );
+            }
+            
+            getConfiguration().getGlobal().setOlcAuthzRegexp( authzRegexps );
+        }
+    };
+    
+    
+    /**
      * The olcArgsFile listener
      */
     private ModifyListener argsFileTextListener = new ModifyListener()
@@ -313,11 +357,18 @@ public class OptionsPage extends OpenLDA
     /**
      * The olcRootDSE listener
      */
-    private ModifyListener rootDseTextListener = new ModifyListener()
+    private WidgetModifyListener rootDseTableListener = new WidgetModifyListener()
     {
-        public void modifyText( ModifyEvent e )
+        public void widgetModified( WidgetModifyEvent e )
         {
-            getConfiguration().getGlobal().setOlcRootDSE( rootDseText.getText() );
+            List<String> rootDses = new ArrayList<String>();
+            
+            for ( StringValueWrapper rootDse : rootDseTableWidget.getElements() )
+            {
+                rootDses.add( rootDse.getValue() );
+            }
+            
+            getConfiguration().getGlobal().setOlcRootDSE( rootDses );
         }
     };
     
@@ -590,6 +641,14 @@ public class OptionsPage extends OpenLDA
         Section section = createSection( toolkit, parent, 
             Messages.getString( "OpenLDAPOptionsPage.AuthzRewriteRules" ) );
         Composite composite = createSectionComposite( toolkit, section, 2, false );
+
+        // The olcAuthIdRewrite parameter table
+        authIdRewriteTableWidget = new TableWidget<AuthIdRewriteWrapper>( 
+            new AuthIdRewriteDecorator( composite.getShell() ) );
+
+        authIdRewriteTableWidget.createWidgetNoEdit( composite, toolkit );
+        authIdRewriteTableWidget.getControl().setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
+        addModifyListener( authIdRewriteTableWidget, authIdRewriteListener );
     }
 
 
@@ -599,13 +658,13 @@ public class OptionsPage extends OpenLDA
      * .----------------------------------------.
      * |V Authentication ID Regexp              |
      * +----------------------------------------+
-     * | +--------------------------+           |
+     * | +--------------------------+           | 
      * | | xyz                      | (Add...)  |
-     * | | abcde                    |           |
-     * | | aaa                      | (Edit...) |
-     * | |                          |           |
-     * | |                          | (Delete)  |
-     * | +--------------------------+           |
+     * | | abcde                    | (Edit...) |
+     * | | aaa                      | (Delete)  |
+     * | |                          | --------- |
+     * | |                          | (Up...)   |
+     * | +--------------------------+ (Down...) |
      * +----------------------------------------+
      * </pre>
      * @param toolkit the toolkit
@@ -616,6 +675,14 @@ public class OptionsPage extends OpenLDA
         Section section = createSection( toolkit, parent, 
             Messages.getString( "OpenLDAPOptionsPage.AuthIdRegexps" ) );
         Composite composite = createSectionComposite( toolkit, section, 2, false );
+
+        // The olcAuthzRegexp parameter table
+        authzRegexpTableWidget = new TableWidget<AuthzRegexpWrapper>( 
+            new AuthzRegexpDecorator( composite.getShell() ) );
+
+        authzRegexpTableWidget.createWidgetNoEdit( composite, toolkit );
+        authzRegexpTableWidget.getControl().setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
+        addModifyListener( authzRegexpTableWidget, authzRegexpListener );
     }
 
 
@@ -629,9 +696,12 @@ public class OptionsPage extends OpenLDA
      * |                                                                                  |
      * | Referral :  [///////////////////////]     Authz Policy :    [------------------] |
      * |                                                                                  |
-     * | Root DSE :  [///////////////////////]     GentleHUP :       [X]                  |
-     * |                                                                                  |
-     * | Read Only : [X]                           Reverse Lookup :  [X]                  |
+     * | Root DSE :                                Other :                                |
+     * | +--------------------------+              .------------------------------------. |
+     * | | xyz                      | (Add...)     | [X] Read Only                      | |
+     * | | abcde                    |              | [X] GentleHUP                      | |
+     * | | aaa                      | (Delete)     | [X] Reverse Lookup                 | |
+     * | +--------------------------+              '------------------------------------' |
      * +----------------------------------------------------------------------------------+
      * </pre>
      * @param toolkit the toolkit
@@ -657,14 +727,29 @@ public class OptionsPage extends OpenLDA
             Messages.getString( "OpenLDAPOptionsPage.Referral" ), "", -1, referralTextListener );
         toolkit.createLabel( composite, "" );
 
-        // The authzPolocy parameter
+        // The authzPolicy parameter
         toolkit.createLabel( composite, Messages.getString( "OpenLDAPSecurityPage.AuthzPolicy" ) ); //$NON-NLS-1$
         authzPolicyCombo = BaseWidgetUtils.createCombo( composite, AuthzPolicyEnum.getNames(), -1, 1 );
         authzPolicyCombo.addSelectionListener( authzPolicyComboListener );
 
+        // The olcRootDSE label.
+        toolkit.createLabel( composite, Messages.getString( "OpenLDAPOptionsPage.RootDSE" ) );
+        toolkit.createLabel( composite, "" );
+        toolkit.createLabel( composite, "" );
+
+        // The olcOther label.
+        toolkit.createLabel( composite, 
+            Messages.getString( "OpenLDAPOptionsPage.Others" ) );
+        toolkit.createLabel( composite, "" );
+
         // The olcRootDSE parameter.
-        rootDseText = CommonUIUtils.createText( toolkit, composite, 
-            Messages.getString( "OpenLDAPOptionsPage.RootDSE" ), "", -1, rootDseTextListener );
+        rootDseTableWidget = new TableWidget<StringValueWrapper>( 
+            new StringValueDecorator( composite.getShell(), "rootDSE" ) );
+
+        rootDseTableWidget.createWidgetWithEdit( composite, toolkit );
+        rootDseTableWidget.getControl().setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
+        addModifyListener( rootDseTableWidget, rootDseTableListener );
+
         toolkit.createLabel( composite, "" );
 
         // The olcGentleHUP Button
@@ -694,11 +779,13 @@ public class OptionsPage extends OpenLDA
         addDirtyListener( disallowFeatureTableWidget );
         addDirtyListener( requireConditionTableWidget );
         addDirtyListener( restrictOperationTableWidget );
+        addDirtyListener( authIdRewriteTableWidget );
+        addDirtyListener( authzRegexpTableWidget );
         addDirtyListener( argsFileText );
         addDirtyListener( pluginLogFileText );
         addDirtyListener( referralText );
         addDirtyListener( authzPolicyCombo );
-        addDirtyListener( rootDseText );
+        addDirtyListener( rootDseTableWidget );
         addDirtyListener( gentleHupCheckbox );
         addDirtyListener( readOnlyCheckbox );
         addDirtyListener( reverseLookupCheckbox );
@@ -714,11 +801,13 @@ public class OptionsPage extends OpenLDA
         removeDirtyListener( disallowFeatureTableWidget );
         removeDirtyListener( requireConditionTableWidget );
         removeDirtyListener( restrictOperationTableWidget );
+        removeDirtyListener( authIdRewriteTableWidget );
+        removeDirtyListener( authzRegexpTableWidget );
         removeDirtyListener( argsFileText );
         removeDirtyListener( pluginLogFileText );
         removeDirtyListener( referralText );
         removeDirtyListener( authzPolicyCombo );
-        removeDirtyListener( rootDseText );
+        removeDirtyListener( rootDseTableWidget );
         removeDirtyListener( gentleHupCheckbox );
         removeDirtyListener( readOnlyCheckbox );
         removeDirtyListener( reverseLookupCheckbox );
@@ -817,6 +906,44 @@ public class OptionsPage extends OpenLDA
                 restrictOperationTableWidget.setElements( new ArrayList<RestrictOperationEnum>() );
             }
 
+            // AuthID Rewrite Table Widget
+            List<String> authIdRewrites = global.getOlcAuthIDRewrite();
+
+            if ( authIdRewrites != null )
+            {
+                List<AuthIdRewriteWrapper> rewrites = new ArrayList<AuthIdRewriteWrapper>();
+                
+                for ( String rewrite : authIdRewrites )
+                {
+                    rewrites.add( new AuthIdRewriteWrapper( rewrite ) );
+                }
+                
+                authIdRewriteTableWidget.setElements( rewrites );
+            }
+            else
+            {
+                authIdRewriteTableWidget.setElements( new ArrayList<AuthIdRewriteWrapper>() );
+            }
+
+            // Authz Regexp Table Widget
+            List<String> authzRegexps = global.getOlcRestrict();
+
+            if ( authzRegexps != null )
+            {
+                List<AuthzRegexpWrapper> regexps = new ArrayList<AuthzRegexpWrapper>();
+                
+                for ( String regexp : authzRegexps )
+                {
+                    regexps.add( new AuthzRegexpWrapper( regexp ) );
+                }
+                
+                authzRegexpTableWidget.setElements( regexps );
+            }
+            else
+            {
+                authzRegexpTableWidget.setElements( new ArrayList<AuthzRegexpWrapper>() );
+            }
+
             // Update the ArgsFileText
             BaseWidgetUtils.setValue( global.getOlcArgsFile(), argsFileText );
 
@@ -855,7 +982,23 @@ public class OptionsPage extends OpenLDA
             }
 
             // Update the RootDSEText
-            BaseWidgetUtils.setValue( global.getOlcRootDSE(), rootDseText );
+            List<String> rootDses = global.getOlcRootDSE();
+
+            if ( rootDses != null )
+            {
+                List<StringValueWrapper> roots = new ArrayList<StringValueWrapper>();
+                
+                for ( String rootDse : rootDses )
+                {
+                    roots.add( new StringValueWrapper( rootDse, true ) );
+                }
+                
+                rootDseTableWidget.setElements( roots );
+            }
+            else
+            {
+                rootDseTableWidget.setElements( new ArrayList<StringValueWrapper>() );
+            }
             
             // Update the GentleHupCheckbox
             BaseWidgetUtils.setValue( global.getOlcGentleHUP(), gentleHupCheckbox );

Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages.properties?rev=1686952&r1=1686951&r2=1686952&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages.properties (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages.properties Mon Jun 22 22:24:44 2015
@@ -159,10 +159,11 @@ OpenLDAPOptionsPage.ArgsFile=Arguments F
 OpenLDAPOptionsPage.PluginLogFile=Plugin Log File :
 OpenLDAPOptionsPage.Referral=URL's Referral :
 OpenLDAPSecurityPage.AuthzPolicy=Proxy Authorization :
-OpenLDAPOptionsPage.RootDSE=RootDSE file :
+OpenLDAPOptionsPage.RootDSE=RootDSE files :
 OpenLDAPOptionsPage.GentleHUP=GentleHUP
 OpenLDAPOptionsPage.ReadOnly=Read Only
 OpenLDAPOptionsPage.ReverseLookup=Reverse Lookup
+OpenLDAPOptionsPage.Others=Others :
 
 #---------------------------------------------------------------------------------------
 # The Database page

Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_de.properties?rev=1686952&r1=1686951&r2=1686952&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_de.properties (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_de.properties Mon Jun 22 22:24:44 2015
@@ -159,10 +159,11 @@ OpenLDAPOptionsPage.ArgsFile=Args file :
 OpenLDAPOptionsPage.PluginLogFile=Plugin Log File :
 OpenLDAPOptionsPage.Referral=URL's Referral :
 OpenLDAPSecurityPage.AuthzPolicy=Proxy Authorization :
-OpenLDAPOptionsPage.RootDSE=RootDSE file :
+OpenLDAPOptionsPage.RootDSE=RootDSE files :
 OpenLDAPOptionsPage.GentleHUP=GentleHUP
 OpenLDAPOptionsPage.ReadOnly=Read Only
 OpenLDAPOptionsPage.ReverseLookup=Reverse Lookup
+OpenLDAPOptionsPage.Others=Others :
 
 #---------------------------------------------------------------------------------------
 # The Database page

Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_fr.properties?rev=1686952&r1=1686951&r2=1686952&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_fr.properties (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/pages/messages_fr.properties Mon Jun 22 22:24:44 2015
@@ -159,11 +159,11 @@ OpenLDAPOptionsPage.ArgsFile=Fichier lig
 OpenLDAPOptionsPage.PluginLogFile=Fichier de log des plugins :
 OpenLDAPOptionsPage.Referral=URL de referral
 OpenLDAPSecurityPage.AuthzPolicy=Authorisation d\u00E9l\u00E9gu\u00E9e :
-OpenLDAPOptionsPage.RootDSE=Fichier RootDSE :
+OpenLDAPOptionsPage.RootDSE=Fichiers RootDSE :
 OpenLDAPOptionsPage.GentleHUP=Arr\u00EAt contr\u00F4l\u00E9
 OpenLDAPOptionsPage.ReadOnly=Lecture Seule
 OpenLDAPOptionsPage.ReverseLookup=Reverse Lookup
-
+OpenLDAPOptionsPage.Others=Autres :
 #---------------------------------------------------------------------------------------
 # The Database page
 #---------------------------------------------------------------------------------------

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteDecorator.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteDecorator.java?rev=1686952&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteDecorator.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteDecorator.java Mon Jun 22 22:24:44 2015
@@ -0,0 +1,99 @@
+/*
+ *  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.studio.openldap.config.editor.wrappers;
+
+import org.apache.directory.studio.common.ui.TableDecorator;
+import org.apache.directory.studio.openldap.common.ui.model.DisallowFeatureEnum;
+import org.apache.directory.studio.openldap.config.editor.dialogs.DisallowFeatureDialog;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * A decorator for the AuthIdRewrite table.
+ *  
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class AuthIdRewriteDecorator extends TableDecorator<AuthIdRewriteWrapper>
+{
+    /**
+     * Create a new instance of AuthIdRewriteDecorator
+     * @param parentShell The parent Shell
+     */
+    public AuthIdRewriteDecorator( Shell parentShell )
+    {
+        //setDialog( new AuthIdRewriteDialog( parentShell ) );
+    }
+
+    /**
+     * Construct the label for an AuthIdRewriteWrapper.
+     * 
+     */
+    public String getText( Object element )
+    {
+        if ( element instanceof AuthIdRewriteWrapper )
+        {
+            String authIdRewrite = ( ( AuthIdRewriteWrapper ) element ).toString();
+
+            return authIdRewrite;
+        }
+
+        return super.getText( element );
+    };
+
+
+    /**
+     * Get the image. We have none
+     */
+    public Image getImage( Object element )
+    {
+        return null;
+    };
+
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public int compare( AuthIdRewriteWrapper e1, AuthIdRewriteWrapper e2 )
+    {
+        if ( e1 != null )
+        {
+            if ( e2 == null )
+            {
+                return 1;
+            }
+            else
+            {
+                return e1.compareTo( e2 );
+            }
+        }
+        else
+        {
+            if ( e2 == null )
+            {
+                return 0;
+            }
+            else
+            {
+                return 1;
+            }
+        }
+    }
+}

Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteWrapper.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteWrapper.java?rev=1686952&r1=1686951&r2=1686952&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteWrapper.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthIdRewriteWrapper.java Mon Jun 22 22:24:44 2015
@@ -24,7 +24,42 @@ package org.apache.directory.studio.open
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class AuthIdRewriteWrapper
+public class AuthIdRewriteWrapper implements Cloneable, Comparable<AuthIdRewriteWrapper>
 {
+    /** The rewrite */
+    private String rewrite;
+    
+    /**
+     * Creates a new instance of AuthIdRewriteWrapper using a String value
+     * 
+     * @param rewrite The value
+     */
+    public AuthIdRewriteWrapper( String rewrite )
+    {
+        this.rewrite = rewrite;
+    }
 
+
+    /**
+     * @see Comparable#compareTo()
+     */
+    public int compareTo( AuthIdRewriteWrapper that )
+    {
+        if ( that == null )
+        {
+            return 1;
+        }
+        
+        // 
+        return 0;
+    }
+
+    
+    /**
+     * @see Object#toString()
+     */
+    public String toString()
+    {
+        return rewrite;
+    }
 }

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpDecorator.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpDecorator.java?rev=1686952&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpDecorator.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpDecorator.java Mon Jun 22 22:24:44 2015
@@ -0,0 +1,99 @@
+/*
+ *  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.studio.openldap.config.editor.wrappers;
+
+import org.apache.directory.studio.common.ui.TableDecorator;
+import org.apache.directory.studio.openldap.common.ui.model.DisallowFeatureEnum;
+import org.apache.directory.studio.openldap.config.editor.dialogs.DisallowFeatureDialog;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * A decorator for the AuthzRegexp table.
+ *  
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class AuthzRegexpDecorator extends TableDecorator<AuthzRegexpWrapper>
+{
+    /**
+     * Create a new instance of AuthzRegexpDecorator
+     * @param parentShell The parent Shell
+     */
+    public AuthzRegexpDecorator( Shell parentShell )
+    {
+        //setDialog( new AuthzRegexpWrapperDialog( parentShell ) );
+    }
+
+    /**
+     * Construct the label for an AuthIdRewriteWrapper.
+     * 
+     */
+    public String getText( Object element )
+    {
+        if ( element instanceof AuthzRegexpWrapper )
+        {
+            String authzRegexp = ( ( AuthzRegexpWrapper ) element ).toString();
+
+            return authzRegexp;
+        }
+
+        return super.getText( element );
+    };
+
+
+    /**
+     * Get the image. We have none
+     */
+    public Image getImage( Object element )
+    {
+        return null;
+    };
+
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public int compare( AuthzRegexpWrapper e1, AuthzRegexpWrapper e2 )
+    {
+        if ( e1 != null )
+        {
+            if ( e2 == null )
+            {
+                return 1;
+            }
+            else
+            {
+                return e1.compareTo( e2 );
+            }
+        }
+        else
+        {
+            if ( e2 == null )
+            {
+                return 0;
+            }
+            else
+            {
+                return 1;
+            }
+        }
+    }
+}

Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpWrapper.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpWrapper.java?rev=1686952&r1=1686951&r2=1686952&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpWrapper.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/AuthzRegexpWrapper.java Mon Jun 22 22:24:44 2015
@@ -20,11 +20,53 @@
 package org.apache.directory.studio.openldap.config.editor.wrappers;
 
 /**
- * A wrapper class for the values stored in the olcAuthzRegexp attribute.
+ * A wrapper class for the values stored in the olcAuthzRegexp attribute. It contains
+ * two argument :
+ * <pre>
+ * &lt;match&gt; &lt;replace&gt; 
+ * </pre>
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class AuthzRegexpWrapper
+public class AuthzRegexpWrapper implements Cloneable, Comparable<AuthzRegexpWrapper>
 {
+    /** The match part */
+    private String match;
+    
+    /** The replace part */
+    private String replace;
+    
+    /**
+     * Creates a new instance of AuthzRegexpWrapper using a String value
+     * 
+     * @param regexp The value
+     */
+    public AuthzRegexpWrapper( String authzRegexp )
+    {
+        this.match = authzRegexp;
+    }
 
+
+    /**
+     * @see Comparable#compareTo()
+     */
+    public int compareTo( AuthzRegexpWrapper that )
+    {
+        if ( that == null )
+        {
+            return 1;
+        }
+        
+        // 
+        return 0;
+    }
+
+    
+    /**
+     * @see Object#toString()
+     */
+    public String toString()
+    {
+        return match + ' ' + replace;
+    }
 }

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueDecorator.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueDecorator.java?rev=1686952&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueDecorator.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueDecorator.java Mon Jun 22 22:24:44 2015
@@ -0,0 +1,97 @@
+/*
+ *  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.studio.openldap.config.editor.wrappers;
+
+import org.apache.directory.studio.common.ui.TableDecorator;
+import org.apache.directory.studio.openldap.config.editor.dialogs.StringValueDialog;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * A decorator for a String Value table.
+ *  
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class StringValueDecorator extends TableDecorator<StringValueWrapper>
+{
+    /**
+     * Create a new instance of StringValueDecorator
+     * @param parentShell The parent Shell
+     */
+    public StringValueDecorator( Shell parentShell, String attributeName )
+    {
+        setDialog( new StringValueDialog( parentShell, attributeName ) );
+    }
+    
+
+    /**
+     * Construct the label for an String.
+     * 
+     */
+    public String getText( Object element )
+    {
+        if ( element instanceof String )
+        {
+            return ( String ) element;
+        }
+
+        return super.getText( element );
+    };
+
+
+    /**
+     * Get the image. We have none
+     */
+    public Image getImage( Object element )
+    {
+        return null;
+    };
+
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public int compare( StringValueWrapper e1, StringValueWrapper e2 )
+    {
+        if ( e1 != null )
+        {
+            if ( e2 == null )
+            {
+                return 1;
+            }
+            else
+            {
+                return e1.compareTo( e2 );
+            }
+        }
+        else
+        {
+            if ( e2 == null )
+            {
+                return 0;
+            }
+            else
+            {
+                return 1;
+            }
+        }
+    }
+}

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueWrapper.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueWrapper.java?rev=1686952&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueWrapper.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/StringValueWrapper.java Mon Jun 22 22:24:44 2015
@@ -0,0 +1,165 @@
+/*
+ *  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.studio.openldap.config.editor.wrappers;
+
+import org.apache.directory.api.util.Strings;
+
+/**
+ * A wrapper for a String value.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class StringValueWrapper implements Cloneable, Comparable<StringValueWrapper>
+{
+    /** The value */
+    private String value;
+    
+    /** A flag to tell if the compare should be case sensitive or not */
+    private boolean caseSensitive = true;
+
+    /**
+     * Creates a new instance of StringValueWrapper.
+     */
+    public StringValueWrapper()
+    {
+    }
+
+    /**
+     * Creates a new instance of StringValueWrapper.
+     *
+     * @param value the value
+     */
+    public StringValueWrapper( String value, boolean caseSensitive )
+    {
+        this.value = value;
+        this.caseSensitive = caseSensitive;
+    }
+
+    
+    /**
+     * @return the value
+     */
+    public String getValue()
+    {
+        return value;
+    }
+
+    /**
+     * @param value the value to set
+     */
+    public void setValue( String value )
+    {
+        this.value = value;
+    }
+    
+    
+    /**
+     * Clone the current object
+     */
+    public StringValueWrapper clone()
+    {
+        try
+        {
+            return (StringValueWrapper)super.clone();
+        }
+        catch ( CloneNotSupportedException e )
+        {
+            return null;
+        }
+    }
+
+    
+    /**
+     * @see Object#equals(Object)
+     */
+    public boolean equals( Object that )
+    {
+        // Quick test
+        if ( this == that )
+        {
+            return true;
+        }
+        
+        if ( that instanceof StringValueWrapper )
+        {
+            StringValueWrapper thatInstance = (StringValueWrapper)that;
+            
+            if ( caseSensitive )
+            {
+                return value.equals( thatInstance.value );
+            }
+            else
+            {
+                return value.equalsIgnoreCase( thatInstance.value );
+            }
+        }
+        else
+        {
+            return false;
+        }
+    }
+
+    
+    /**
+     * @see Object#hashCode()
+     */
+    public int hashCode()
+    {
+        int h = 37;
+        
+        if ( value != null )
+        {
+            h += h*17 + value.hashCode();
+        }
+        
+        return h;
+    }
+
+
+    /**
+     * @see Comparable#compareTo()
+     */
+    public int compareTo( StringValueWrapper that )
+    {
+        if ( that == null )
+        {
+            return 1;
+        }
+        
+        // Check the value
+        if ( Strings.isEmpty( value ) )
+        {
+            return -1;
+        }
+        else
+        {
+            return value.compareToIgnoreCase( that.value );
+        }
+    }
+    
+    
+    /**
+     * @see Object#toString()
+     */
+    public String toString()
+    {
+        return value;
+    }
+}



Mime
View raw message