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 10:45:51 UTC
svn commit: r560890 - in
/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor:
./ controller/ view/editors/attributetype/
Author: pamarcelot
Date: Mon Jul 30 01:45:46 2007
New Revision: 560890
URL: http://svn.apache.org/viewvc?view=rev&rev=560890
Log:
Updated the AT Editor to automatically be closed when the AT or the parent Schema it belongs to is closed.
Modified:
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java
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
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java?view=diff&rev=560890&r1=560889&r2=560890
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java Mon Jul 30 01:45:46 2007
@@ -26,7 +26,12 @@
import org.apache.directory.studio.apacheds.schemaeditor.controller.ProjectsHandler;
import org.apache.directory.studio.apacheds.schemaeditor.controller.ProjectsHandlerListener;
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.AttributeTypeImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.model.ObjectClassImpl;
import org.apache.directory.studio.apacheds.schemaeditor.model.Project;
+import org.apache.directory.studio.apacheds.schemaeditor.model.Schema;
import org.apache.directory.studio.apacheds.schemaeditor.model.schemachecker.SchemaChecker;
import org.apache.directory.studio.apacheds.schemaeditor.view.editors.attributetype.AttributeTypeEditor;
import org.apache.directory.studio.apacheds.schemaeditor.view.editors.objectclass.ObjectClassEditor;
@@ -35,6 +40,7 @@
import org.apache.directory.studio.apacheds.schemaeditor.view.widget.SchemaTextAttributeProvider;
import org.eclipse.jface.text.rules.ITokenScanner;
import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
@@ -68,6 +74,26 @@
/** The ProjectsHandler */
private ProjectsHandler projectsHandler;
+ private SchemaHandlerListener schemaHandlerListener = new SchemaHandlerAdapter()
+ {
+ public void attributeTypeRemoved( AttributeTypeImpl at )
+ {
+// closeOpenedEditor( at );
+ }
+
+
+ public void objectClassRemoved( ObjectClassImpl oc )
+ {
+// closeOpenedEditor( oc );
+ }
+
+
+ public void schemaRemoved( Schema schema )
+ {
+// closeOpenedEditor( schema );
+ }
+ };
+
/**
* Creates a new instance of Activator.
@@ -80,26 +106,11 @@
{
public void openProjectChanged( Project oldProject, Project newProject )
{
- // Listing all the editors from the Schema Editor Plugin.
- List<IEditorReference> editors = new ArrayList<IEditorReference>();
- for ( IEditorReference editorReference : getWorkbench().getActiveWorkbenchWindow().getActivePage()
- .getEditorReferences() )
- {
- if ( ( editorReference.getId().equals( AttributeTypeEditor.ID ) )
- || ( editorReference.getId().equals( ObjectClassEditor.ID ) )
- || ( editorReference.getId().equals( SchemaEditor.ID ) ) )
- {
- editors.add( editorReference );
- }
- }
-
- // Closing the opened editors
- if ( !getWorkbench().getActiveWorkbenchWindow().getActivePage().closeEditors(
- editors.toArray( new IEditorReference[0] ), true ) )
- {
- // If all the editors have not been closed, we force them to be closed.
- getWorkbench().getActiveWorkbenchWindow().getActivePage().closeEditors(
- editors.toArray( new IEditorReference[0] ), false );
+ closeProjectEditors();
+
+ if ( oldProject != null )
+ {
+ schemaHandler.removeListener( schemaHandlerListener );
}
if ( newProject == null )
@@ -112,6 +123,8 @@
// Registering the SchemaHandler and SchemaChecker
schemaHandler = newProject.getSchemaHandler();
schemaChecker = newProject.getSchemaChecker();
+
+ schemaHandler.addListener( schemaHandlerListener );
}
PluginUtils.saveProjects();
@@ -129,6 +142,152 @@
PluginUtils.saveProjects();
}
} );
+ }
+
+
+ /**
+ * Closes the project editors.
+ */
+ private void closeProjectEditors()
+ {
+ // Listing all the editors from the Schema Editor Plugin.
+ List<IEditorReference> editors = new ArrayList<IEditorReference>();
+ for ( IEditorReference editorReference : getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .getEditorReferences() )
+ {
+ if ( ( editorReference.getId().equals( AttributeTypeEditor.ID ) )
+ || ( editorReference.getId().equals( ObjectClassEditor.ID ) )
+ || ( editorReference.getId().equals( SchemaEditor.ID ) ) )
+ {
+ editors.add( editorReference );
+ }
+ }
+
+ // Closing the opened editors
+ if ( !getWorkbench().getActiveWorkbenchWindow().getActivePage().closeEditors(
+ editors.toArray( new IEditorReference[0] ), true ) )
+ {
+ // If all the editors have not been closed, we force them to be closed.
+ getWorkbench().getActiveWorkbenchWindow().getActivePage().closeEditors(
+ editors.toArray( new IEditorReference[0] ), false );
+ }
+ }
+
+
+ /**
+ * Close the editor associated with the given object if it is opened.
+ *
+ * @param o
+ * the object
+ */
+ private void closeOpenedEditor( Object o )
+ {
+ if ( o instanceof AttributeTypeImpl )
+ {
+ closeAttributeTypeEditor( ( AttributeTypeImpl ) o );
+ }
+ else if ( o instanceof ObjectClassImpl )
+ {
+ closeObjectClassEditor( ( ObjectClassImpl ) o );
+ }
+ else if ( o instanceof Schema )
+ {
+ Schema schema = ( Schema ) o;
+
+ // Closing the schema editor
+ closeObjectClassEditor( schema );
+
+ // Closing attribute type editors
+ for ( AttributeTypeImpl at : schema.getAttributeTypes() )
+ {
+ closeAttributeTypeEditor( at );
+ }
+
+ // Closing object class editors
+ for ( ObjectClassImpl oc : schema.getObjectClasses() )
+ {
+ closeObjectClassEditor( oc );
+ }
+ }
+ }
+
+
+ /**
+ * Closes the editor associated with the given attribute type.
+ *
+ * @param at
+ * the attribute type
+ */
+ private void closeAttributeTypeEditor( AttributeTypeImpl at )
+ {
+ IWorkbenchPage activePage = Activator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
+
+ for ( IEditorReference editorReference : activePage.getEditorReferences() )
+ {
+ String editorID = editorReference.getId();
+
+ if ( editorID.equals( AttributeTypeEditor.ID ) )
+ {
+ if ( at.equals( ( ( AttributeTypeEditor ) editorReference.getEditor( false ) )
+ .getOriginalAttributeType() ) )
+ {
+ activePage.closeEditors( new IEditorReference[]
+ { editorReference }, false );
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Closes the editor associate with the given object class.
+ *
+ * @param oc
+ * the object class
+ */
+ private void closeObjectClassEditor( ObjectClassImpl oc )
+ {
+ IWorkbenchPage activePage = Activator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
+
+ for ( IEditorReference editorReference : activePage.getEditorReferences() )
+ {
+ String editorID = editorReference.getId();
+
+ if ( editorID.equals( ObjectClassEditor.ID ) )
+ {
+ if ( oc.equals( ( ( ObjectClassEditor ) editorReference.getEditor( false ) ).getOriginalObjectClass() ) )
+ {
+ activePage.closeEditors( new IEditorReference[]
+ { editorReference }, false );
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Closes the editor associated with the given schema.
+ *
+ * @param schema
+ * the schema
+ */
+ private void closeObjectClassEditor( Schema schema )
+ {
+ IWorkbenchPage activePage = Activator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
+
+ for ( IEditorReference editorReference : activePage.getEditorReferences() )
+ {
+ String editorID = editorReference.getId();
+
+ if ( editorID.equals( SchemaEditor.ID ) )
+ {
+ if ( schema.equals( ( ( SchemaEditor ) editorReference.getEditor( false ) ).getSchema() ) )
+ {
+ activePage.closeEditors( new IEditorReference[]
+ { editorReference }, false );
+ }
+ }
+ }
}
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=560890&r1=560889&r2=560890
==============================================================================
--- 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 01:45:46 2007
@@ -857,7 +857,7 @@
*/
private void notifySchemaAdded( Schema schema )
{
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.schemaAdded( schema );
}
@@ -872,7 +872,7 @@
*/
private void notifySchemaRemoved( Schema schema )
{
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.schemaRemoved( schema );
}
@@ -888,7 +888,7 @@
private void notifyAttributeTypeAdded( AttributeTypeImpl at )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.attributeTypeAdded( at );
}
@@ -897,7 +897,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( at.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).attributeTypeAdded( at );
}
@@ -914,7 +914,7 @@
private void notifyAttributeTypeModified( AttributeTypeImpl at )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.attributeTypeModified( at );
}
@@ -923,7 +923,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( at.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).attributeTypeModified( at );
}
@@ -940,7 +940,7 @@
private void notifyAttributeTypeRemoved( AttributeTypeImpl at )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.attributeTypeRemoved( at );
}
@@ -949,11 +949,21 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( at.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).attributeTypeRemoved( at );
}
}
+
+ // Attribute Type Listeners
+ List<?> atListeners = ( List<?> ) attributeTypeListeners.get( at );
+ if ( atListeners != null )
+ {
+ for ( Object object : atListeners.toArray() )
+ {
+ ( ( AttributeTypeListener ) object ).attributeTypeRemoved();
+ }
+ }
}
@@ -966,7 +976,7 @@
private void notifyObjectClassAdded( ObjectClassImpl oc )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.objectClassAdded( oc );
}
@@ -975,7 +985,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( oc.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).objectClassAdded( oc );
}
@@ -992,7 +1002,7 @@
private void notifyObjectClassModified( ObjectClassImpl oc )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.objectClassModified( oc );
}
@@ -1001,7 +1011,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( oc.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).objectClassModified( oc );
}
@@ -1018,7 +1028,7 @@
private void notifyObjectClassRemoved( ObjectClassImpl oc )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.objectClassRemoved( oc );
}
@@ -1027,7 +1037,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( oc.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).objectClassModified( oc );
}
@@ -1044,7 +1054,7 @@
private void notifyMatchingRuleAdded( MatchingRuleImpl mr )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.matchingRuleAdded( mr );
}
@@ -1053,7 +1063,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( mr.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).matchingRuleAdded( mr );
}
@@ -1070,7 +1080,7 @@
private void notifyMatchingRuleModified( MatchingRuleImpl mr )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.matchingRuleModified( mr );
}
@@ -1079,7 +1089,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( mr.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).matchingRuleModified( mr );
}
@@ -1096,7 +1106,7 @@
private void notifyMatchingRuleRemoved( MatchingRuleImpl mr )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.matchingRuleRemoved( mr );
}
@@ -1105,7 +1115,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( mr.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).matchingRuleRemoved( mr );
}
@@ -1122,7 +1132,7 @@
private void notifySyntaxRuleAdded( SyntaxImpl syntax )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.syntaxAdded( syntax );
}
@@ -1131,7 +1141,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( syntax.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).syntaxAdded( syntax );
}
@@ -1148,7 +1158,7 @@
private void notifySyntaxRuleModified( SyntaxImpl syntax )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.syntaxModified( syntax );
}
@@ -1157,7 +1167,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( syntax.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).syntaxModified( syntax );
}
@@ -1174,7 +1184,7 @@
private void notifySyntaxRemoved( SyntaxImpl syntax )
{
// SchemaHandler Listeners
- for ( SchemaHandlerListener listener : schemaHandlerListeners )
+ for ( SchemaHandlerListener listener : schemaHandlerListeners.toArray( new SchemaHandlerListener[0] ) )
{
listener.syntaxRemoved( syntax );
}
@@ -1183,7 +1193,7 @@
List<?> listeners = ( List<?> ) schemaListeners.get( getSchema( syntax.getSchema() ) );
if ( listeners != null )
{
- for ( Object object : listeners )
+ for ( Object object : listeners.toArray() )
{
( ( SchemaListener ) object ).syntaxRemoved( syntax );
}
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=560890&r1=560889&r2=560890
==============================================================================
--- 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 01:45:46 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.AttributeTypeAdapter;
+import org.apache.directory.studio.apacheds.schemaeditor.controller.AttributeTypeListener;
+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.AttributeTypeImpl;
+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;
@@ -50,24 +56,23 @@
/** The ID of the Editor */
public static final String ID = Activator.PLUGIN_ID + ".view.attributeTypeEditor"; //$NON-NLS-1$
- /** The Overview page */
- private AttributeTypeEditorOverviewPage overview;
+ /** The dirty state flag */
+ private boolean dirty = false;
- /** The Source Code page */
+ // The pages
+ private AttributeTypeEditorOverviewPage overview;
private AttributeTypeEditorSourceCodePage sourceCode;
-
- /** The Used By page */
private AttributeTypeEditorUsedByPage usedBy;
- /** The dirty state flag */
- private boolean dirty = false;
-
/** The original attribute type */
private AttributeTypeImpl originalAttributeType;
/** The attribute type used to save modifications */
private AttributeTypeImpl modifiedAttributeType;
+ /** The originalSchema */
+ private Schema originalSchema;
+
/** The listener for page changed */
private IPageChangedListener pageChangedListener = new IPageChangedListener()
{
@@ -95,21 +100,64 @@
}
};
+ /** The editor */
+ private AttributeTypeEditor instance;
+
+ /** The attribute type listener */
+ private AttributeTypeListener attributeTypeListener = new AttributeTypeAdapter()
+ {
+ public void attributeTypeRemoved()
+ {
+ getEditorSite().getPage().closeEditor( instance, false );
+ }
+ };
+
+ /** The originalSchema listener */
+ private SchemaHandlerListener schemaHandlerListener = new SchemaHandlerAdapter()
+ {
+ public void schemaRemoved( Schema schema )
+ {
+ if ( schema.equals( originalSchema ) )
+ {
+ getEditorSite().getPage().closeEditor( instance, false );
+ }
+ }
+ };
+
/* (non-Javadoc)
* @see org.eclipse.ui.forms.editor.FormEditor#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
*/
public void init( IEditorSite site, IEditorInput input ) throws PartInitException
{
+ instance = this;
+
setSite( site );
setInput( input );
setPartName( input.getName() );
originalAttributeType = ( ( AttributeTypeEditorInput ) getEditorInput() ).getAttributeType();
-
modifiedAttributeType = ( AttributeTypeImpl ) PluginUtils.getClone( originalAttributeType );
+ SchemaHandler schemaHandler = Activator.getDefault().getSchemaHandler();
+ originalSchema = schemaHandler.getSchema( originalAttributeType.getSchema() );
+ schemaHandler.addListener( originalAttributeType, attributeTypeListener );
+ 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( originalAttributeType, attributeTypeListener );
+ schemaHandler.removeListener( schemaHandlerListener );
+
+ super.dispose();
}
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=560890&r1=560889&r2=560890
==============================================================================
--- 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 01:45:46 2007
@@ -87,6 +87,8 @@
/** The modified object class */
private AttributeTypeImpl modifiedAttributeType;
+ private Schema originalSchema;
+
/** The SchemaHandler */
private SchemaHandler schemaHandler;
@@ -116,7 +118,10 @@
*/
public void attributeTypeRemoved( AttributeTypeImpl at )
{
- refreshUI();
+ if ( !at.equals( originalAttributeType ) )
+ {
+ refreshUI();
+ }
}
@@ -188,7 +193,10 @@
*/
public void schemaRemoved( Schema schema )
{
- refreshUI();
+ if ( !schema.equals( originalSchema ) )
+ {
+ refreshUI();
+ }
}
@@ -638,6 +646,7 @@
// Getting the original and modified attribute types
modifiedAttributeType = ( ( AttributeTypeEditor ) getEditor() ).getModifiedAttributeType();
originalAttributeType = ( ( AttributeTypeEditor ) getEditor() ).getOriginalAttributeType();
+ originalSchema = schemaHandler.getSchema( originalAttributeType.getSchema() );
// Creating the base UI
ScrolledForm form = managedForm.getForm();
@@ -1170,7 +1179,6 @@
public void dispose()
{
schemaHandler.removeListener( schemaHandlerListener );
- removeListeners();
super.dispose();
}
}