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 18:07:18 UTC

svn commit: r558786 - /directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java

Author: pamarcelot
Date: Mon Jul 23 09:07:17 2007
New Revision: 558786

URL: http://svn.apache.org/viewvc?view=rev&rev=558786
Log:
Added code to close opened editors when closing a project or switching between two projects.

Modified:
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.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=558786&r1=558785&r2=558786
==============================================================================
--- 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 23 09:07:17 2007
@@ -20,16 +20,27 @@
 package org.apache.directory.studio.apacheds.schemaeditor;
 
 
+import java.util.ArrayList;
+import java.util.List;
+
 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.model.Project;
 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;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.schema.SchemaEditor;
 import org.apache.directory.studio.apacheds.schemaeditor.view.views.ProblemsView;
 import org.apache.directory.studio.apacheds.schemaeditor.view.views.SchemaView;
 import org.apache.directory.studio.apacheds.schemaeditor.view.widget.SchemaCodeScanner;
 import org.apache.directory.studio.apacheds.schemaeditor.view.widget.SchemaTextAttributeProvider;
+import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.AttributeTypeWrapper;
+import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.ObjectClassWrapper;
+import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.SchemaWrapper;
 import org.eclipse.jface.text.rules.ITokenScanner;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.internal.EditorReference;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 
@@ -81,6 +92,28 @@
         {
             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 );
+                }
+
                 if ( newProject == null )
                 {
                     schemaHandler = null;
@@ -94,11 +127,11 @@
                     schemaChecker.enableModificationsListening();
 
                     // Reloading views
-//                    schemaView = ( SchemaView ) getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(
-//                        SchemaView.ID );
+                    //                    schemaView = ( SchemaView ) getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(
+                    //                        SchemaView.ID );
                     problemsView = ( ProblemsView ) getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(
                         ProblemsView.ID );
-//                    schemaView.reloadViewer();
+                    //                    schemaView.reloadViewer();
                     problemsView.reloadViewer();
                 }
             }