Return-Path: X-Original-To: apmail-directory-commits-archive@www.apache.org Delivered-To: apmail-directory-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3A9F3D75A for ; Tue, 13 Nov 2012 15:54:11 +0000 (UTC) Received: (qmail 55646 invoked by uid 500); 13 Nov 2012 15:54:11 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 55447 invoked by uid 500); 13 Nov 2012 15:54:08 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 55381 invoked by uid 99); 13 Nov 2012 15:54:06 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Nov 2012 15:54:06 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Nov 2012 15:54:00 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 8C1692388906 for ; Tue, 13 Nov 2012 15:53:38 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1408799 - in /directory: apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/ studio/trunk/plugins/apacheds.configuration.v2/ studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory... Date: Tue, 13 Nov 2012 15:53:38 -0000 To: commits@directory.apache.org From: pamarcelot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121113155338.8C1692388906@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: pamarcelot Date: Tue Nov 13 15:53:37 2012 New Revision: 1408799 URL: http://svn.apache.org/viewvc?rev=1408799&view=rev Log: Part of a fix for DIRSTUDIO-847 (Add support for replication editing in the ApacheDS 2.0 Configuration Editor) Modified: directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/ReplConsumerBean.java directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/PartitionDetailsPage.java directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationDetailsPage.java directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationMasterDetailsBlock.java directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java Modified: directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/ReplConsumerBean.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/ReplConsumerBean.java?rev=1408799&r1=1408798&r2=1408799&view=diff ============================================================================== --- directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/ReplConsumerBean.java (original) +++ directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/ReplConsumerBean.java Tue Nov 13 15:53:37 2012 @@ -318,7 +318,7 @@ public class ReplConsumerBean extends Ad /** * @return the replSearchSizeLimit */ - public int isReplSearchSizeLimit() + public int getReplSearchSizeLimit() { return replSearchSizeLimit; } @@ -336,18 +336,18 @@ public class ReplConsumerBean extends Ad /** * @return the replSearchTimeOut */ - public int getReplSearchTimeOut() + public int getReplSearchTimeout() { return replSearchTimeout; } /** - * @param replSearchTimeOut the replSearchTimeOut to set + * @param replSearchTimeout the replSearchTimeout to set */ - public void setReplSearchTimeLimit( int replSearchTimeOut ) + public void setReplSearchTimeout( int replSearchTimeout ) { - this.replSearchTimeout = replSearchTimeOut; + this.replSearchTimeout = replSearchTimeout; } Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml?rev=1408799&r1=1408798&r2=1408799&view=diff ============================================================================== --- directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml (original) +++ directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml Tue Nov 13 15:53:37 2012 @@ -121,6 +121,7 @@ org.apache.directory.studio.common.ui, org.apache.directory.studio.connection.core, org.apache.directory.studio.connection.ui, + org.apache.directory.studio.ldapbrowser.common, org.apache.directory.studio.ldapbrowser.core, org.eclipse.core.contenttype, org.eclipse.core.runtime, @@ -255,6 +256,11 @@ org.apache.directory.studio + ldapbrowser.common + provided + + + org.apache.directory.studio ldapbrowser.core provided Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/PartitionDetailsPage.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/PartitionDetailsPage.java?rev=1408799&r1=1408798&r2=1408799&view=diff ============================================================================== --- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/PartitionDetailsPage.java (original) +++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/PartitionDetailsPage.java Tue Nov 13 15:53:37 2012 @@ -603,11 +603,11 @@ public class PartitionDetailsPage implem } ); // Add button - indexesAddButton = toolkit.createButton( indexedAttributesClient, "Add", SWT.PUSH ); + indexesAddButton = toolkit.createButton( indexedAttributesClient, "Add...", SWT.PUSH ); indexesAddButton.setLayoutData( createNewButtonGridData() ); // Edit button - indexesEditButton = toolkit.createButton( indexedAttributesClient, "Edit", SWT.PUSH ); + indexesEditButton = toolkit.createButton( indexedAttributesClient, "Edit...", SWT.PUSH ); indexesEditButton.setEnabled( false ); indexesEditButton.setLayoutData( createNewButtonGridData() ); Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationDetailsPage.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationDetailsPage.java?rev=1408799&r1=1408798&r2=1408799&view=diff ============================================================================== --- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationDetailsPage.java (original) +++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationDetailsPage.java Tue Nov 13 15:53:37 2012 @@ -21,10 +21,26 @@ package org.apache.directory.studio.apac import org.apache.directory.server.config.beans.ReplConsumerBean; +import org.apache.directory.shared.ldap.model.exception.LdapInvalidDnException; +import org.apache.directory.shared.ldap.model.message.AliasDerefMode; +import org.apache.directory.shared.ldap.model.message.SearchScope; +import org.apache.directory.shared.ldap.model.name.Dn; +import org.apache.directory.studio.ldapbrowser.common.widgets.WidgetModifyEvent; +import org.apache.directory.studio.ldapbrowser.common.widgets.WidgetModifyListener; +import org.apache.directory.studio.ldapbrowser.common.widgets.search.EntryWidget; +import org.apache.directory.studio.ldapbrowser.common.widgets.search.FilterWidget; +import org.apache.directory.studio.ldapbrowser.core.BrowserCorePlugin; +import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; +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; @@ -32,6 +48,7 @@ import org.eclipse.swt.layout.GridLayout import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.forms.IDetailsPage; import org.eclipse.ui.forms.IFormPart; @@ -58,8 +75,64 @@ public class ReplicationDetailsPage impl /** The input consumer */ private ReplConsumerBean input; + /** The browser connection */ + private IBrowserConnection browserConnection; + + // UI Widgets + private Button enabledCheckbox; + private Text idText; + private Text descriptionText; + private Text remoteHostText; + private Text remotePortText; + private Text bindDnText; + private Text bindPasswordText; + private Button showPasswordCheckbox; + private Text sizeLimitText; + private Text timeLimitText; + private EntryWidget entryWidget; + private FilterWidget filterWidget; + private Button subtreeScopeButton; + private Button oneLevelScopeButton; + private Button objectScopeButton; + private TableViewer attributesTableViewer; + private Button addAttributeButton; + private Button editAttributeButton; + private Button deleteAttributeButton; + private Button findingBaseDnAliasesDereferencingButton; + private Button searchAliasesDereferencingButton; + // Listeners - VerifyListener integerVerifyListener = new VerifyListener() + /** The Text Modify Listener */ + private ModifyListener textModifyListener = new ModifyListener() + { + public void modifyText( ModifyEvent e ) + { + commit( true ); + masterDetailsBlock.setEditorDirty(); + } + }; + + /** The button Selection Listener */ + private SelectionListener buttonSelectionListener = new SelectionAdapter() + { + public void widgetSelected( SelectionEvent e ) + { + commit( true ); + masterDetailsBlock.setEditorDirty(); + } + }; + + /** The widget Modify Listener */ + private WidgetModifyListener widgetModifyListener = new WidgetModifyListener() + { + public void widgetModified( WidgetModifyEvent event ) + { + commit( true ); + masterDetailsBlock.setEditorDirty(); + } + }; + + private VerifyListener integerVerifyListener = new VerifyListener() { public void verifyText( VerifyEvent e ) { @@ -70,6 +143,21 @@ public class ReplicationDetailsPage impl } }; + private SelectionListener showPasswordCheckboxSelectionListener = new SelectionAdapter() + { + public void widgetSelected( SelectionEvent e ) + { + if ( showPasswordCheckbox.getSelection() ) + { + bindPasswordText.setEchoChar( '\0' ); + } + else + { + bindPasswordText.setEchoChar( '\u2022' ); + } + } + }; + /** * Creates a new instance of ReplicationDetailsPage. @@ -80,6 +168,10 @@ public class ReplicationDetailsPage impl public ReplicationDetailsPage( ReplicationMasterDetailsBlock pmdb ) { masterDetailsBlock = pmdb; + + // Getting the browser connection associated with the connection in the configuration + browserConnection = BrowserCorePlugin.getDefault().getConnectionManager() + .getBrowserConnection( masterDetailsBlock.getPage().getConnection() ); } @@ -126,17 +218,17 @@ public class ReplicationDetailsPage impl section.setClient( client ); // Enabled Checkbox - Button enabledCheckbox = toolkit.createButton( client, "Enabled", SWT.CHECK ); + enabledCheckbox = toolkit.createButton( client, "Enabled", SWT.CHECK ); enabledCheckbox.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) ); // ID Text toolkit.createLabel( client, "ID:" ); - Text idText = toolkit.createText( client, "" ); + idText = toolkit.createText( client, "" ); idText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); // Description Text toolkit.createLabel( client, "Description:" ); - Text descriptionText = toolkit.createText( client, "" ); + descriptionText = toolkit.createText( client, "" ); descriptionText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); } @@ -166,41 +258,41 @@ public class ReplicationDetailsPage impl // Remote Host Text toolkit.createLabel( composite, "Remote Host:" ); - Text remoteHostText = toolkit.createText( composite, "" ); + remoteHostText = toolkit.createText( composite, "" ); remoteHostText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); // Remote Port Text toolkit.createLabel( composite, "Remote Port:" ); - Text remotePortText = toolkit.createText( composite, "" ); + remotePortText = toolkit.createText( composite, "" ); remotePortText.addVerifyListener( integerVerifyListener ); remotePortText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); // Bind DN Text toolkit.createLabel( composite, "Bind DN:" ); - Text bindDnText = toolkit.createText( composite, "" ); + bindDnText = toolkit.createText( composite, "" ); bindDnText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); // Bind Password Text toolkit.createLabel( composite, "Bind Password:" ); - Text bindPasswordText = toolkit.createText( composite, "" ); + bindPasswordText = toolkit.createText( composite, "" ); bindPasswordText.setEchoChar( '\u2022' ); bindPasswordText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); // Show Password Checkbox toolkit.createLabel( composite, "" ); //$NON-NLS-1$ - Button showPasswordCheckbox = toolkit.createButton( composite, "Show password", SWT.CHECK ); + showPasswordCheckbox = toolkit.createButton( composite, "Show password", SWT.CHECK ); showPasswordCheckbox.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) ); showPasswordCheckbox.setSelection( false ); // Size Limit Text toolkit.createLabel( composite, "Size Limit:" ); - Text sizeLimitText = toolkit.createText( composite, "" ); + sizeLimitText = toolkit.createText( composite, "" ); sizeLimitText.addVerifyListener( integerVerifyListener ); sizeLimitText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); // Time Limit Text toolkit.createLabel( composite, "Time Limit:" ); - Text timeLimitText = toolkit.createText( composite, "" ); + timeLimitText = toolkit.createText( composite, "" ); timeLimitText.addVerifyListener( integerVerifyListener ); timeLimitText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); } @@ -223,49 +315,75 @@ public class ReplicationDetailsPage impl TableWrapData td = new TableWrapData( TableWrapData.FILL, TableWrapData.TOP ); td.grabHorizontal = true; section.setLayoutData( td ); - Composite client = toolkit.createComposite( section ); - toolkit.paintBordersFor( client ); - GridLayout glayout = new GridLayout( 2, false ); - client.setLayout( glayout ); - section.setClient( client ); + Composite composite = toolkit.createComposite( section ); + toolkit.paintBordersFor( composite ); + GridLayout glayout = new GridLayout( 3, false ); + composite.setLayout( glayout ); + section.setClient( composite ); // Base DN Text - toolkit.createLabel( client, "Base DN:" ); - Text baseDnText = toolkit.createText( client, "" ); - baseDnText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); + toolkit.createLabel( composite, "Base DN:" ); + entryWidget = new EntryWidget( browserConnection, Dn.EMPTY_DN ); + entryWidget.createWidget( composite ); // Filter Text - toolkit.createLabel( client, "Filter:" ); - Text filterText = toolkit.createText( client, "" ); - filterText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); + toolkit.createLabel( composite, "Filter:" ); + filterWidget = new FilterWidget(); + filterWidget.setBrowserConnection( browserConnection ); + filterWidget.createWidget( composite ); // Scope - Label scopeLabel = toolkit.createLabel( client, "Scope:" ); + Label scopeLabel = toolkit.createLabel( composite, "Scope:" ); scopeLabel.setLayoutData( new GridData( SWT.BEGINNING, SWT.TOP, false, false, 1, 3 ) ); // Subtree Scope Button - Button subtreeScopeButton = toolkit.createButton( client, "Subtree", SWT.RADIO ); + subtreeScopeButton = toolkit.createButton( composite, "Subtree", SWT.RADIO ); + subtreeScopeButton.setLayoutData( new GridData( SWT.LEFT, SWT.CENTER, false, false, 2, 1 ) ); // One Level Scope Button - Button oneLevelScopeButton = toolkit.createButton( client, "One Level", SWT.RADIO ); + oneLevelScopeButton = toolkit.createButton( composite, "One Level", SWT.RADIO ); + oneLevelScopeButton.setLayoutData( new GridData( SWT.LEFT, SWT.CENTER, false, false, 2, 1 ) ); // Object Scope Button - Button objectScopeButton = toolkit.createButton( client, "Object", SWT.RADIO ); + objectScopeButton = toolkit.createButton( composite, "Object", SWT.RADIO ); + objectScopeButton.setLayoutData( new GridData( SWT.LEFT, SWT.CENTER, false, false, 2, 1 ) ); - // Attributes Text - toolkit.createLabel( client, "Attributes:" ); - Text attributesText = toolkit.createText( client, "" ); - attributesText.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); + // Attributes Label + Label attributesLabel = toolkit.createLabel( composite, "Attributes:" ); + attributesLabel.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false, 3, 1 ) ); + + // Attributes Table Viewer + Composite attributesTableComposite = toolkit.createComposite( composite ); + GridLayout gl = new GridLayout( 2, false ); + gl.marginWidth = gl.marginHeight = 0; + attributesTableComposite.setLayout( gl ); + attributesTableComposite.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 3, 1 ) ); + Table attributesTable = toolkit.createTable( attributesTableComposite, SWT.BORDER ); + attributesTable.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false, 1, 3 ) ); + attributesTableViewer = new TableViewer( attributesTable ); + + addAttributeButton = toolkit.createButton( attributesTableComposite, "Add...", SWT.PUSH ); + addAttributeButton.setLayoutData( createNewButtonGridData() ); + + editAttributeButton = toolkit.createButton( attributesTableComposite, "Edit...", SWT.PUSH ); + editAttributeButton.setLayoutData( createNewButtonGridData() ); + + deleteAttributeButton = toolkit.createButton( attributesTableComposite, "Delete", SWT.PUSH ); + deleteAttributeButton.setLayoutData( createNewButtonGridData() ); // Aliases Dereferencing Text - Label aliasesDereferencingLable = toolkit.createLabel( client, "Aliases\nDereferencing:" ); + Label aliasesDereferencingLable = toolkit.createLabel( composite, "Aliases\nDereferencing:" ); aliasesDereferencingLable.setLayoutData( new GridData( SWT.BEGINNING, SWT.TOP, false, false, 1, 2 ) ); // Finding Base DN Aliases Dereferencing Button - Button findingBaseDnAliasesDereferencingButton = toolkit.createButton( client, "Finding Base DN", SWT.CHECK ); + findingBaseDnAliasesDereferencingButton = toolkit.createButton( composite, "Finding Base DN", SWT.CHECK ); + findingBaseDnAliasesDereferencingButton + .setLayoutData( new GridData( SWT.LEFT, SWT.CENTER, false, false, 2, 1 ) ); // Search Aliases Dereferencing Button - Button searchAliasesDereferencingButton = toolkit.createButton( client, "Search", SWT.CHECK ); + searchAliasesDereferencingButton = toolkit.createButton( composite, "Search", SWT.CHECK ); + searchAliasesDereferencingButton.setLayoutData( new GridData( SWT.LEFT, SWT.CENTER, false, false, 2, 1 ) ); + } @@ -287,6 +405,27 @@ public class ReplicationDetailsPage impl */ private void addListeners() { + enabledCheckbox.addSelectionListener( buttonSelectionListener ); + idText.addModifyListener( textModifyListener ); + descriptionText.addModifyListener( textModifyListener ); + remoteHostText.addModifyListener( textModifyListener ); + remotePortText.addModifyListener( textModifyListener ); + bindDnText.addModifyListener( textModifyListener ); + bindPasswordText.addModifyListener( textModifyListener ); + showPasswordCheckbox.addSelectionListener( showPasswordCheckboxSelectionListener ); + sizeLimitText.addModifyListener( textModifyListener ); + timeLimitText.addModifyListener( textModifyListener ); + entryWidget.addWidgetModifyListener( widgetModifyListener ); + filterWidget.addWidgetModifyListener( widgetModifyListener ); + subtreeScopeButton.addSelectionListener( buttonSelectionListener ); + oneLevelScopeButton.addSelectionListener( buttonSelectionListener ); + objectScopeButton.addSelectionListener( buttonSelectionListener ); + //attributesTableViewer; + //addAttributeButton; + //editAttributeButton; + //deleteAttributeButton; + findingBaseDnAliasesDereferencingButton.addSelectionListener( buttonSelectionListener ); + searchAliasesDereferencingButton.addSelectionListener( buttonSelectionListener ); } @@ -295,6 +434,27 @@ public class ReplicationDetailsPage impl */ private void removeListeners() { + enabledCheckbox.removeSelectionListener( buttonSelectionListener ); + idText.removeModifyListener( textModifyListener ); + descriptionText.removeModifyListener( textModifyListener ); + remoteHostText.removeModifyListener( textModifyListener ); + remotePortText.removeModifyListener( textModifyListener ); + bindDnText.removeModifyListener( textModifyListener ); + bindPasswordText.removeModifyListener( textModifyListener ); + showPasswordCheckbox.removeSelectionListener( showPasswordCheckboxSelectionListener ); + sizeLimitText.removeModifyListener( textModifyListener ); + timeLimitText.removeModifyListener( textModifyListener ); + entryWidget.removeWidgetModifyListener( widgetModifyListener ); + filterWidget.removeWidgetModifyListener( widgetModifyListener ); + subtreeScopeButton.removeSelectionListener( buttonSelectionListener ); + oneLevelScopeButton.removeSelectionListener( buttonSelectionListener ); + objectScopeButton.removeSelectionListener( buttonSelectionListener ); + //attributesTableViewer; + //addAttributeButton; + //editAttributeButton; + //deleteAttributeButton; + findingBaseDnAliasesDereferencingButton.removeSelectionListener( buttonSelectionListener ); + searchAliasesDereferencingButton.removeSelectionListener( buttonSelectionListener ); } @@ -321,6 +481,159 @@ public class ReplicationDetailsPage impl */ public void commit( boolean onSave ) { + if ( input != null ) + { + // Enabled + input.setEnabled( enabledCheckbox.getSelection() ); + + // ID + input.setReplConsumerId( checkEmptyString( idText.getText() ) ); + + // Description + input.setDescription( checkEmptyString( descriptionText.getText() ) ); + + // Remote Host + input.setReplProvHostName( checkEmptyString( remoteHostText.getText() ) ); + + // Remote Port + try + { + input.setReplProvPort( Integer.parseInt( remotePortText.getText() ) ); + } + catch ( NumberFormatException e ) + { + input.setReplProvPort( 0 ); + } + + // Bind DN + input.setReplUserDn( checkEmptyString( bindDnText.getText() ) ); + + // Bind Password + String password = checkEmptyString( bindPasswordText.getText() ); + + if ( password != null ) + { + input.setReplUserPassword( password.getBytes() ); + } + else + { + input.setReplUserPassword( null ); + } + + // Size Limit + try + { + input.setReplSearchSizeLimit( Integer.parseInt( sizeLimitText.getText() ) ); + } + catch ( NumberFormatException e ) + { + input.setReplSearchSizeLimit( 0 ); + } + + // Time Limit + try + { + input.setReplSearchTimeout( Integer.parseInt( timeLimitText.getText() ) ); + } + catch ( NumberFormatException e ) + { + input.setReplSearchTimeout( 0 ); + } + + // Search Base DN + input.setSearchBaseDn( checkEmptyString( entryWidget.getDn().toString() ) );; + + // Search Filter + input.setReplSearchFilter( checkEmptyString( filterWidget.getFilter() ) ); + + // Search Scope + SearchScope scope = getSearchScope(); + + if ( scope != null ) + { + input.setReplSearchScope( scope.getLdapUrlValue() ); + } + else + { + input.setReplSearchScope( null ); + } + + // Aliases Dereferencing + input.setReplAliasDerefMode( getAliasDerefMode().getJndiValue() ); + } + } + + + /** + * Gets the search scope. + * + * @return the search scope + */ + private SearchScope getSearchScope() + { + if ( subtreeScopeButton.getSelection() ) + { + return SearchScope.SUBTREE; + } + else if ( oneLevelScopeButton.getSelection() ) + { + return SearchScope.ONELEVEL; + } + else if ( objectScopeButton.getSelection() ) + { + return SearchScope.OBJECT; + } + + return null; + } + + + /** + * Gets the aliases dereferencing mode. + * + * @return the aliases dereferencing mode + */ + private AliasDerefMode getAliasDerefMode() + { + if ( findingBaseDnAliasesDereferencingButton.getSelection() && searchAliasesDereferencingButton.getSelection() ) + { + return AliasDerefMode.DEREF_ALWAYS; + } + else if ( !findingBaseDnAliasesDereferencingButton.getSelection() + && searchAliasesDereferencingButton.getSelection() ) + { + return AliasDerefMode.DEREF_IN_SEARCHING; + } + else if ( findingBaseDnAliasesDereferencingButton.getSelection() + && !searchAliasesDereferencingButton.getSelection() ) + { + return AliasDerefMode.DEREF_FINDING_BASE_OBJ; + } + else if ( !findingBaseDnAliasesDereferencingButton.getSelection() + && !searchAliasesDereferencingButton.getSelection() ) + { + return AliasDerefMode.NEVER_DEREF_ALIASES; + } + + return AliasDerefMode.NEVER_DEREF_ALIASES; + } + + + /** + * Checks if the string is null + * and returns an empty string in that case. + * + * @param s the string + * @return a non-null string + */ + private String checkEmptyString( String s ) + { + if ( "".equals( s ) ) + { + return null; + } + + return s; } @@ -366,15 +679,147 @@ public class ReplicationDetailsPage impl { removeListeners(); + if ( input != null ) + { + // Enabled + enabledCheckbox.setSelection( input.isEnabled() ); + + // ID + idText.setText( checkNull( input.getReplConsumerId() ) ); + + // Description + descriptionText.setText( checkNull( input.getDescription() ) ); + + // Remote Host + remoteHostText.setText( checkNull( input.getReplProvHostName() ) ); + + // Remote Port + remotePortText.setText( checkNull( String.valueOf( input.getReplProvPort() ) ) ); + + // Bind DN + bindDnText.setText( checkNull( input.getReplUserDn() ) ); + + // Bind Password + bindPasswordText.setText( checkNull( String.valueOf( input.getReplUserPassword() ) ) ); + + // Size Limit + sizeLimitText.setText( checkNull( String.valueOf( input.getReplSearchSizeLimit() ) ) ); + + // Time Limit + timeLimitText.setText( checkNull( String.valueOf( input.getReplSearchTimeout() ) ) ); + + // Search Base DN + try + { + entryWidget.setInput( browserConnection, new Dn( input.getSearchBaseDn() ) ); + } + catch ( LdapInvalidDnException e ) + { + entryWidget.setInput( browserConnection, Dn.EMPTY_DN ); + } + + // Search Filter + filterWidget.setFilter( checkNull( input.getReplSearchFilter() ) ); + + // Search Scope + SearchScope scope = null; + try + { + scope = SearchScope.getSearchScope( SearchScope.getSearchScope( input.getReplSearchScope() ) ); + } + catch ( IllegalArgumentException e ) + { + scope = null; + } + + if ( scope != null ) + { + switch ( scope ) + { + case SUBTREE: + subtreeScopeButton.setSelection( true ); + break; + case ONELEVEL: + oneLevelScopeButton.setSelection( true ); + break; + case OBJECT: + objectScopeButton.setSelection( true ); + break; + } + } + else + { + subtreeScopeButton.setSelection( true ); + } + + // Aliases Dereferencing + AliasDerefMode aliasDerefMode = null; + try + { + aliasDerefMode = AliasDerefMode.getDerefMode( input.getReplAliasDerefMode() ); + } + catch ( IllegalArgumentException e ) + { + aliasDerefMode = null; + } + + if ( aliasDerefMode != null ) + { + switch ( aliasDerefMode ) + { + case DEREF_ALWAYS: + findingBaseDnAliasesDereferencingButton.setSelection( true ); + searchAliasesDereferencingButton.setSelection( true ); + break; + case DEREF_FINDING_BASE_OBJ: + findingBaseDnAliasesDereferencingButton.setSelection( true ); + searchAliasesDereferencingButton.setSelection( false ); + break; + case DEREF_IN_SEARCHING: + findingBaseDnAliasesDereferencingButton.setSelection( false ); + searchAliasesDereferencingButton.setSelection( true ); + break; + case NEVER_DEREF_ALIASES: + findingBaseDnAliasesDereferencingButton.setSelection( false ); + searchAliasesDereferencingButton.setSelection( false ); + break; + } + } + else + { + findingBaseDnAliasesDereferencingButton.setSelection( true ); + searchAliasesDereferencingButton.setSelection( true ); + } + } + addListeners(); } /** + * Checks if the string is null + * and returns an empty string in that case. + * + * @param s the string + * @return a non-null string + */ + private String checkNull( String s ) + { + if ( s == null ) + { + return ""; + } + + return s; + } + + + /** * {@inheritDoc} */ public void setFocus() { + idText.setFocus(); } Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationMasterDetailsBlock.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationMasterDetailsBlock.java?rev=1408799&r1=1408798&r2=1408799&view=diff ============================================================================== --- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationMasterDetailsBlock.java (original) +++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ReplicationMasterDetailsBlock.java Tue Nov 13 15:53:37 2012 @@ -286,4 +286,14 @@ public class ReplicationMasterDetailsBlo { detailsPage.commit( true ); } + + /** + * Gets the replication page. + * + * @return the replication + */ + public ReplicationPage getPage() + { + return this.page; + } } Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java?rev=1408799&r1=1408798&r2=1408799&view=diff ============================================================================== --- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java (original) +++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java Tue Nov 13 15:53:37 2012 @@ -24,6 +24,7 @@ import org.apache.directory.server.confi import org.apache.directory.server.config.beans.DirectoryServiceBean; import org.apache.directory.studio.apacheds.configuration.v2.actions.EditorExportConfigurationAction; import org.apache.directory.studio.apacheds.configuration.v2.actions.EditorImportConfigurationAction; +import org.apache.directory.studio.connection.core.Connection; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.viewers.ISelectionChangedListener; @@ -47,6 +48,7 @@ import org.eclipse.swt.widgets.Composite import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.IEditorInput; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormPage; import org.eclipse.ui.forms.widgets.FormToolkit; @@ -161,6 +163,24 @@ public abstract class ServerConfiguratio /** + * Gets the connection associated with the editor. + * + * @return the connection + */ + public Connection getConnection() + { + IEditorInput editorInput = getEditorInput(); + + if ( editorInput instanceof ConnectionServerConfigurationInput ) + { + return ( ( ConnectionServerConfigurationInput ) editorInput ).getConnection(); + } + + return null; + } + + + /** * {@inheritDoc} */ protected void createFormContent( IManagedForm managedForm ) @@ -520,7 +540,7 @@ public abstract class ServerConfiguratio { string = ""; } - + text.setText( string ); } }