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/12 19:24:36 UTC

svn commit: r528050 - in /directory/ldapstudio/trunk/ldapstudio-apacheds-configuration: ./ icons/ src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/ src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/dialogs/ src/ma...

Author: pamarcelot
Date: Thu Apr 12 10:24:34 2007
New Revision: 528050

URL: http://svn.apache.org/viewvc?view=rev&rev=528050
Log:
Attached the UI to the Model.
Added listeners on every UI fields that trigger the dirty state of the editor.
Added icons for Partition, Interceptor and Extended Operation.

Added:
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/extended_operation.gif   (with props)
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/interceptor.gif   (with props)
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/partition.gif   (with props)
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/dialogs/
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/dialogs/IndexedAttributeDialog.java
Modified:
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/PluginConstants.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/IndexedAttribute.java
    directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Interceptor.java

Added: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/extended_operation.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/extended_operation.gif?view=auto&rev=528050
==============================================================================
Binary file - no diff available.

Propchange: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/extended_operation.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/interceptor.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/interceptor.gif?view=auto&rev=528050
==============================================================================
Binary file - no diff available.

Propchange: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/interceptor.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/partition.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/partition.gif?view=auto&rev=528050
==============================================================================
Binary file - no diff available.

Propchange: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/icons/partition.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/plugin.xml Thu Apr 12 10:24:34 2007
@@ -43,6 +43,7 @@
             default="true"
             icon="icons/editor.gif"
             id="org.apache.directory.ldapstudio.apacheds.configuration.editor"
-            name="Server Configuration Editor"/>
+            name="Server Configuration Editor">
+      </editor>
    </extension>
 </plugin>

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/PluginConstants.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/PluginConstants.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/PluginConstants.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/PluginConstants.java Thu Apr 12 10:24:34 2007
@@ -29,4 +29,7 @@
 {
     public static final String IMG_VERTICAL_ORIENTATION = "icons/vertical_orientation.gif";
     public static final String IMG_HORIZONTAL_ORIENTATION = "icons/horizontal_orientation.gif"; 
+    public static final String IMG_PARTITION = "icons/partition.gif"; 
+    public static final String IMG_INTERCEPTOR= "icons/interceptor.gif"; 
+    public static final String IMG_EXTENDED_OPERATION = "icons/extended_operation.gif"; 
 }

Added: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/dialogs/IndexedAttributeDialog.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/dialogs/IndexedAttributeDialog.java?view=auto&rev=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/dialogs/IndexedAttributeDialog.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/dialogs/IndexedAttributeDialog.java Thu Apr 12 10:24:34 2007
@@ -0,0 +1,193 @@
+/*
+ *  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.apacheds.configuration.dialogs;
+
+
+import org.apache.directory.ldapstudio.apacheds.configuration.model.IndexedAttribute;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.VerifyEvent;
+import org.eclipse.swt.events.VerifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+
+
+/**
+ * This class implements the Dialog for Indexed Attribute.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class IndexedAttributeDialog extends Dialog
+{
+    /** The Indexed Attribute */
+    private IndexedAttribute indexedAttribute;
+
+    /** The dirty flag */
+    private boolean dirty = false;
+
+    // UI Fields
+    private Text attributeIdText;
+    private Text cacheSizeText;
+
+
+    /**
+     * Creates a new instance of IndexedAttributeDialog.
+     */
+    public IndexedAttributeDialog( IndexedAttribute indexedAttribute )
+    {
+        super( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell() );
+        this.indexedAttribute = indexedAttribute;
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+     */
+    protected void configureShell( Shell newShell )
+    {
+        super.configureShell( newShell );
+        newShell.setText( "Indexed Attribute" );
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+     */
+    protected Control createDialogArea( Composite parent )
+    {
+        Composite composite = new Composite( parent, SWT.NONE );
+        GridLayout layout = new GridLayout( 2, false );
+        composite.setLayout( layout );
+        composite.setLayoutData( new GridData( GridData.FILL, GridData.FILL, true, true ) );
+
+        Label attributeIdLabel = new Label( composite, SWT.NONE );
+        attributeIdLabel.setText( "Attribute ID:" );
+
+        attributeIdText = new Text( composite, SWT.BORDER );
+        attributeIdText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+
+        Label cacheSizeLabel = new Label( composite, SWT.NONE );
+        cacheSizeLabel.setText( "Cache Size:" );
+
+        cacheSizeText = new Text( composite, SWT.BORDER );
+        cacheSizeText.addVerifyListener( new VerifyListener()
+        {
+            public void verifyText( VerifyEvent e )
+            {
+                if ( !e.text.matches( "[0-9]*" ) ) //$NON-NLS-1$
+                {
+                    e.doit = false;
+                }
+            }
+        } );
+        cacheSizeText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+
+        initFromInput();
+        addListeners();
+
+        return composite;
+    }
+
+
+    /**
+     * Initializes the UI from the input.
+     */
+    private void initFromInput()
+    {
+        String attributeId = indexedAttribute.getAttributeId();
+        attributeIdText.setText( ( attributeId == null ) ? "" : attributeId );
+        cacheSizeText.setText( "" + indexedAttribute.getCacheSize() );
+    }
+
+
+    /**
+     * Adds listeners to the UI Fields.
+     */
+    private void addListeners()
+    {
+        attributeIdText.addModifyListener( new ModifyListener()
+        {
+            public void modifyText( ModifyEvent e )
+            {
+                dirty = true;
+            }
+        } );
+
+        cacheSizeText.addModifyListener( new ModifyListener()
+        {
+            public void modifyText( ModifyEvent e )
+            {
+                dirty = true;
+            }
+        } );
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+     */
+    protected void okPressed()
+    {
+        indexedAttribute.setAttributeId( attributeIdText.getText() );
+        try
+        {
+            indexedAttribute.setCacheSize( Integer.parseInt( cacheSizeText.getText() ) );
+        }
+        catch ( NumberFormatException e )
+        {
+            // Nothing to do, it won't happen
+        }
+
+        super.okPressed();
+    }
+
+
+    /**
+     * Gets the Indexed Attribute.
+     *
+     * @return
+     *      the Indexed Attribute
+     */
+    public IndexedAttribute getIndexedAttribute()
+    {
+        return indexedAttribute;
+    }
+
+
+    /**
+     * Returns the dirty flag of the dialog.
+     *
+     * @return
+     *      the dirty flag of the dialog
+     */
+    public boolean isDirty()
+    {
+        return dirty;
+    }
+}

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationDetailsPage.java Thu Apr 12 10:24:34 2007
@@ -24,6 +24,8 @@
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 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.Composite;
@@ -45,6 +47,9 @@
  */
 public class ExtendedOperationDetailsPage implements IDetailsPage
 {
+    /** The associated Master Details Block */
+    private ExtendedOperationsMasterDetailsBlock masterDetailsBlock;
+
     /** The Managed Form */
     private IManagedForm mform;
 
@@ -54,6 +59,28 @@
     // UI fields
     private Text classTypeText;
 
+    // Listeners
+    /** The Modify Listener for Text Widgets */
+    private ModifyListener textModifyListener = new ModifyListener()
+    {
+        public void modifyText( ModifyEvent e )
+        {
+            masterDetailsBlock.setEditorDirty();
+        }
+    };
+
+
+    /**
+     * Creates a new instance of ExtendedOperationDetailsPage.
+     *
+     * @param emdb
+     *      the associated Master Details Block
+     */
+    public ExtendedOperationDetailsPage( ExtendedOperationsMasterDetailsBlock emdb )
+    {
+        masterDetailsBlock = emdb;
+    }
+
 
     /* (non-Javadoc)
      * @see org.eclipse.ui.forms.IDetailsPage#createContents(org.eclipse.swt.widgets.Composite)
@@ -99,6 +126,26 @@
         toolkit.createLabel( client, "Class:" );
         classTypeText = toolkit.createText( client, "" );
         classTypeText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
+
+        addListeners();
+    }
+
+
+    /**
+     * Adds listeners to UI fields.
+     */
+    private void addListeners()
+    {
+        classTypeText.addModifyListener( textModifyListener );
+    }
+
+
+    /**
+     * Removes listeners to UI fields.
+     */
+    private void removeListeners()
+    {
+        classTypeText.removeModifyListener( textModifyListener );
     }
 
 
@@ -173,7 +220,11 @@
      */
     public void refresh()
     {
+        removeListeners();
+
         classTypeText.setText( input.getClassType() );
+
+        addListeners();
     }
 
 

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsMasterDetailsBlock.java Thu Apr 12 10:24:34 2007
@@ -20,6 +20,8 @@
 package org.apache.directory.ldapstudio.apacheds.configuration.editor;
 
 
+import java.util.List;
+
 import org.apache.directory.ldapstudio.apacheds.configuration.Activator;
 import org.apache.directory.ldapstudio.apacheds.configuration.PluginConstants;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.ExtendedOperation;
@@ -28,8 +30,12 @@
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
 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.graphics.Image;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
@@ -43,6 +49,7 @@
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
 
 
 /**
@@ -55,7 +62,15 @@
 {
     /** The associated page */
     private FormPage page;
-    
+
+    /** The editor input */
+    private ServerConfigurationEditorInput input;
+
+    /** The Extended Operations List */
+    private List<ExtendedOperation> extendedOperations;
+
+    private static final String NEW_NAME = "newExtendedOperation";
+
     // UI Fields
     private TableViewer viewer;
     private Button addButton;
@@ -70,6 +85,8 @@
     public ExtendedOperationsMasterDetailsBlock( FormPage page )
     {
         this.page = page;
+        input = ( ServerConfigurationEditorInput ) page.getEditorInput();
+        extendedOperations = input.getServerConfiguration().getExtendedOperations();
     }
 
 
@@ -112,21 +129,111 @@
             }
         } );
         viewer.setContentProvider( new ArrayContentProvider() );
-        viewer.setLabelProvider( new LabelProvider() );
-        viewer
-            .setInput( new Object[]
-                {
-                    new ExtendedOperation( "org.apache.directory.server.ldap.support.extended.GracefulShutdownHandler" ),
-                    new ExtendedOperation(
-                        "org.apache.directory.server.ldap.support.extended.LaunchDiagnosticUiHandler" ) } );
+        viewer.setLabelProvider( new LabelProvider()
+        {
+            public Image getImage( Object element )
+            {
+                return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+                    PluginConstants.IMG_EXTENDED_OPERATION ).createImage();
+            }
+        } );
 
         // Creating the button(s)
         addButton = toolkit.createButton( client, "Add...", SWT.PUSH ); //$NON-NLS-1$
-        gd = new GridData( GridData.VERTICAL_ALIGN_BEGINNING );
-        addButton.setLayoutData( gd );
+        addButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
 
         deleteButton = toolkit.createButton( client, "Delete", SWT.PUSH );
-        deleteButton.setLayoutData( gd );
+        deleteButton.setEnabled( false );
+        deleteButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
+
+        initFromInput();
+        addListeners();
+    }
+
+
+    /**
+     * Initializes the page with the Editor input.
+     */
+    private void initFromInput()
+    {
+        viewer.setInput( extendedOperations );
+    }
+
+
+    /**
+     * Add listeners to UI fields.
+     */
+    private void addListeners()
+    {
+        viewer.addSelectionChangedListener( new ISelectionChangedListener()
+        {
+            public void selectionChanged( SelectionChangedEvent event )
+            {
+                viewer.refresh();
+
+                deleteButton.setEnabled( !event.getSelection().isEmpty() );
+            }
+        } );
+
+        addButton.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                ExtendedOperation newExtendedOperation = new ExtendedOperation( getNewName() );
+                extendedOperations.add( newExtendedOperation );
+                viewer.refresh();
+                viewer.setSelection( new StructuredSelection( newExtendedOperation ) );
+                setEditorDirty();
+            }
+        } );
+
+        deleteButton.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                StructuredSelection selection = ( StructuredSelection ) viewer.getSelection();
+                if ( !selection.isEmpty() )
+                {
+                    ExtendedOperation extendedOperation = ( ExtendedOperation ) selection.getFirstElement();
+
+                    extendedOperations.remove( extendedOperation );
+                    viewer.refresh();
+                    setEditorDirty();
+                }
+            }
+        } );
+    }
+
+
+    /**
+     * Gets a new Name for a new Extended Operation.
+     *
+     * @return 
+     *      a new Name for a new Extended Operation
+     */
+    private String getNewName()
+    {
+        int counter = 1;
+        String name = NEW_NAME;
+        boolean ok = false;
+
+        while ( !ok )
+        {
+            ok = true;
+            name = NEW_NAME + counter;
+
+            for ( ExtendedOperation extendedOperation : extendedOperations )
+            {
+                if ( extendedOperation.getClassType().equalsIgnoreCase( name ) )
+                {
+                    ok = false;
+                }
+            }
+            
+            counter++;
+        }
+
+        return name;
     }
 
 
@@ -173,7 +280,15 @@
      */
     protected void registerPages( DetailsPart detailsPart )
     {
-        detailsPart.registerPage( ExtendedOperation.class, new ExtendedOperationDetailsPage() );
+        detailsPart.registerPage( ExtendedOperation.class, new ExtendedOperationDetailsPage( this ) );
     }
 
+
+    /**
+     * Sets the Editor as dirty.
+     */
+    public void setEditorDirty()
+    {
+        ( ( ServerConfigurationEditor ) page.getEditor() ).setDirty( true );
+    }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ExtendedOperationsPage.java Thu Apr 12 10:24:34 2007
@@ -53,7 +53,6 @@
     public ExtendedOperationsPage( FormEditor editor )
     {
         super( editor, ID, TITLE );
-        masterDetailsBlock = new ExtendedOperationsMasterDetailsBlock( this );
     }
 
 
@@ -64,6 +63,7 @@
     {
         final ScrolledForm form = managedForm.getForm();
         form.setText( "Extended Operations" );
+        masterDetailsBlock = new ExtendedOperationsMasterDetailsBlock( this );
         masterDetailsBlock.createContent( managedForm );
     }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/GeneralPage.java Thu Apr 12 10:24:34 2007
@@ -412,14 +412,6 @@
             }
         } );
 
-        showPasswordCheckbox.addSelectionListener( new SelectionAdapter()
-        {
-            public void widgetSelected( SelectionEvent e )
-            {
-                setEditorDirty();
-            }
-        } );
-
         allowAnonymousAccessCheckbox.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorDetailsPage.java Thu Apr 12 10:24:34 2007
@@ -24,6 +24,8 @@
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 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.Composite;
@@ -45,6 +47,9 @@
  */
 public class InterceptorDetailsPage implements IDetailsPage
 {
+    /** The associated Master Details Block */
+    private InterceptorsMasterDetailsBlock masterDetailsBlock;
+
     /** The Managed Form */
     private IManagedForm mform;
 
@@ -54,6 +59,28 @@
     // UI fields
     private Text nameText;
     private Text classText;
+    
+    // Listeners
+    /** The Modify Listener for Text Widgets */
+    private ModifyListener textModifyListener = new ModifyListener()
+    {
+        public void modifyText( ModifyEvent e )
+        {
+            masterDetailsBlock.setEditorDirty();
+        }
+    };
+
+
+    /**
+     * Creates a new instance of InterceptorDetailsPage.
+     *
+     * @param imdb
+     *      The associated Master Details Block
+     */
+    public InterceptorDetailsPage( InterceptorsMasterDetailsBlock imdb )
+    {
+        masterDetailsBlock = imdb;
+    }
 
 
     /* (non-Javadoc)
@@ -106,6 +133,25 @@
         classText = toolkit.createText( client, "" );
         classText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
     }
+    
+    /**
+     * Adds listeners to UI fields.
+     */
+    private void addListeners()
+    {
+        nameText.addModifyListener( textModifyListener );
+        classText.addModifyListener( textModifyListener );
+    }
+
+
+    /**
+     * Removes listeners to UI fields.
+     */
+    private void removeListeners()
+    {
+        nameText.removeModifyListener( textModifyListener );
+        classText.removeModifyListener( textModifyListener );
+    }
 
 
     /* (non-Javadoc)
@@ -130,8 +176,9 @@
      * @see org.eclipse.ui.forms.IFormPart#commit(boolean)
      */
     public void commit( boolean onSave )
-    {
+    {        
         input.setName( nameText.getText() );
+        input.setClassType( classText.getText() );
     }
 
 
@@ -179,7 +226,17 @@
      */
     public void refresh()
     {
-        nameText.setText( input.getName() );
+        removeListeners();
+        
+        // Name
+        String name = input.getName();
+        nameText.setText( ( name == null ) ? "" : name );
+
+        // Class
+        String classType = input.getClassType();
+        classText.setText( ( classType == null ) ? "" : classType );
+        
+        addListeners();
     }
 
 

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsMasterDetailsBlock.java Thu Apr 12 10:24:34 2007
@@ -20,6 +20,8 @@
 package org.apache.directory.ldapstudio.apacheds.configuration.editor;
 
 
+import java.util.List;
+
 import org.apache.directory.ldapstudio.apacheds.configuration.Activator;
 import org.apache.directory.ldapstudio.apacheds.configuration.PluginConstants;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.Interceptor;
@@ -28,8 +30,12 @@
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
 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.graphics.Image;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
@@ -43,6 +49,7 @@
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
 
 
 /**
@@ -55,11 +62,21 @@
 {
     /** The associated page */
     private FormPage page;
-    
+
+    /** The editor input */
+    private ServerConfigurationEditorInput input;
+
+    /** The Interceptors List */
+    private List<Interceptor> interceptors;
+
+    private static final String NEW_NAME = "New Interceptor ";
+
     // UI Fields
     private TableViewer viewer;
     private Button addButton;
     private Button deleteButton;
+    private Button upButton;
+    private Button downButton;
 
 
     /**
@@ -70,6 +87,8 @@
     public InterceptorsMasterDetailsBlock( FormPage page )
     {
         this.page = page;
+        input = ( ServerConfigurationEditorInput ) page.getEditorInput();
+        interceptors = input.getServerConfiguration().getInterceptors();
     }
 
 
@@ -99,7 +118,7 @@
 
         // Creatig the Table and Table Viewer
         Table table = toolkit.createTable( client, SWT.NULL );
-        GridData gd = new GridData( SWT.FILL, SWT.FILL, true, true, 1, 2 );
+        GridData gd = new GridData( SWT.FILL, SWT.FILL, true, true, 1, 4 );
         gd.heightHint = 20;
         gd.widthHint = 100;
         table.setLayoutData( gd );
@@ -114,18 +133,193 @@
             }
         } );
         viewer.setContentProvider( new ArrayContentProvider() );
-        viewer.setLabelProvider( new LabelProvider() );
-        viewer.setInput( new Object[]
-            { new Interceptor( "NormalizationService" ), new Interceptor( "AuthenticationService" ),
-                new Interceptor( "ReferalService" ), new Interceptor( "AuthorizationService" ) } );
+        viewer.setLabelProvider( new LabelProvider()
+        {
+            public Image getImage( Object element )
+            {
+                return AbstractUIPlugin
+                    .imageDescriptorFromPlugin( Activator.PLUGIN_ID, PluginConstants.IMG_INTERCEPTOR ).createImage();
+            }
+        } );
 
         // Creating the button(s)
         addButton = toolkit.createButton( client, "Add...", SWT.PUSH ); //$NON-NLS-1$
-        gd = new GridData( GridData.VERTICAL_ALIGN_BEGINNING );
-        addButton.setLayoutData( gd );
+        addButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
 
         deleteButton = toolkit.createButton( client, "Delete", SWT.PUSH );
-        deleteButton.setLayoutData( gd );
+        deleteButton.setEnabled( false );
+        deleteButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
+
+        upButton = toolkit.createButton( client, "Up", SWT.PUSH );
+        upButton.setEnabled( false );
+        upButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
+
+        downButton = toolkit.createButton( client, "Down", SWT.PUSH );
+        downButton.setEnabled( false );
+        downButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
+
+        initFromInput();
+        addListeners();
+    }
+
+
+    /**
+     * Initializes the page with the Editor input.
+     */
+    private void initFromInput()
+    {
+        viewer.setInput( interceptors );
+    }
+
+
+    /**
+     * Add listeners to UI fields.
+     */
+    private void addListeners()
+    {
+        viewer.addSelectionChangedListener( new ISelectionChangedListener()
+        {
+            public void selectionChanged( SelectionChangedEvent event )
+            {
+                viewer.refresh();
+
+                deleteButton.setEnabled( !event.getSelection().isEmpty() );
+
+                enableDisableUpDownButtons();
+            }
+        } );
+
+        addButton.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                Interceptor newInterceptor = new Interceptor( getNewName() );
+                interceptors.add( newInterceptor );
+                viewer.refresh();
+                viewer.setSelection( new StructuredSelection( newInterceptor ) );
+                setEditorDirty();
+            }
+        } );
+
+        deleteButton.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                StructuredSelection selection = ( StructuredSelection ) viewer.getSelection();
+                if ( !selection.isEmpty() )
+                {
+                    Interceptor interceptor = ( Interceptor ) selection.getFirstElement();
+
+                    interceptors.remove( interceptor );
+                    viewer.refresh();
+                    setEditorDirty();
+                }
+            }
+        } );
+
+        upButton.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                StructuredSelection selection = ( StructuredSelection ) viewer.getSelection();
+                if ( !selection.isEmpty() )
+                {
+                    Interceptor interceptor = ( Interceptor ) selection.getFirstElement();
+
+                    int index = interceptors.indexOf( interceptor );
+                    if ( index > 0 )
+                    {
+                        Interceptor interceptorBefore = interceptors.get( index - 1 );
+                        if ( interceptorBefore != null )
+                        {
+                            interceptors.set( index - 1, interceptor );
+                            interceptors.set( index, interceptorBefore );
+
+                            viewer.refresh();
+                            setEditorDirty();
+                            enableDisableUpDownButtons();
+                        }
+                    }
+                }
+            }
+        } );
+
+        downButton.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                StructuredSelection selection = ( StructuredSelection ) viewer.getSelection();
+                if ( !selection.isEmpty() )
+                {
+                    Interceptor interceptor = ( Interceptor ) selection.getFirstElement();
+
+                    int index = interceptors.indexOf( interceptor );
+                    if ( index < ( interceptors.size() - 1 ) )
+                    {
+                        Interceptor interceptorAfter = interceptors.get( index + 1 );
+                        if ( interceptorAfter != null )
+                        {
+                            interceptors.set( index + 1, interceptor );
+                            interceptors.set( index, interceptorAfter );
+
+                            viewer.refresh();
+                            setEditorDirty();
+                            enableDisableUpDownButtons();
+                        }
+                    }
+                }
+            }
+        } );
+    }
+
+
+    /**
+     * Gets a new Name for a new Extended Operation.
+     *
+     * @return 
+     *      a new Name for a new Extended Operation
+     */
+    private String getNewName()
+    {
+        int counter = 1;
+        String name = NEW_NAME;
+        boolean ok = false;
+
+        while ( !ok )
+        {
+            ok = true;
+            name = NEW_NAME + counter;
+
+            for ( Interceptor interceptor : interceptors )
+            {
+                if ( interceptor.getName().equalsIgnoreCase( name ) )
+                {
+                    ok = false;
+                }
+            }
+
+            counter++;
+        }
+
+        return name;
+    }
+
+
+    /**
+     * Enables or Disables the Up and Down Buttons.
+     */
+    private void enableDisableUpDownButtons()
+    {
+        StructuredSelection selection = ( StructuredSelection ) viewer.getSelection();
+
+        upButton.setEnabled( !selection.isEmpty() );
+        downButton.setEnabled( !selection.isEmpty() );
+        if ( !selection.isEmpty() )
+        {
+            Interceptor interceptor = ( Interceptor ) selection.getFirstElement();
+            upButton.setEnabled( interceptors.indexOf( interceptor ) != 0 );
+            downButton.setEnabled( interceptors.indexOf( interceptor ) != ( interceptors.size() - 1 ) );
+        }
     }
 
 
@@ -172,7 +366,15 @@
      */
     protected void registerPages( DetailsPart detailsPart )
     {
-        detailsPart.registerPage( Interceptor.class, new InterceptorDetailsPage() );
+        detailsPart.registerPage( Interceptor.class, new InterceptorDetailsPage( this ) );
     }
 
+
+    /**
+     * Sets the Editor as dirty.
+     */
+    public void setEditorDirty()
+    {
+        ( ( ServerConfigurationEditor ) page.getEditor() ).setDirty( true );
+    }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/InterceptorsPage.java Thu Apr 12 10:24:34 2007
@@ -53,7 +53,6 @@
     public InterceptorsPage( FormEditor editor )
     {
         super( editor, ID, TITLE );
-        masterDetailsBlock = new InterceptorsMasterDetailsBlock( this );
     }
 
 
@@ -64,6 +63,7 @@
     {
         final ScrolledForm form = managedForm.getForm();
         form.setText( "Interceptors" );
+        masterDetailsBlock = new InterceptorsMasterDetailsBlock( this );
         masterDetailsBlock.createContent( managedForm );
     }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionDetailsPage.java Thu Apr 12 10:24:34 2007
@@ -20,11 +20,31 @@
 package org.apache.directory.ldapstudio.apacheds.configuration.editor;
 
 
+import java.util.List;
+
+import org.apache.directory.ldapstudio.apacheds.configuration.dialogs.IndexedAttributeDialog;
+import org.apache.directory.ldapstudio.apacheds.configuration.model.IndexedAttribute;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.Partition;
+import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.ISelection;
+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.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.events.VerifyEvent;
+import org.eclipse.swt.events.VerifyListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
@@ -48,26 +68,162 @@
  */
 public class PartitionDetailsPage implements IDetailsPage
 {
+    /** The associated Master Details Block */
+    private PartitionsMasterDetailsBlock masterDetailsBlock;
+
     /** The Managed Form */
     private IManagedForm mform;
 
     /** The input Partition */
     private Partition input;
 
+    /** The Indexed Attributes List */
+    private List<IndexedAttribute> indexedAttributes;
+
     // UI fields
     private Text nameText;
     private Text cacheSizeText;
     private Text suffixText;
     private Button enableOptimizerCheckbox;
     private Button synchOnWriteCheckbox;
-    private Table indexedAttributesTable;
-    private Button indexedAttributeAddButton;
-    private Button indexedAttributeEditButton;
-    private Button indexedAttributeDeleteButton;
-    private Table contextEntryTable;
+    private TableViewer contextEntryTableViewer;
     private Button contextEntryAddButton;
     private Button contextEntryEditButton;
     private Button contextEntryDeleteButton;
+    private TableViewer indexedAttributesTableViewer;
+    private Button indexedAttributeAddButton;
+    private Button indexedAttributeEditButton;
+    private Button indexedAttributeDeleteButton;
+
+    // Listeners
+    /** The Text Modify Listener */
+    private ModifyListener textModifyListener = new ModifyListener()
+    {
+        public void modifyText( ModifyEvent e )
+        {
+            masterDetailsBlock.setEditorDirty();
+        }
+    };
+
+    /** The Checkbox Selection Listener */
+    private SelectionListener checkboxSelectionListener = new SelectionAdapter()
+    {
+        public void widgetSelected( SelectionEvent e )
+        {
+            masterDetailsBlock.setEditorDirty();
+        }
+    };
+
+    /** The Selection Changed Listener for the Context Entry Table Viewer */
+    private ISelectionChangedListener contextEntryTableViewerListener = new ISelectionChangedListener()
+    {
+        public void selectionChanged( SelectionChangedEvent event )
+        {
+            contextEntryEditButton.setEnabled( !event.getSelection().isEmpty() );
+            contextEntryDeleteButton.setEnabled( !event.getSelection().isEmpty() );
+        }
+    };
+
+    /** The Listener for the Add button of the Context Entry Section */
+    private SelectionListener contextEntryAddButtonListener = new SelectionAdapter()
+    {
+        public void widgetSelected( SelectionEvent e )
+        {
+            masterDetailsBlock.setEditorDirty();
+        }
+    };
+
+    /** The Listener for the Edit button of the Context Entry Section */
+    private SelectionListener contextEntryEditButtonListener = new SelectionAdapter()
+    {
+        public void widgetSelected( SelectionEvent e )
+        {
+            // masterDetailsBlock.setEditorDirty();
+        }
+    };
+
+    /** The Listener for the Delete button of the Context Entry Section */
+    private SelectionListener contextEntryDeleteButtonListener = new SelectionAdapter()
+    {
+        public void widgetSelected( SelectionEvent e )
+        {
+            masterDetailsBlock.setEditorDirty();
+        }
+    };
+
+    /** The Selection Changed Listener for the Indexed Attributes Table Viewer */
+    private ISelectionChangedListener indexedAttributesTableViewerListener = new ISelectionChangedListener()
+    {
+        public void selectionChanged( SelectionChangedEvent event )
+        {
+            indexedAttributeEditButton.setEnabled( !event.getSelection().isEmpty() );
+            indexedAttributeDeleteButton.setEnabled( !event.getSelection().isEmpty() );
+        }
+    };
+
+    /** The Double Click Listener for the Indexed Attributes Table Viewer */
+    private IDoubleClickListener indexedAttributesTableViewerDoubleClickListener = new IDoubleClickListener()
+    {
+        public void doubleClick( DoubleClickEvent event )
+        {
+            editSelectedIndexedAttribute();
+        }
+    };
+
+    /** The Listener for the Add button of the Indexed Attributes Section */
+    private SelectionListener indexedAttributeAddButtonListener = new SelectionAdapter()
+    {
+        public void widgetSelected( SelectionEvent e )
+        {
+            IndexedAttributeDialog dialog = new IndexedAttributeDialog( new IndexedAttribute( "", 0 ) );
+
+            if ( Dialog.OK == dialog.open() )
+            {
+                indexedAttributes.add( dialog.getIndexedAttribute() );
+                indexedAttributesTableViewer.refresh();
+                masterDetailsBlock.setEditorDirty();
+            }
+        }
+    };
+
+    /** The Listener for the Edit button of the Indexed Attributes Section */
+    private SelectionListener indexedAttributeEditButtonListener = new SelectionAdapter()
+    {
+        public void widgetSelected( SelectionEvent e )
+        {
+            editSelectedIndexedAttribute();
+        }
+    };
+
+    /** The Listener for the Delete button of the Indexed Attributes Section */
+    private SelectionListener indexedAttributeDeleteButtonListener = new SelectionAdapter()
+    {
+        public void widgetSelected( SelectionEvent e )
+        {
+            StructuredSelection selection = ( StructuredSelection ) indexedAttributesTableViewer.getSelection();
+            if ( !selection.isEmpty() )
+            {
+                IndexedAttribute indexedAttribute = ( IndexedAttribute ) selection.getFirstElement();
+
+                indexedAttributes.remove( indexedAttribute );
+                indexedAttributesTableViewer.refresh();
+
+                masterDetailsBlock.setEditorDirty();
+            }
+        }
+    };
+
+
+    /**
+     * Creates a new instance of PartitionDetailsPage.
+     *
+     * @param pmdb
+     *      the associated Master Details Block
+     */
+    public PartitionDetailsPage( PartitionsMasterDetailsBlock pmdb )
+    {
+        masterDetailsBlock = pmdb;
+    }
 
 
     /* (non-Javadoc)
@@ -120,6 +276,16 @@
         // Cache Size
         toolkit.createLabel( client, "Cache Size:" );
         cacheSizeText = toolkit.createText( client, "" );
+        cacheSizeText.addVerifyListener( new VerifyListener()
+        {
+            public void verifyText( VerifyEvent e )
+            {
+                if ( !e.text.matches( "[0-9]*" ) ) //$NON-NLS-1$
+                {
+                    e.doit = false;
+                }
+            }
+        } );
         cacheSizeText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
 
         // Suffix
@@ -132,7 +298,7 @@
         enableOptimizerCheckbox.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 3, 1 ) );
 
         // Synchronisation On Write
-        synchOnWriteCheckbox = toolkit.createButton( client, " Synchronization on write", SWT.CHECK );
+        synchOnWriteCheckbox = toolkit.createButton( client, "Synchronization on write", SWT.CHECK );
         synchOnWriteCheckbox.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 3, 1 ) );
     }
 
@@ -157,10 +323,13 @@
         client.setLayout( new GridLayout( 2, false ) );
         section.setClient( client );
 
-        contextEntryTable = toolkit.createTable( client, SWT.NONE );
+        Table contextEntryTable = toolkit.createTable( client, SWT.NONE );
         GridData gd = new GridData( SWT.FILL, SWT.NONE, true, false, 1, 3 );
         gd.heightHint = 80;
         contextEntryTable.setLayoutData( gd );
+        contextEntryTableViewer = new TableViewer( contextEntryTable );
+        contextEntryTableViewer.setContentProvider( new ArrayContentProvider() );
+        contextEntryTableViewer.setLabelProvider( new LabelProvider() );
 
         GridData buttonsGD = new GridData( SWT.FILL, SWT.BEGINNING, false, false );
         buttonsGD.widthHint = IDialogConstants.BUTTON_WIDTH;
@@ -169,9 +338,11 @@
         contextEntryAddButton.setLayoutData( buttonsGD );
 
         contextEntryEditButton = toolkit.createButton( client, "Edit...", SWT.PUSH );
+        contextEntryEditButton.setEnabled( false );
         contextEntryEditButton.setLayoutData( buttonsGD );
 
         contextEntryDeleteButton = toolkit.createButton( client, "Delete", SWT.PUSH );
+        contextEntryDeleteButton.setEnabled( false );
         contextEntryDeleteButton.setLayoutData( buttonsGD );
     }
 
@@ -196,10 +367,13 @@
         indexedAttributesClient.setLayout( new GridLayout( 2, false ) );
         indexedAttributesSection.setClient( indexedAttributesClient );
 
-        indexedAttributesTable = toolkit.createTable( indexedAttributesClient, SWT.NONE );
+        Table indexedAttributesTable = toolkit.createTable( indexedAttributesClient, SWT.NONE );
         GridData gd = new GridData( SWT.FILL, SWT.NONE, true, false, 1, 3 );
         gd.heightHint = 80;
         indexedAttributesTable.setLayoutData( gd );
+        indexedAttributesTableViewer = new TableViewer( indexedAttributesTable );
+        indexedAttributesTableViewer.setContentProvider( new ArrayContentProvider() );
+        indexedAttributesTableViewer.setLabelProvider( new LabelProvider() );
 
         GridData buttonsGD = new GridData( SWT.FILL, SWT.BEGINNING, false, false );
         buttonsGD.widthHint = IDialogConstants.BUTTON_WIDTH;
@@ -208,13 +382,65 @@
         indexedAttributeAddButton.setLayoutData( buttonsGD );
 
         indexedAttributeEditButton = toolkit.createButton( indexedAttributesClient, "Edit...", SWT.PUSH );
+        indexedAttributeEditButton.setEnabled( false );
         indexedAttributeEditButton.setLayoutData( buttonsGD );
 
         indexedAttributeDeleteButton = toolkit.createButton( indexedAttributesClient, "Delete", SWT.PUSH );
+        indexedAttributeDeleteButton.setEnabled( false );
         indexedAttributeDeleteButton.setLayoutData( buttonsGD );
     }
 
 
+    /**
+     * Adds listeners to UI fields.
+     */
+    private void addListeners()
+    {
+        nameText.addModifyListener( textModifyListener );
+        cacheSizeText.addModifyListener( textModifyListener );
+        suffixText.addModifyListener( textModifyListener );
+        enableOptimizerCheckbox.addSelectionListener( checkboxSelectionListener );
+        synchOnWriteCheckbox.addSelectionListener( checkboxSelectionListener );
+
+        // TODO Add a listener for the double-click on the contextEntryTable
+        contextEntryTableViewer.addSelectionChangedListener( contextEntryTableViewerListener );
+        contextEntryAddButton.addSelectionListener( contextEntryAddButtonListener );
+        contextEntryEditButton.addSelectionListener( contextEntryEditButtonListener );
+        contextEntryDeleteButton.addSelectionListener( contextEntryDeleteButtonListener );
+
+        indexedAttributesTableViewer.addSelectionChangedListener( indexedAttributesTableViewerListener );
+        indexedAttributesTableViewer.addDoubleClickListener( indexedAttributesTableViewerDoubleClickListener );
+        indexedAttributeAddButton.addSelectionListener( indexedAttributeAddButtonListener );
+        indexedAttributeEditButton.addSelectionListener( indexedAttributeEditButtonListener );
+        indexedAttributeDeleteButton.addSelectionListener( indexedAttributeDeleteButtonListener );
+    }
+
+
+    /**
+     * Removes listeners to UI fields.
+     */
+    private void removeListeners()
+    {
+        nameText.removeModifyListener( textModifyListener );
+        cacheSizeText.removeModifyListener( textModifyListener );
+        suffixText.removeModifyListener( textModifyListener );
+        enableOptimizerCheckbox.removeSelectionListener( checkboxSelectionListener );
+        synchOnWriteCheckbox.removeSelectionListener( checkboxSelectionListener );
+
+        // TODO remove the listener for the double-click on the contextEntryTable
+        contextEntryTableViewer.removeSelectionChangedListener( contextEntryTableViewerListener );
+        contextEntryAddButton.removeSelectionListener( contextEntryAddButtonListener );
+        contextEntryEditButton.removeSelectionListener( contextEntryEditButtonListener );
+        contextEntryDeleteButton.removeSelectionListener( contextEntryDeleteButtonListener );
+
+        indexedAttributesTableViewer.removeSelectionChangedListener( indexedAttributesTableViewerListener );
+        indexedAttributesTableViewer.removeDoubleClickListener( indexedAttributesTableViewerDoubleClickListener );
+        indexedAttributeAddButton.removeSelectionListener( indexedAttributeAddButtonListener );
+        indexedAttributeEditButton.removeSelectionListener( indexedAttributeEditButtonListener );
+        indexedAttributeDeleteButton.removeSelectionListener( indexedAttributeDeleteButtonListener );
+    }
+
+
     /* (non-Javadoc)
      * @see org.eclipse.ui.forms.IPartSelectionListener#selectionChanged(org.eclipse.ui.forms.IFormPart, org.eclipse.jface.viewers.ISelection)
      */
@@ -286,7 +512,30 @@
      */
     public void refresh()
     {
-        nameText.setText( input.getName() );
+        removeListeners();
+
+        // Name
+        String name = input.getName();
+        nameText.setText( ( name == null ) ? "" : name );
+
+        // Cache Size
+        cacheSizeText.setText( "" + input.getCacheSize() );
+
+        // Suffix
+        String suffix = input.getSuffix();
+        suffixText.setText( ( suffix == null ) ? "" : suffix );
+
+        // Enable Optimizer
+        enableOptimizerCheckbox.setSelection( input.isEnableOptimizer() );
+
+        // Synchronization on write
+        synchOnWriteCheckbox.setSelection( input.isSynchronizationOnWrite() );
+
+        // Indexed Attributes
+        indexedAttributes = input.getIndexedAttributes();
+        indexedAttributesTableViewer.setInput( indexedAttributes );
+
+        addListeners();
     }
 
 
@@ -305,5 +554,26 @@
     public boolean setFormInput( Object input )
     {
         return false;
+    }
+
+
+    /**
+     * Opens an Indexed Attribute Dialog with the selected Indexed Attribute in the
+     * Indexed Attributes Table Viewer.
+     */
+    private void editSelectedIndexedAttribute()
+    {
+        StructuredSelection selection = ( StructuredSelection ) indexedAttributesTableViewer.getSelection();
+        if ( !selection.isEmpty() )
+        {
+            IndexedAttribute indexedAttribute = ( IndexedAttribute ) selection.getFirstElement();
+
+            IndexedAttributeDialog dialog = new IndexedAttributeDialog( indexedAttribute );
+            if ( Dialog.OK == dialog.open() && dialog.isDirty() )
+            {
+                indexedAttributesTableViewer.refresh();
+                masterDetailsBlock.setEditorDirty();
+            }
+        }
     }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsMasterDetailsBlock.java Thu Apr 12 10:24:34 2007
@@ -20,6 +20,8 @@
 package org.apache.directory.ldapstudio.apacheds.configuration.editor;
 
 
+import java.util.List;
+
 import org.apache.directory.ldapstudio.apacheds.configuration.Activator;
 import org.apache.directory.ldapstudio.apacheds.configuration.PluginConstants;
 import org.apache.directory.ldapstudio.apacheds.configuration.model.Partition;
@@ -28,8 +30,12 @@
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
 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.graphics.Image;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
@@ -43,6 +49,7 @@
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
 
 
 /**
@@ -56,6 +63,14 @@
     /** The associated page */
     private FormPage page;
 
+    /** The editor input */
+    private ServerConfigurationEditorInput input;
+
+    /** The Interceptors List */
+    private List<Partition> partitions;
+
+    private static final String NEW_NAME = "New Partition ";
+
     // UI Fields
     private TableViewer viewer;
     private Button addButton;
@@ -71,6 +86,8 @@
     public PartitionsMasterDetailsBlock( FormPage page )
     {
         this.page = page;
+        input = ( ServerConfigurationEditorInput ) page.getEditorInput();
+        partitions = input.getServerConfiguration().getPartitions();
     }
 
 
@@ -113,17 +130,113 @@
             }
         } );
         viewer.setContentProvider( new ArrayContentProvider() );
-        viewer.setLabelProvider( new LabelProvider() );
+        viewer.setLabelProvider( new LabelProvider()
+        {
+            public Image getImage( Object element )
+            {
+                return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID, PluginConstants.IMG_PARTITION )
+                    .createImage();
+            }
+        } );
         viewer.setInput( new Object[]
             { new Partition( "System Partition" ), new Partition( "Example Partition" ) } );
 
         // Creating the button(s)
         addButton = toolkit.createButton( client, "Add...", SWT.PUSH ); //$NON-NLS-1$
-        gd = new GridData( GridData.VERTICAL_ALIGN_BEGINNING );
-        addButton.setLayoutData( gd );
+        addButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
 
         deleteButton = toolkit.createButton( client, "Delete", SWT.PUSH );
-        deleteButton.setLayoutData( gd );
+        deleteButton.setEnabled( false );
+        deleteButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
+
+        initFromInput();
+        addListeners();
+    }
+
+
+    /**
+     * Initializes the page with the Editor input.
+     */
+    private void initFromInput()
+    {
+        viewer.setInput( partitions );
+    }
+
+
+    /**
+     * Add listeners to UI fields.
+     */
+    private void addListeners()
+    {
+        viewer.addSelectionChangedListener( new ISelectionChangedListener()
+        {
+            public void selectionChanged( SelectionChangedEvent event )
+            {
+                viewer.refresh();
+
+                deleteButton.setEnabled( !event.getSelection().isEmpty() );
+            }
+        } );
+
+        addButton.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                Partition newPartition = new Partition( getNewName() );
+                partitions.add( newPartition );
+                viewer.refresh();
+                viewer.setSelection( new StructuredSelection( newPartition ) );
+                setEditorDirty();
+            }
+        } );
+
+        deleteButton.addSelectionListener( new SelectionAdapter()
+        {
+            public void widgetSelected( SelectionEvent e )
+            {
+                StructuredSelection selection = ( StructuredSelection ) viewer.getSelection();
+                if ( !selection.isEmpty() )
+                {
+                    Partition partition = ( Partition ) selection.getFirstElement();
+
+                    partitions.remove( partition );
+                    viewer.refresh();
+                    setEditorDirty();
+                }
+            }
+        } );
+    }
+
+
+    /**
+     * Gets a new Name for a new Extended Operation.
+     *
+     * @return 
+     *      a new Name for a new Extended Operation
+     */
+    private String getNewName()
+    {
+        int counter = 1;
+        String name = NEW_NAME;
+        boolean ok = false;
+
+        while ( !ok )
+        {
+            ok = true;
+            name = NEW_NAME + counter;
+
+            for ( Partition partition : partitions )
+            {
+                if ( partition.getName().equalsIgnoreCase( name ) )
+                {
+                    ok = false;
+                }
+            }
+
+            counter++;
+        }
+
+        return name;
     }
 
 
@@ -170,6 +283,15 @@
      */
     protected void registerPages( DetailsPart detailsPart )
     {
-        detailsPart.registerPage( Partition.class, new PartitionDetailsPage() );
+        detailsPart.registerPage( Partition.class, new PartitionDetailsPage( this ) );
+    }
+
+
+    /**
+     * Sets the Editor as dirty.
+     */
+    public void setEditorDirty()
+    {
+        ( ( ServerConfigurationEditor ) page.getEditor() ).setDirty( true );
     }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/PartitionsPage.java Thu Apr 12 10:24:34 2007
@@ -53,7 +53,6 @@
     public PartitionsPage( FormEditor editor )
     {
         super( editor, ID, TITLE );
-        masterDetailsBlock = new PartitionsMasterDetailsBlock( this );
     }
 
 
@@ -64,6 +63,7 @@
     {
         ScrolledForm form = managedForm.getForm();
         form.setText( "Partitions" );
+        masterDetailsBlock = new PartitionsMasterDetailsBlock( this );
         masterDetailsBlock.createContent( managedForm );
     }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditor.java Thu Apr 12 10:24:34 2007
@@ -49,7 +49,9 @@
     private FormPage extendedOperationsPage;
 
 
-    @Override
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.forms.editor.FormEditor#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+     */
     public void init( IEditorSite site, IEditorInput input ) throws PartInitException
     {
         super.init( site, input );
@@ -63,16 +65,18 @@
      */
     protected void addPages()
     {
-        generalPage = new GeneralPage( this );
-        partitionsPage = new PartitionsPage( this );
-        interceptorsPage = new InterceptorsPage( this );
-        extendedOperationsPage = new ExtendedOperationsPage( this );
-
         try
         {
+            generalPage = new GeneralPage( this );
             addPage( generalPage );
+
+            partitionsPage = new PartitionsPage( this );
             addPage( partitionsPage );
+
+            interceptorsPage = new InterceptorsPage( this );
             addPage( interceptorsPage );
+
+            extendedOperationsPage = new ExtendedOperationsPage( this );
             addPage( extendedOperationsPage );
         }
         catch ( PartInitException e )

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/editor/ServerConfigurationEditorInput.java Thu Apr 12 10:24:34 2007
@@ -67,7 +67,7 @@
      */
     public String getToolTipText()
     {
-        return "server.xml";
+        return serverConfiguration.getPath();
     }
 
 
@@ -85,7 +85,7 @@
      */
     public boolean exists()
     {
-        return true;
+        return ( serverConfiguration != null );
     }
 
 

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/IndexedAttribute.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/IndexedAttribute.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/IndexedAttribute.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/IndexedAttribute.java Thu Apr 12 10:24:34 2007
@@ -96,4 +96,13 @@
     {
         this.cacheSize = cacheSize;
     }
+
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#toString()
+     */
+    public String toString()
+    {
+        return attributeId + " [" + cacheSize + "]";
+    }
 }

Modified: directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Interceptor.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Interceptor.java?view=diff&rev=528050&r1=528049&r2=528050
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Interceptor.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-apacheds-configuration/src/main/java/org/apache/directory/ldapstudio/apacheds/configuration/model/Interceptor.java Thu Apr 12 10:24:34 2007
@@ -31,6 +31,9 @@
     /** The name of the interceptor */
     private String name;
 
+    /** The class of the class of the interceptor */
+    private String classType;
+
 
     /**
      * Creates a new instance of Interceptor.
@@ -65,6 +68,30 @@
     public void setName( String name )
     {
         this.name = name;
+    }
+
+
+    /**
+     * Gets the class type of the interceptor.
+     *
+     * @return
+     *      the class type of the interceptor
+     */
+    public String getClassType()
+    {
+        return classType;
+    }
+
+
+    /**
+     * Sets the class type of the interceptor.
+     *
+     * @param classType
+     *      the new class type to set
+     */
+    public void setClassType( String classType )
+    {
+        this.classType = classType;
     }