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 19:42:10 UTC

svn commit: r558811 - /directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/ProblemsViewController.java

Author: pamarcelot
Date: Mon Jul 23 10:42:09 2007
New Revision: 558811

URL: http://svn.apache.org/viewvc?view=rev&rev=558811
Log:
Added ProjectHandlerListener to the ProblemsViewController.

Modified:
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/ProblemsViewController.java

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/ProblemsViewController.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/ProblemsViewController.java?view=diff&rev=558811&r1=558810&r2=558811
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/ProblemsViewController.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/ProblemsViewController.java Mon Jul 23 10:42:09 2007
@@ -24,6 +24,7 @@
 import org.apache.directory.studio.apacheds.schemaeditor.Activator;
 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.schemachecker.SchemaChecker;
 import org.apache.directory.studio.apacheds.schemaeditor.model.schemachecker.SchemaCheckerListener;
 import org.apache.directory.studio.apacheds.schemaeditor.view.editors.attributetype.AttributeTypeEditor;
@@ -56,6 +57,21 @@
     /** The associated view */
     private ProblemsView view;
 
+    /** The SchemaCheckerListener */
+    private SchemaCheckerListener schemaCheckerListener = new SchemaCheckerListener()
+    {
+        public void schemaCheckerUpdated()
+        {
+            Display.getDefault().asyncExec( new Runnable()
+            {
+                public void run()
+                {
+                    view.reloadViewer();
+                }
+            } );
+        }
+    };
+
 
     // The Actions
 
@@ -71,6 +87,7 @@
 
         initActions();
         initToolbar();
+        initProjectsHandlerListener();
         initDoubleClickListener();
         initSchemaCheckerListener();
     }
@@ -90,6 +107,66 @@
     private void initToolbar()
     {
         //        IToolBarManager toolbar = view.getViewSite().getActionBars().getToolBarManager();
+    }
+
+
+    /**
+     * Initializes the ProjectsHandlerListener.
+     */
+    private void initProjectsHandlerListener()
+    {
+        Activator.getDefault().getProjectsHandler().addListener( new ProjectsHandlerAdapter()
+        {
+            public void openProjectChanged( Project oldProject, Project newProject )
+            {
+                if ( oldProject != null )
+                {
+                    removeSchemaCheckerListener( oldProject );
+                }
+
+                if ( newProject != null )
+                {
+                    addSchemaCheckerListener( newProject );
+                    view.reloadViewer();
+                }
+                else
+                {
+                    view.getViewer().setInput( null );
+                }
+            }
+        } );
+    }
+
+
+    /**
+     * Adds the SchemaCheckerListener.
+     *
+     * @param project
+     *      the project
+     */
+    private void addSchemaCheckerListener( Project project )
+    {
+        SchemaChecker schemaChecker = project.getSchemaChecker();
+        if ( schemaChecker != null )
+        {
+            schemaChecker.addListener( schemaCheckerListener );
+        }
+    }
+
+
+    /**
+     * Removes the SchemaCheckerListener.
+     *
+     * @param project
+     *      the project
+     */
+    private void removeSchemaCheckerListener( Project project )
+    {
+        SchemaChecker schemaChecker = project.getSchemaChecker();
+        if ( schemaChecker != null )
+        {
+            schemaChecker.removeListener( schemaCheckerListener );
+        }
     }