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 2012/10/15 16:51:52 UTC

svn commit: r1398315 - in /directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards: BatchOperationApplyOnWizardPage.java BatchOperationFinishWizardPage.java BatchOperationWizard.java

Author: pamarcelot
Date: Mon Oct 15 14:51:51 2012
New Revision: 1398315

URL: http://svn.apache.org/viewvc?rev=1398315&view=rev
Log:
Fix for DIRSTUDIO-806 (Editing Multiple Directory Objects at once) and DIRSTUDIO-736 (Implement the "Execute Online" button of the BatchOperationWizard)

Modified:
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationApplyOnWizardPage.java
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationFinishWizardPage.java
    directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationWizard.java

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationApplyOnWizardPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationApplyOnWizardPage.java?rev=1398315&r1=1398314&r2=1398315&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationApplyOnWizardPage.java (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationApplyOnWizardPage.java Mon Oct 15 14:51:51 2012
@@ -323,7 +323,9 @@ public class BatchOperationApplyOnWizard
 
     }
 
-
+    /**
+     * Saves the dialog settings.
+     */
     public void saveDialogSettings()
     {
         this.spw.saveToSearch( initSearch );

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationFinishWizardPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationFinishWizardPage.java?rev=1398315&r1=1398314&r2=1398315&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationFinishWizardPage.java (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationFinishWizardPage.java Mon Oct 15 14:51:51 2012
@@ -22,6 +22,7 @@ package org.apache.directory.studio.ldap
 
 
 import org.apache.directory.studio.common.ui.widgets.BaseWidgetUtils;
+import org.apache.directory.studio.ldapbrowser.ui.BrowserUIPlugin;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -32,21 +33,33 @@ import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 
 
+/**
+ * This class implements the Finish page of the Batch Operation Wizard.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
 public class BatchOperationFinishWizardPage extends WizardPage
 {
+    /** The continue on error flag key */
+    public static final String CONTINUE_ON_ERROR_DIALOGSETTING_KEY = BatchOperationFinishWizardPage.class.getName()
+        + ".continueOnError"; //$NON-NLS-1$
 
     public final static int EXECUTION_METHOD_NONE = -1;
-
     public final static int EXECUTION_METHOD_LDIF = 0;
-
     public final static int EXECUTION_METHOD_ONLINE = 1;
 
+    // UI widgets
     private Button executeOnlineButton;
-
     private Button generateLdifButton;
+    private Button continueOnErrorButton;
 
 
-    public BatchOperationFinishWizardPage( String pageName, BatchOperationWizard wizard )
+    /**
+     * Creates a new instance of BatchOperationFinishWizardPage.
+     *
+     * @param pageName the page name
+     */
+    public BatchOperationFinishWizardPage( String pageName )
     {
         super( pageName );
         super.setTitle( Messages.getString( "BatchOperationFinishWizardPage.SelectExecutionMethod" ) ); //$NON-NLS-1$
@@ -55,24 +68,32 @@ public class BatchOperationFinishWizardP
     }
 
 
+    /**
+     * Validates the page.
+     */
     private void validate()
     {
+        continueOnErrorButton.setEnabled( getExecutionMethod() == EXECUTION_METHOD_ONLINE );
         setPageComplete( getExecutionMethod() != EXECUTION_METHOD_NONE );
     }
 
 
+    /**
+     * {@inheritDoc}
+     */
     public void createControl( Composite parent )
     {
-
+        // Composite
         Composite composite = new Composite( parent, SWT.NONE );
-        GridLayout gl = new GridLayout( 1, false );
+        GridLayout gl = new GridLayout( 2, false );
         composite.setLayout( gl );
         composite.setLayoutData( new GridData( GridData.FILL_BOTH ) );
 
-        generateLdifButton = BaseWidgetUtils.createRadiobutton( composite, Messages
-            .getString( "BatchOperationFinishWizardPage.GenerateLDIF" ), 1 ); //$NON-NLS-1$
-        generateLdifButton.setSelection( true );
-        generateLdifButton.addSelectionListener( new SelectionAdapter()
+        // Execute Online Button
+        executeOnlineButton = BaseWidgetUtils.createRadiobutton( composite, Messages
+            .getString( "BatchOperationFinishWizardPage.ExecuteOnline" ), 2 ); //$NON-NLS-1$
+        executeOnlineButton.setSelection( true );
+        executeOnlineButton.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
@@ -80,10 +101,21 @@ public class BatchOperationFinishWizardP
             }
         } );
 
-        executeOnlineButton = BaseWidgetUtils.createRadiobutton( composite, Messages
-            .getString( "BatchOperationFinishWizardPage.ExecuteOnline" ), 1 ); //$NON-NLS-1$
-        executeOnlineButton.setEnabled( false );
-        executeOnlineButton.addSelectionListener( new SelectionAdapter()
+        // Continue On Error Radio Button
+        BaseWidgetUtils.createRadioIndent( composite, 1 );
+        continueOnErrorButton = BaseWidgetUtils.createCheckbox( composite, Messages
+            .getString( "ImportLdifMainWizardPage.ContinueOnError" ), 1 ); //$NON-NLS-1$
+        if ( BrowserUIPlugin.getDefault().getDialogSettings().get( CONTINUE_ON_ERROR_DIALOGSETTING_KEY ) == null )
+        {
+            BrowserUIPlugin.getDefault().getDialogSettings().put( CONTINUE_ON_ERROR_DIALOGSETTING_KEY, true );
+        }
+        continueOnErrorButton.setSelection( BrowserUIPlugin.getDefault().getDialogSettings()
+            .getBoolean( CONTINUE_ON_ERROR_DIALOGSETTING_KEY ) );
+
+        // Generate LDIF Button
+        generateLdifButton = BaseWidgetUtils.createRadiobutton( composite, Messages
+            .getString( "BatchOperationFinishWizardPage.GenerateLDIF" ), 2 ); //$NON-NLS-1$
+        generateLdifButton.addSelectionListener( new SelectionAdapter()
         {
             public void widgetSelected( SelectionEvent e )
             {
@@ -97,6 +129,11 @@ public class BatchOperationFinishWizardP
     }
 
 
+    /**
+     * Gets the execution method.
+     *
+     * @return the execution method
+     */
     public int getExecutionMethod()
     {
         if ( executeOnlineButton.getSelection() )
@@ -113,4 +150,24 @@ public class BatchOperationFinishWizardP
         }
     }
 
+
+    /**
+     * Gets the continue on error flag.
+     *
+     * @return the continue on error flag
+     */
+    public boolean getContinueOnError()
+    {
+        return continueOnErrorButton.getSelection();
+    }
+
+
+    /**
+     * Saves the dialog settings.
+     */
+    public void saveDialogSettings()
+    {
+        BrowserUIPlugin.getDefault().getDialogSettings().put( CONTINUE_ON_ERROR_DIALOGSETTING_KEY,
+            continueOnErrorButton.getSelection() );
+    }
 }

Modified: directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationWizard.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationWizard.java?rev=1398315&r1=1398314&r2=1398315&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationWizard.java (original)
+++ directory/studio/trunk/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/wizards/BatchOperationWizard.java Mon Oct 15 14:51:51 2012
@@ -26,7 +26,9 @@ import org.apache.directory.studio.conne
 import org.apache.directory.studio.connection.ui.RunnableContextRunner;
 import org.apache.directory.studio.ldapbrowser.common.actions.BrowserSelectionUtils;
 import org.apache.directory.studio.ldapbrowser.core.BrowserCoreConstants;
+import org.apache.directory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable;
 import org.apache.directory.studio.ldapbrowser.core.jobs.SearchRunnable;
+import org.apache.directory.studio.ldapbrowser.core.jobs.StudioBrowserJob;
 import org.apache.directory.studio.ldapbrowser.core.model.IAttribute;
 import org.apache.directory.studio.ldapbrowser.core.model.IBookmark;
 import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
@@ -131,7 +133,7 @@ public class BatchOperationWizard extend
             modifyPage = new BatchOperationModifyWizardPage( BatchOperationModifyWizardPage.class.getName(), this );
             addPage( modifyPage );
 
-            finishPage = new BatchOperationFinishWizardPage( BatchOperationFinishWizardPage.class.getName(), this );
+            finishPage = new BatchOperationFinishWizardPage( BatchOperationFinishWizardPage.class.getName() );
             addPage( finishPage );
         }
         else
@@ -271,11 +273,10 @@ public class BatchOperationWizard extend
 
     public boolean performFinish()
     {
-
         if ( this.applyOnPage != null )
         {
-
             this.applyOnPage.saveDialogSettings();
+            this.finishPage.saveDialogSettings();
 
             // get LDIF
             String ldifFragment = ""; //$NON-NLS-1$
@@ -350,18 +351,22 @@ public class BatchOperationWizard extend
                                 document.set( ldif.toString() );
                             }
                         }
-
                     }
                     catch ( PartInitException e )
                     {
                         return false;
                     }
-                    return true;
 
+                    return true;
                 }
                 else if ( finishPage.getExecutionMethod() == BatchOperationFinishWizardPage.EXECUTION_METHOD_ONLINE )
                 {
-                    // TODO
+                    ExecuteLdifRunnable runnable = new ExecuteLdifRunnable( getConnection(), ldif.toString(), true,
+                        finishPage.getContinueOnError() );
+                    StudioBrowserJob job = new StudioBrowserJob( runnable );
+                    job.execute();
+
+                    return true;
                 }
             }
 
@@ -382,5 +387,4 @@ public class BatchOperationWizard extend
     {
         return this.connection;
     }
-
 }