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/30 11:58:40 UTC

svn commit: r560910 - in /directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor: controller/ view/editors/attributetype/ view/editors/objectclass/

Author: pamarcelot
Date: Mon Jul 30 02:58:39 2007
New Revision: 560910

URL: http://svn.apache.org/viewvc?view=rev&rev=560910
Log:
Updated the OC Editor to automatically be closed when the OC or the parent Schema it belongs to is removed.

Modified:
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditor.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java?view=diff&rev=560910&r1=560909&r2=560910
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java Mon Jul 30 02:58:39 2007
@@ -954,7 +954,7 @@
                 ( ( SchemaListener ) object ).attributeTypeRemoved( at );
             }
         }
-        
+
         // Attribute Type Listeners
         List<?> atListeners = ( List<?> ) attributeTypeListeners.get( at );
         if ( atListeners != null )
@@ -1040,6 +1040,16 @@
             for ( Object object : listeners.toArray() )
             {
                 ( ( SchemaListener ) object ).objectClassModified( oc );
+            }
+        }
+
+        // Object Class Listeners
+        List<?> ocListeners = ( List<?> ) objectClassListeners.get( oc );
+        if ( ocListeners != null )
+        {
+            for ( Object object : ocListeners.toArray() )
+            {
+                ( ( ObjectClassListener ) object ).objectClassRemoved();
             }
         }
     }

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java?view=diff&rev=560910&r1=560909&r2=560910
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java Mon Jul 30 02:58:39 2007
@@ -55,6 +55,9 @@
 
     /** The ID of the Editor */
     public static final String ID = Activator.PLUGIN_ID + ".view.attributeTypeEditor"; //$NON-NLS-1$
+    
+    /** The editor */
+    private AttributeTypeEditor instance;
 
     /** The dirty state flag */
     private boolean dirty = false;
@@ -100,9 +103,6 @@
         }
     };
 
-    /** The editor */
-    private AttributeTypeEditor instance;
-
     /** The attribute type listener */
     private AttributeTypeListener attributeTypeListener = new AttributeTypeAdapter()
     {
@@ -117,7 +117,7 @@
     {
         public void schemaRemoved( Schema schema )
         {
-            if ( schema.equals( originalSchema )  )
+            if ( schema.equals( originalSchema ) )
             {
                 getEditorSite().getPage().closeEditor( instance, false );
             }
@@ -137,7 +137,7 @@
         setPartName( input.getName() );
 
         originalAttributeType = ( ( AttributeTypeEditorInput ) getEditorInput() ).getAttributeType();
-        modifiedAttributeType = ( AttributeTypeImpl ) PluginUtils.getClone( originalAttributeType );
+        modifiedAttributeType = PluginUtils.getClone( originalAttributeType );
 
         SchemaHandler schemaHandler = Activator.getDefault().getSchemaHandler();
         originalSchema = schemaHandler.getSchema( originalAttributeType.getSchema() );

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java?view=diff&rev=560910&r1=560909&r2=560910
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java Mon Jul 30 02:58:39 2007
@@ -87,6 +87,7 @@
     /** The modified object class */
     private AttributeTypeImpl modifiedAttributeType;
 
+    /** The original schema */
     private Schema originalSchema;
 
     /** The SchemaHandler */

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditor.java?view=diff&rev=560910&r1=560909&r2=560910
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditor.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditor.java Mon Jul 30 02:58:39 2007
@@ -23,7 +23,13 @@
 
 import org.apache.directory.studio.apacheds.schemaeditor.Activator;
 import org.apache.directory.studio.apacheds.schemaeditor.PluginUtils;
+import org.apache.directory.studio.apacheds.schemaeditor.controller.ObjectClassAdapter;
+import org.apache.directory.studio.apacheds.schemaeditor.controller.ObjectClassListener;
+import org.apache.directory.studio.apacheds.schemaeditor.controller.SchemaHandler;
+import org.apache.directory.studio.apacheds.schemaeditor.controller.SchemaHandlerAdapter;
+import org.apache.directory.studio.apacheds.schemaeditor.controller.SchemaHandlerListener;
 import org.apache.directory.studio.apacheds.schemaeditor.model.ObjectClassImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.model.Schema;
 import org.apache.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.dialogs.IPageChangedListener;
@@ -48,6 +54,9 @@
     /** The ID of the Editor */
     public static final String ID = Activator.PLUGIN_ID + ".view.objectClassEditor"; //$NON-NLS-1$
 
+    /** The editor */
+    private ObjectClassEditor instance;
+
     /** The Overview page */
     private ObjectClassEditorOverviewPage overview;
 
@@ -63,6 +72,9 @@
     /** The object class used to save modifications */
     private ObjectClassImpl modifiedObjectClass;
 
+    /** The originalSchema */
+    private Schema originalSchema;
+
     /** The listener for page changed */
     private IPageChangedListener pageChangedListener = new IPageChangedListener()
     {
@@ -90,14 +102,26 @@
         }
     };
 
+    /** The object class listener */
+    private ObjectClassListener objectClassListener = new ObjectClassAdapter()
+    {
+        public void objectClassRemoved()
+        {
+            getEditorSite().getPage().closeEditor( instance, false );
+        }
+    };
 
-    /**
-     * Default constructor
-     */
-    public ObjectClassEditor()
+    /** The SchemaHandler listener */
+    private SchemaHandlerListener schemaHandlerListener = new SchemaHandlerAdapter()
     {
-        super();
-    }
+        public void schemaRemoved( Schema schema )
+        {
+            if ( schema.equals( originalSchema ) )
+            {
+                getEditorSite().getPage().closeEditor( instance, false );
+            }
+        }
+    };
 
 
     /* (non-Javadoc)
@@ -105,16 +129,34 @@
      */
     public void init( IEditorSite site, IEditorInput input ) throws PartInitException
     {
+        instance = this;
+
         setSite( site );
         setInput( input );
         setPartName( input.getName() );
 
         originalObjectClass = ( ( ObjectClassEditorInput ) getEditorInput() ).getObjectClass();
-        //        originalObjectClass.setEditor( this );
-
         modifiedObjectClass = PluginUtils.getClone( originalObjectClass );
 
+        SchemaHandler schemaHandler = Activator.getDefault().getSchemaHandler();
+        originalSchema = schemaHandler.getSchema( originalObjectClass.getSchema() );
+        schemaHandler.addListener( originalObjectClass, objectClassListener );
+        schemaHandler.addListener( schemaHandlerListener );
+
         addPageChangedListener( pageChangedListener );
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.forms.editor.FormEditor#dispose()
+     */
+    public void dispose()
+    {
+        SchemaHandler schemaHandler = Activator.getDefault().getSchemaHandler();
+        schemaHandler.removeListener( originalObjectClass, objectClassListener );
+        schemaHandler.removeListener( schemaHandlerListener );
+
+        super.dispose();
     }
 
 

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java?view=diff&rev=560910&r1=560909&r2=560910
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java Mon Jul 30 02:58:39 2007
@@ -97,6 +97,9 @@
     /** The modified object class */
     private ObjectClassImpl modifiedObjectClass;
 
+    /** The original schema */
+    private Schema originalSchema;
+
     /** The SchemaHandler */
     private SchemaHandler schemaHandler;
 
@@ -180,7 +183,10 @@
          */
         public void objectClassRemoved( ObjectClassImpl oc )
         {
-            refreshUI();
+            if ( !oc.equals( originalObjectClass ) )
+            {
+                refreshUI();
+            }
         }
 
 
@@ -198,7 +204,10 @@
          */
         public void schemaRemoved( Schema schema )
         {
-            refreshUI();
+            if ( !schema.equals( originalSchema ) )
+            {
+                refreshUI();
+            }
         }
 
 
@@ -841,6 +850,7 @@
         // Getting the original and modified object classes
         modifiedObjectClass = ( ( ObjectClassEditor ) getEditor() ).getModifiedObjectClass();
         originalObjectClass = ( ( ObjectClassEditor ) getEditor() ).getOriginalObjectClass();
+        originalSchema = schemaHandler.getSchema( originalObjectClass.getSchema() );
 
         // Creating the base UI
         ScrolledForm form = managedForm.getForm();
@@ -1219,7 +1229,6 @@
     public void dispose()
     {
         schemaHandler.removeListener( schemaHandlerListener );
-        removeListeners();
 
         super.dispose();
     }