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/07/23 17:17:25 UTC

svn commit: r558768 - in /directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor: controller/ controller/actions/ view/wizards/

Author: pamarcelot
Date: Mon Jul 23 08:17:24 2007
New Revision: 558768

URL: http://svn.apache.org/viewvc?view=rev&rev=558768
Log:
Added in the NewObjectClassWizard the ability to pre-select the selected schema.
Used this feature in the SchemaView for the NewObjectClassAction.

Modified:
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/DeleteSchemaElementAction.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/NewObjectClassAction.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassGeneralPageWizardPage.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassWizard.java

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java?view=diff&rev=558768&r1=558767&r2=558768
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java Mon Jul 23 08:17:24 2007
@@ -23,7 +23,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.directory.shared.ldap.schema.SchemaObject;
 import org.apache.directory.studio.apacheds.schemaeditor.Activator;
 import org.apache.directory.studio.apacheds.schemaeditor.PluginConstants;
 import org.apache.directory.studio.apacheds.schemaeditor.controller.actions.CollapseAllAction;
@@ -64,9 +63,9 @@
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.IWorkbenchPage;
@@ -258,8 +257,8 @@
          */
         public void schemaAdded( Schema schema )
         {
-            TreeNode rootNode = ( TreeNode ) viewer.getInput();
-            SchemaWrapper schemaWrapper = new SchemaWrapper( schema, rootNode );
+            final TreeNode rootNode = ( TreeNode ) viewer.getInput();
+            final SchemaWrapper schemaWrapper = new SchemaWrapper( schema, rootNode );
             rootNode.addChild( schemaWrapper );
 
             int group = Activator.getDefault().getPreferenceStore().getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
@@ -294,8 +293,14 @@
                 }
             }
 
-            viewer.refresh( rootNode );
-            viewer.setSelection( new StructuredSelection( schemaWrapper ) );
+            Display.getDefault().asyncExec( new Runnable()
+            {
+                public void run()
+                {
+                    viewer.refresh( rootNode );
+                    viewer.setSelection( new StructuredSelection( schemaWrapper ) );
+                }
+            } );
         }
 
 
@@ -364,7 +369,7 @@
         connect = new ConnectAction( view );
         newSchema = new NewSchemaAction();
         newAttributeType = new NewAttributeTypeAction();
-        newObjectClass = new NewObjectClassAction();
+        newObjectClass = new NewObjectClassAction( viewer );
         openElement = new OpenElementAction( viewer );
         deleteSchemaElement = new DeleteSchemaElementAction( viewer );
         importSchemasFromOpenLdap = new ImportSchemasFromOpenLdapAction();
@@ -622,58 +627,6 @@
                 }
             }
         } );
-    }
-
-
-    /**
-     * Finds the parent node of a given element (AT or OT).
-     *
-     * @param element
-     *      the element
-     * @return
-     *      the parent node of a given element (AT or OT)
-     */
-    private TreeNode findParentElement( SchemaObject element )
-    {
-        // Finding the associated SchemaWrapper
-        TreeNode schemaWrapper = findSchemaWrapperInTree( element.getSchema() );
-        if ( schemaWrapper == null )
-        {
-            return null;
-        }
-
-        // Finding the correct node
-        TreeNode parentNode = null;
-        int group = Activator.getDefault().getPreferenceStore().getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
-        if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
-        {
-            Object[] children = ( ( ITreeContentProvider ) viewer.getContentProvider() ).getChildren( schemaWrapper );
-            for ( Object child : children )
-            {
-                Folder folder = ( Folder ) child;
-
-                if ( element instanceof AttributeTypeImpl )
-                {
-                    if ( folder.getType() == FolderType.ATTRIBUTE_TYPE )
-                    {
-                        parentNode = folder;
-                    }
-                }
-                else if ( element instanceof ObjectClassImpl )
-                {
-                    if ( folder.getType() == FolderType.OBJECT_CLASS )
-                    {
-                        parentNode = folder;
-                    }
-                }
-            }
-        }
-        else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
-        {
-            parentNode = schemaWrapper;
-        }
-
-        return parentNode;
     }
 
 

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/DeleteSchemaElementAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/DeleteSchemaElementAction.java?view=diff&rev=558768&r1=558767&r2=558768
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/DeleteSchemaElementAction.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/DeleteSchemaElementAction.java Mon Jul 23 08:17:24 2007
@@ -34,7 +34,6 @@
 import org.apache.directory.studio.apacheds.schemaeditor.model.ObjectClassImpl;
 import org.apache.directory.studio.apacheds.schemaeditor.model.Schema;
 import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.AttributeTypeWrapper;
-import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.Folder;
 import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.ObjectClassWrapper;
 import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.SchemaWrapper;
 import org.eclipse.jface.action.Action;

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/NewObjectClassAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/NewObjectClassAction.java?view=diff&rev=558768&r1=558767&r2=558768
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/NewObjectClassAction.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/NewObjectClassAction.java Mon Jul 23 08:17:24 2007
@@ -20,13 +20,22 @@
 package org.apache.directory.studio.apacheds.schemaeditor.controller.actions;
 
 
+import java.util.Iterator;
+
 import org.apache.directory.studio.apacheds.schemaeditor.Activator;
 import org.apache.directory.studio.apacheds.schemaeditor.PluginConstants;
+import org.apache.directory.studio.apacheds.schemaeditor.model.Schema;
 import org.apache.directory.studio.apacheds.schemaeditor.view.wizards.NewObjectClassWizard;
+import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.AttributeTypeWrapper;
+import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.Folder;
+import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.ObjectClassWrapper;
+import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.SchemaWrapper;
+import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.TreeNode;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
@@ -42,10 +51,14 @@
  */
 public class NewObjectClassAction extends Action implements IWorkbenchWindowActionDelegate
 {
+    /** The associated viewer */
+    private TreeViewer viewer;
+
+
     /**
      * Creates a new instance of NewObjectClassAction.
      */
-    public NewObjectClassAction()
+    public NewObjectClassAction( TreeViewer viewer )
     {
         super( "New Object Class" );
         setToolTipText( getText() );
@@ -53,6 +66,7 @@
         setImageDescriptor( AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
             PluginConstants.IMG_OBJECT_CLASS_NEW ) );
         setEnabled( false );
+        this.viewer = viewer;
     }
 
 
@@ -61,9 +75,53 @@
      */
     public void run()
     {
+        // Getting the selection
+        Schema selectedSchema = null;
+        StructuredSelection selection = ( StructuredSelection ) viewer.getSelection();
+        if ( ( !selection.isEmpty() ) && ( selection.size() == 1 ) )
+        {
+            Object firstElement = selection.getFirstElement();
+            if ( firstElement instanceof SchemaWrapper )
+            {
+                selectedSchema = ( ( SchemaWrapper ) firstElement ).getSchema();
+            }
+            else if ( firstElement instanceof Folder )
+            {
+                selectedSchema = ( ( SchemaWrapper ) ( ( Folder ) firstElement ).getParent() ).getSchema();
+            }
+            else if ( firstElement instanceof AttributeTypeWrapper )
+            {
+                TreeNode parent = ( ( AttributeTypeWrapper ) firstElement ).getParent();
+
+                if ( parent instanceof Folder )
+                {
+                    selectedSchema = ( ( SchemaWrapper ) ( ( Folder ) parent ).getParent() ).getSchema();
+
+                }
+                else if ( parent instanceof SchemaWrapper )
+                {
+                    selectedSchema = ( ( SchemaWrapper ) parent ).getSchema();
+                }
+            }
+            else if ( firstElement instanceof ObjectClassWrapper )
+            {
+                TreeNode parent = ( ( ObjectClassWrapper ) firstElement ).getParent();
+
+                if ( parent instanceof Folder )
+                {
+                    selectedSchema = ( ( SchemaWrapper ) ( ( Folder ) parent ).getParent() ).getSchema();
+                }
+                else if ( parent instanceof SchemaWrapper )
+                {
+                    selectedSchema = ( ( SchemaWrapper ) parent ).getSchema();
+                }
+            }
+        }
+
         // Instantiates and initializes the wizard
         NewObjectClassWizard wizard = new NewObjectClassWizard();
         wizard.init( PlatformUI.getWorkbench(), StructuredSelection.EMPTY );
+        wizard.setSelectedSchema( selectedSchema );
         // Instantiates the wizard container with the wizard and opens it
         WizardDialog dialog = new WizardDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard );
         dialog.create();

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassGeneralPageWizardPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassGeneralPageWizardPage.java?view=diff&rev=558768&r1=558767&r2=558768
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassGeneralPageWizardPage.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassGeneralPageWizardPage.java Mon Jul 23 08:17:24 2007
@@ -68,6 +68,9 @@
     /** The aliases */
     private String[] aliases;
 
+    /** The selected schema */
+    private Schema selectedSchema;
+
     // UI fields
     private ComboViewer schemaComboViewer;
     private Text oidText;
@@ -222,6 +225,11 @@
     private void initFields()
     {
         schemaComboViewer.setInput( schemaHandler.getSchemas() );
+
+        if ( selectedSchema != null )
+        {
+            schemaComboViewer.setSelection( new StructuredSelection( selectedSchema ) );
+        }
     }
 
 
@@ -359,5 +367,17 @@
     public String getDescriptionValue()
     {
         return descriptionText.getText();
+    }
+
+
+    /**
+     * Sets the selected schema.
+     *
+     * @param schema
+     *      the selected schema
+     */
+    public void setSelectedSchema( Schema schema )
+    {
+        selectedSchema = schema;
     }
 }

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassWizard.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassWizard.java?view=diff&rev=558768&r1=558767&r2=558768
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassWizard.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/NewObjectClassWizard.java Mon Jul 23 08:17:24 2007
@@ -22,6 +22,7 @@
 
 import org.apache.directory.studio.apacheds.schemaeditor.Activator;
 import org.apache.directory.studio.apacheds.schemaeditor.model.ObjectClassImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.model.Schema;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.ui.INewWizard;
@@ -36,6 +37,9 @@
  */
 public class NewObjectClassWizard extends Wizard implements INewWizard
 {
+    /** The selected schema */
+    private Schema selectedSchema;
+
     // The pages of the wizards
     private NewObjectClassGeneralPageWizardPage generalPage;
     private NewObjectClassContentWizardPage contentPage;
@@ -50,6 +54,7 @@
     {
         // Creating pages
         generalPage = new NewObjectClassGeneralPageWizardPage();
+        generalPage.setSelectedSchema( selectedSchema );
         contentPage = new NewObjectClassContentWizardPage();
         mandatoryAttributesPage = new NewObjectClassMandatoryAttributesPage();
         optionalAttributesPage = new NewObjectClassOptionalAttributesPage();
@@ -113,5 +118,17 @@
     public NewObjectClassOptionalAttributesPage getOptionalAttributesPage()
     {
         return optionalAttributesPage;
+    }
+
+
+    /**
+     * Sets the selected schema.
+     *
+     * @param schema
+     *      the selected schema
+     */
+    public void setSelectedSchema( Schema schema )
+    {
+        selectedSchema = schema;
     }
 }