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 2006/12/28 18:47:29 UTC

svn commit: r490766 - in /directory/trunks/ldapstudio: ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/ ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ ldapstudio-browser-core/...

Author: pamarcelot
Date: Thu Dec 28 09:47:28 2006
New Revision: 490766

URL: http://svn.apache.org/viewvc?view=rev&rev=490766
Log:
Adding DSML Export Wizard. (The filter, subentries control and sizeLimit features doesn't currently work).

Added:
    directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ExportDsmlJob.java
    directory/trunks/ldapstudio/ldapstudio-browser-ui/icons/export_dsml.gif   (with props)
    directory/trunks/ldapstudio/ldapstudio-browser-ui/icons/export_dsml_wizard.gif   (with props)
    directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlFromWizardPage.java
    directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlToWizardPage.java
    directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlWizard.java
Modified:
    directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/BrowserCoreMessages.java
    directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/browsercoremessages.properties
    directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ImportDsmlJob.java
    directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/ldif/lines/LdifValueLineBase.java
    directory/trunks/ldapstudio/ldapstudio-browser-ui/plugin.xml
    directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/BrowserUIConstants.java
    directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/actions/ImportExportAction.java
    directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/browser/BrowserViewActionGroup.java
    directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/connection/ConnectionViewActionGroup.java
    directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ImportDsmlMainWizardPage.java

Modified: directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/BrowserCoreMessages.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/BrowserCoreMessages.java?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/BrowserCoreMessages.java (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/BrowserCoreMessages.java Thu Dec 28 09:47:28 2006
@@ -280,6 +280,12 @@
     public static String jobs__export_ldif_task;
 
     public static String jobs__export_ldif_error;
+    
+    public static String jobs__export_dsml_name;
+
+    public static String jobs__export_dsml_task;
+
+    public static String jobs__export_dsml_error;
 
     public static String jobs__export_progress;
 

Modified: directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/browsercoremessages.properties
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/browsercoremessages.properties?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/browsercoremessages.properties (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/browsercoremessages.properties Thu Dec 28 09:47:28 2006
@@ -167,6 +167,9 @@
 jobs__export_xls_name=XLS Export
 jobs__export_xls_task=Exporting XLS
 jobs__export_xls_error=Error while exporting XLS
+jobs__export_dsml_name=DSML Export
+jobs__export_dsml_task=Exporting DSML
+jobs__export_dsml_error=Error while exporting DSML
 
 jobs__read_entry_name=Read Entry
 jobs__read_entry_task=Reading entry {0}

Added: directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ExportDsmlJob.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ExportDsmlJob.java?view=auto&rev=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ExportDsmlJob.java (added)
+++ directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ExportDsmlJob.java Thu Dec 28 09:47:28 2006
@@ -0,0 +1,206 @@
+/*
+ *  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.browser.core.jobs;
+
+
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.directory.ldapstudio.browser.core.BrowserCoreMessages;
+import org.apache.directory.ldapstudio.browser.core.model.IConnection;
+import org.apache.directory.ldapstudio.browser.core.model.ISearch;
+import org.apache.directory.ldapstudio.browser.core.model.SearchParameter;
+import org.apache.directory.ldapstudio.dsmlv2.engine.Dsmlv2Engine;
+
+/**
+ * This class implements a Job for Exporting a part of a LDAP Server into a DSML File.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ExportDsmlJob extends AbstractEclipseJob
+{
+    /** The name of the DSML file to export to */
+    private String exportDsmlFilename;
+
+    /** The connection to use */
+    private IConnection connection;
+
+    /** The Search Parameter of the export*/
+    private SearchParameter searchParameter;
+
+
+    /**
+     * Creates a new instance of ExportDsmlJob.
+     *
+     * @param exportDsmlFilename
+     *          the name of the DSML file to export to
+     * @param connection
+     *          the connection to use
+     * @param searchParameter
+     *          the Search Parameter of the export
+     */
+    public ExportDsmlJob( String exportDsmlFilename, IConnection connection, SearchParameter searchParameter )
+    {
+        this.exportDsmlFilename = exportDsmlFilename;
+        this.connection = connection;
+        this.searchParameter = searchParameter;
+
+        setName( BrowserCoreMessages.jobs__export_dsml_name ); 
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.apache.directory.ldapstudio.browser.core.jobs.AbstractEclipseJob#getConnections()
+     */
+    protected IConnection[] getConnections()
+    {
+        return new IConnection[]
+            { connection };
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.apache.directory.ldapstudio.browser.core.jobs.AbstractEclipseJob#getLockedObjects()
+     */
+    protected Object[] getLockedObjects()
+    {
+        List l = new ArrayList();
+        l.add( connection.getUrl() + "_" + DigestUtils.shaHex( exportDsmlFilename ) );
+        return l.toArray();
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.apache.directory.ldapstudio.browser.core.jobs.AbstractEclipseJob#executeAsyncJob(org.apache.directory.ldapstudio.browser.core.jobs.ExtendedProgressMonitor)
+     */
+    protected void executeAsyncJob( ExtendedProgressMonitor monitor )
+    {
+        monitor.beginTask( BrowserCoreMessages.jobs__export_dsml_task, 2 );
+        monitor.reportProgress( " " ); //$NON-NLS-1$
+        monitor.worked( 1 );
+
+        try
+        {
+            // Getting and preparing each parameter for the request        
+            String requestDN = searchParameter.getSearchBase().toString();
+            
+            String requestScope = null;
+            int scope = searchParameter.getScope();
+            if ( scope == ISearch.SCOPE_OBJECT )
+            {
+                requestScope = "baseObject";
+            }
+            else if ( scope == ISearch.SCOPE_ONELEVEL)
+            {
+                requestScope = "singleLevel";
+            }
+            else if ( scope == ISearch.SCOPE_SUBTREE )
+            {
+                requestScope = "wholeSubtree";
+            }
+            
+            String requestDerefAliases = null;
+            int derefAliases = searchParameter.getAliasesDereferencingMethod();
+            if ( derefAliases == IConnection.DEREFERENCE_ALIASES_ALWAYS )
+            {
+                requestDerefAliases = "derefAlways";
+            }
+            else if ( derefAliases == IConnection.DEREFERENCE_ALIASES_FINDING)
+            {
+                requestDerefAliases = "derefFindingBaseObj";
+            }
+            else if ( derefAliases == IConnection.DEREFERENCE_ALIASES_NEVER )
+            {
+                requestDerefAliases = "neverDerefAliases";
+            }
+            else if ( derefAliases == IConnection.DEREFERENCE_ALIASES_SEARCH )
+            {
+                requestDerefAliases = "derefInSearching";
+            }
+            
+            String requestTimeLimit = null;
+            int timeLimit = searchParameter.getTimeLimit();
+            if ( timeLimit != 0);
+            {
+                requestTimeLimit = "" + timeLimit;
+            }
+            
+            String requestSizeLimit = null;
+            int countLimit = searchParameter.getCountLimit();
+            if ( countLimit != 0);
+            {
+                requestSizeLimit = "" + countLimit;
+            }
+            
+            // Constructing the request
+            String request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
+            request += "<batchRequest>";
+            request += "<searchRequest dn=\"" + requestDN + "\"";
+            request += " scope=\"" + requestScope + "\" ";
+            request += " derefAliases=\"" +requestDerefAliases + "\"";
+            if ( requestTimeLimit != null )
+            {
+                request += " timelimit=\"" +requestTimeLimit + "\"";
+            }
+            if ( requestSizeLimit != null )
+            {
+                request += " sizelimit=\"" +requestSizeLimit + "\"";
+            }
+            request += ">";
+            request += "<filter><present name=\"objectclass\"></present></filter>";
+            request += "<attributes>";
+            String[] returningAttributes = searchParameter.getReturningAttributes();
+            for ( int i = 0; i < returningAttributes.length; i++ )
+            {
+                request += "<attribute name=\"" + returningAttributes[i] + "\"/>";
+            }
+            request += "</attributes>";
+            request += "</searchRequest>";
+            request += "</batchRequest>";
+            
+            System.out.println( request );
+            
+            // Executing the request
+            Dsmlv2Engine engine = new Dsmlv2Engine( connection.getHost(), connection.getPort(), connection.getBindPrincipal(), connection.getBindPassword() );
+            String response = engine.processDSML( request );
+            
+            FileOutputStream fout = new FileOutputStream( exportDsmlFilename );
+            new PrintStream( fout ).println( response );
+            fout.close();
+        }
+        catch ( Exception e )
+        {
+            monitor.reportError( e );
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.directory.ldapstudio.browser.core.jobs.AbstractEclipseJob#getErrorMessage()
+     */
+    protected String getErrorMessage()
+    {
+        return BrowserCoreMessages.jobs__export_dsml_error;
+    }
+}

Modified: directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ImportDsmlJob.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ImportDsmlJob.java?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ImportDsmlJob.java (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/jobs/ImportDsmlJob.java Thu Dec 28 09:47:28 2006
@@ -44,7 +44,6 @@
  */
 public class ImportDsmlJob extends AbstractEclipseJob
 {
-
     /** The connection to use */
     private IConnection connection;
 

Modified: directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/ldif/lines/LdifValueLineBase.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/ldif/lines/LdifValueLineBase.java?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/ldif/lines/LdifValueLineBase.java (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-core/src/main/java/org/apache/directory/ldapstudio/browser/core/model/ldif/lines/LdifValueLineBase.java Thu Dec 28 09:47:28 2006
@@ -154,11 +154,11 @@
      * Returns the real data:
      * <ul>
      * <li>The unfolded String if value is a safe value.
-     * </ul>
+     * </li>
      * <li>A byte array if value is base64 encoded.
-     * </ul>
+     * </li>
      * <li>A byte array if value references an URL.
-     * </ul>
+     * </li>
      * </ul>
      * 
      * @return the real value or null

Added: directory/trunks/ldapstudio/ldapstudio-browser-ui/icons/export_dsml.gif
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/icons/export_dsml.gif?view=auto&rev=490766
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/ldapstudio/ldapstudio-browser-ui/icons/export_dsml.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: directory/trunks/ldapstudio/ldapstudio-browser-ui/icons/export_dsml_wizard.gif
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/icons/export_dsml_wizard.gif?view=auto&rev=490766
==============================================================================
Binary file - no diff available.

Propchange: directory/trunks/ldapstudio/ldapstudio-browser-ui/icons/export_dsml_wizard.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: directory/trunks/ldapstudio/ldapstudio-browser-ui/plugin.xml
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/plugin.xml?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/plugin.xml (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/plugin.xml Thu Dec 28 09:47:28 2006
@@ -169,6 +169,17 @@
        <selection class="org.apache.directory.ldapstudio.browser.core.model.IEntry"/>
     </wizard>
     <wizard
+          class="org.apache.directory.ldapstudio.browser.ui.wizards.ExportDsmlWizard"
+          icon="icons/export_dsml.gif"
+          id="org.apache.directory.ldapstudio.browser.ui.wizards.ExportDdsmlWizard"
+          name="LDAP to DSML">
+       <description>
+          Exports a DSML file from a LDAP directory
+       </description>
+       <selection class="org.apache.directory.ldapstudio.browser.core.model.IConnection"/>
+       <selection class="org.apache.directory.ldapstudio.browser.core.model.IEntry"/>
+    </wizard>
+    <wizard
           class="org.apache.directory.ldapstudio.browser.ui.wizards.ExportCsvWizard"
           icon="icons/export_csv.gif"
           id="org.apache.directory.ldapstudio.browser.ui.wizards.ExportCsvWizard"

Modified: directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/BrowserUIConstants.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/BrowserUIConstants.java?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/BrowserUIConstants.java (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/BrowserUIConstants.java Thu Dec 28 09:47:28 2006
@@ -257,6 +257,8 @@
     public static final String IMG_EXPORT = "icons/export.gif";
     
     public static final String IMG_IMPORT_DSML_WIZARD = "icons/import_dsml_wizard.gif";
+    
+    public static final String IMG_EXPORT_DSML_WIZARD = "icons/export_dsml_wizard.gif";
 
     public static final String IMG_IMPORT_LDIF_WIZARD = "icons/import_ldif_wizard.gif";
 
@@ -271,6 +273,8 @@
     public static final String IMG_EXPORT_XLS_WIZARD = "icons/export_xls_wizard.gif";
 
     public static final String IMG_IMPORT_DSML = "icons/import_dsml.gif";
+    
+    public static final String IMG_EXPORT_DSML = "icons/export_dsml.gif";
     
     public static final String IMG_IMPORT_LDIF = "icons/import_ldif.gif";
 

Modified: directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/actions/ImportExportAction.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/actions/ImportExportAction.java?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/actions/ImportExportAction.java (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/actions/ImportExportAction.java Thu Dec 28 09:47:28 2006
@@ -27,6 +27,7 @@
 import org.apache.directory.ldapstudio.browser.ui.BrowserUIConstants;
 import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
 import org.apache.directory.ldapstudio.browser.ui.wizards.ExportCsvWizard;
+import org.apache.directory.ldapstudio.browser.ui.wizards.ExportDsmlWizard;
 import org.apache.directory.ldapstudio.browser.ui.wizards.ExportExcelWizard;
 import org.apache.directory.ldapstudio.browser.ui.wizards.ExportLdifWizard;
 import org.apache.directory.ldapstudio.browser.ui.wizards.ImportDsmlWizard;
@@ -49,6 +50,8 @@
     public static final int TYPE_EXPORT_EXCEL = 3;
     
     public static final int TYPE_IMPORT_DSML = 4;
+    
+    public static final int TYPE_EXPORT_DSML = 5;
 
     private int type;
 
@@ -82,6 +85,10 @@
         {
             return "DSML Import...";
         }
+        else if ( this.type == TYPE_EXPORT_DSML )
+        {
+            return "DSML Export...";
+        }
         else
         {
             return "Export...";
@@ -111,6 +118,10 @@
         {
             return BrowserUIPlugin.getDefault().getImageDescriptor( BrowserUIConstants.IMG_IMPORT_DSML );
         }
+        else if ( this.type == TYPE_EXPORT_DSML )
+        {
+            return BrowserUIPlugin.getDefault().getImageDescriptor( BrowserUIConstants.IMG_EXPORT_DSML );
+        }
         else
         {
             return null;
@@ -184,6 +195,10 @@
         else if ( this.type == TYPE_EXPORT_EXCEL )
         {
             wizard = new ExportExcelWizard();
+        }
+        else if ( this.type == TYPE_EXPORT_DSML )
+        {
+            wizard = new ExportDsmlWizard();
         }
 
         if ( wizard != null )

Modified: directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/browser/BrowserViewActionGroup.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/browser/BrowserViewActionGroup.java?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/browser/BrowserViewActionGroup.java (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/browser/BrowserViewActionGroup.java Thu Dec 28 09:47:28 2006
@@ -109,6 +109,8 @@
     private static final String importLdifAction = "importLdifAction";
 
     private static final String exportLdifAction = "exportLdifAction";
+    
+    private static final String exportDsmlAction = "exportDsmlAction";
 
     private static final String exportCsvAction = "exportCsvAction";
 
@@ -165,6 +167,8 @@
 
         this.browserActionMap.put( importDsmlAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
                 ImportExportAction.TYPE_IMPORT_DSML ) ) );
+        this.browserActionMap.put( exportDsmlAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
+            ImportExportAction.TYPE_EXPORT_DSML ) ) );
         this.browserActionMap.put( importLdifAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
             ImportExportAction.TYPE_IMPORT_LDIF ) ) );
         this.browserActionMap.put( exportLdifAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
@@ -266,12 +270,13 @@
         // import/export
         MenuManager importMenuManager = new MenuManager( "Import" );
         importMenuManager.add( ( IAction ) this.browserActionMap.get( importLdifAction ) );
-        importMenuManager.add( new Separator() );
         importMenuManager.add( ( IAction ) this.browserActionMap.get( importDsmlAction ) );
+        importMenuManager.add( new Separator() );
         menuManager.add( importMenuManager );
 
         MenuManager exportMenuManager = new MenuManager( "Export" );
         exportMenuManager.add( ( IAction ) this.browserActionMap.get( exportLdifAction ) );
+        exportMenuManager.add( ( IAction ) this.browserActionMap.get( exportDsmlAction ) );
         exportMenuManager.add( new Separator() );
         exportMenuManager.add( ( IAction ) this.browserActionMap.get( exportCsvAction ) );
         exportMenuManager.add( ( IAction ) this.browserActionMap.get( exportExcelAction ) );

Modified: directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/connection/ConnectionViewActionGroup.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/connection/ConnectionViewActionGroup.java?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/connection/ConnectionViewActionGroup.java (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/views/connection/ConnectionViewActionGroup.java Thu Dec 28 09:47:28 2006
@@ -41,12 +41,13 @@
 
 public class ConnectionViewActionGroup extends ConnectionActionGroup
 {
-
     private ConnectionView view;
 
     private static final String selectAllAction = "selectAllAction";
 
     private static final String importDsmlAction = "importDsmlAction";
+    
+    private static final String exportDsmlAction = "exportDsmlAction";
 
     private static final String importLdifAction = "importLdifAction";
 
@@ -72,7 +73,9 @@
         this.connectionActionMap.put( selectAllAction, new ConnectionViewActionProxy( viewer, new SelectAllAction(
             viewer ) ) );
         this.connectionActionMap.put( importDsmlAction, new ConnectionViewActionProxy( viewer, new ImportExportAction(
-                ImportExportAction.TYPE_IMPORT_DSML ) ) );
+            ImportExportAction.TYPE_IMPORT_DSML ) ) );
+        this.connectionActionMap.put( exportDsmlAction, new ConnectionViewActionProxy( viewer, new ImportExportAction(
+            ImportExportAction.TYPE_EXPORT_DSML ) ) );
         this.connectionActionMap.put( importLdifAction, new ConnectionViewActionProxy( viewer, new ImportExportAction(
             ImportExportAction.TYPE_IMPORT_LDIF ) ) );
         this.connectionActionMap.put( exportLdifAction, new ConnectionViewActionProxy( viewer, new ImportExportAction(
@@ -139,11 +142,12 @@
         // import/export
         MenuManager importMenuManager = new MenuManager( "Import" );
         importMenuManager.add( ( IAction ) this.connectionActionMap.get( importLdifAction ) );
-        importMenuManager.add( new Separator() );
         importMenuManager.add( ( IAction ) this.connectionActionMap.get( importDsmlAction ) );
+        importMenuManager.add( new Separator() );
         menuManager.add( importMenuManager );
         MenuManager exportMenuManager = new MenuManager( "Export" );
         exportMenuManager.add( ( IAction ) this.connectionActionMap.get( exportLdifAction ) );
+        exportMenuManager.add( ( IAction ) this.connectionActionMap.get( exportDsmlAction ) );
         exportMenuManager.add( new Separator() );
         exportMenuManager.add( ( IAction ) this.connectionActionMap.get( exportCsvAction ) );
         exportMenuManager.add( ( IAction ) this.connectionActionMap.get( exportExcelAction ) );

Added: directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlFromWizardPage.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlFromWizardPage.java?view=auto&rev=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlFromWizardPage.java (added)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlFromWizardPage.java Thu Dec 28 09:47:28 2006
@@ -0,0 +1,58 @@
+/*
+ *  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.browser.ui.wizards;
+
+
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIConstants;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
+import org.apache.directory.ldapstudio.browser.ui.widgets.search.SearchPageWrapper;
+
+
+/**
+ * This class implements the From Page of the DSML Export Wizard.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ExportDsmlFromWizardPage extends ExportBaseFromWizardPage
+{
+
+    /**
+     * Creates a new instance of ExportDsmlFromWizardPage.
+     *
+     * @param pageName
+     *          the name of the page
+     * @param wizard
+     *          the wizard the page is attached to
+     */
+    public ExportDsmlFromWizardPage( String pageName, ExportBaseWizard wizard )
+    {
+        super( pageName, wizard, new SearchPageWrapper(
+            SearchPageWrapper.NAME_INVISIBLE
+                | SearchPageWrapper.ALLATTRIBUTES_VISIBLE
+                | SearchPageWrapper.OPERATIONALATTRIBUTES_VISIBLE
+                | ( ( wizard.getSearch().getReturningAttributes() == null || wizard.getSearch()
+                    .getReturningAttributes().length == 0 ) ? SearchPageWrapper.ALLATTRIBUTES_CHECKED
+                    : SearchPageWrapper.NONE ) ) );
+        super.setImageDescriptor( BrowserUIPlugin.getDefault().getImageDescriptor(
+            BrowserUIConstants.IMG_EXPORT_DSML_WIZARD ) );
+    }
+}

Added: directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlToWizardPage.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlToWizardPage.java?view=auto&rev=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlToWizardPage.java (added)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlToWizardPage.java Thu Dec 28 09:47:28 2006
@@ -0,0 +1,85 @@
+/*
+ *  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.browser.ui.wizards;
+
+
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIConstants;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
+import org.apache.directory.ldapstudio.browser.ui.widgets.BaseWidgetUtils;
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * This class implements the To Page of the DSML Export Wizard
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ExportDsmlToWizardPage extends ExportBaseToPage
+{
+    /** The extensions used by DSML files*/
+    private static final String[] EXTENSIONS = new String[]
+        { "*.xml", "*.*" };
+
+
+    /**
+     * Creates a new instance of ExportDsmlToWizardPage.
+     *
+     * @param pageName
+     *          the name of the page
+     * @param wizard
+     *          the wizard the page is attached to
+     */
+    public ExportDsmlToWizardPage( String pageName, ExportBaseWizard wizard )
+    {
+        super( pageName, wizard );
+        super.setImageDescriptor( BrowserUIPlugin.getDefault().getImageDescriptor(
+            BrowserUIConstants.IMG_EXPORT_DSML_WIZARD ) );
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.apache.directory.ldapstudio.browser.ui.wizards.ExportBaseToPage#createControl(org.eclipse.swt.widgets.Composite)
+     */
+    public void createControl( Composite parent )
+    {
+        final Composite composite = BaseWidgetUtils.createColumnContainer( parent, 3, 1 );
+        super.createControl( composite );
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.apache.directory.ldapstudio.browser.ui.wizards.ExportBaseToPage#getExtensions()
+     */
+    protected String[] getExtensions()
+    {
+        return EXTENSIONS;
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.apache.directory.ldapstudio.browser.ui.wizards.ExportBaseToPage#getFileType()
+     */
+    protected String getFileType()
+    {
+        return "DSML";
+    }
+}

Added: directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlWizard.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlWizard.java?view=auto&rev=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlWizard.java (added)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ExportDsmlWizard.java Thu Dec 28 09:47:28 2006
@@ -0,0 +1,86 @@
+/*
+ *  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.browser.ui.wizards;
+
+import org.apache.directory.ldapstudio.browser.core.jobs.ExportDsmlJob;
+
+
+/**
+ * This class implements the Wizard for Exporting to DSML
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ExportDsmlWizard extends ExportBaseWizard
+{
+    public static final String WIZARD_TITLE = "DSML Export";
+
+    private ExportDsmlFromWizardPage fromPage;
+
+    private ExportDsmlToWizardPage toPage;
+
+
+    /**
+     * Creates a new instance of ExportDsmlWizard.
+     */
+    public ExportDsmlWizard()
+    {
+        super( WIZARD_TITLE );
+    }
+
+
+    /**
+     * Gets the ID of the Export DSML Wizard
+     * @return The ID of the Export DSML Wizard
+     */
+    public static String getId()
+    {
+        return ExportDsmlWizard.class.getName();
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.wizard.Wizard#addPages()
+     */
+    public void addPages()
+    {
+        fromPage = new ExportDsmlFromWizardPage( ExportDsmlFromWizardPage.class.getName(), this );
+        addPage( fromPage );
+        toPage = new ExportDsmlToWizardPage( ExportDsmlToWizardPage.class.getName(), this );
+        addPage( toPage );
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.wizard.Wizard#performFinish()
+     */
+    public boolean performFinish()
+    {
+        this.fromPage.saveDialogSettings();
+        this.toPage.saveDialogSettings();
+
+        ExportDsmlJob edj = new ExportDsmlJob( this.exportFilename, this.search.getConnection(), this.search
+            .getSearchParameter() );
+        edj.execute();
+        
+        return true;
+    }
+}

Modified: directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ImportDsmlMainWizardPage.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ImportDsmlMainWizardPage.java?view=diff&rev=490766&r1=490765&r2=490766
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ImportDsmlMainWizardPage.java (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/wizards/ImportDsmlMainWizardPage.java Thu Dec 28 09:47:28 2006
@@ -37,6 +37,12 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Group;
 
+/**
+ * This class implements the Main Page of the DSML Import Wizard
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
 public class ImportDsmlMainWizardPage extends WizardPage
 {    
     /** The wizard the page is attached to */
@@ -56,6 +62,14 @@
     
     private String customResponseFileName;
     
+    /**
+     * Creates a new instance of ImportDsmlMainWizardPage.
+     *
+     * @param pageName
+     *          the name of the page
+     * @param wizard
+     *          the wizard the page is attached to
+     */
     public ImportDsmlMainWizardPage( String pageName, ImportDsmlWizard wizard )
     {
         super( pageName );
@@ -66,6 +80,9 @@
         this.wizard = wizard;
     }
     
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+     */
     public void createControl( Composite parent )
     {
         Composite composite = BaseWidgetUtils.createColumnContainer( parent, 3, 1 );
@@ -177,6 +194,9 @@
         setControl( composite );
     }
     
+    /**
+     * Validates the page. This method is responsible for displaying errors, as well as enabling/disabling the "Finish" button
+     */
     private void validate()
     {
         boolean ok = true;