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/08/01 18:10:44 UTC

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

Author: pamarcelot
Date: Wed Aug  1 09:10:40 2007
New Revision: 561852

URL: http://svn.apache.org/viewvc?view=rev&rev=561852
Log:
Fixed the state of the Hierarchy View when opened while a project is already opened.
Update the OpenTypeHierarchyAction to open the HierarchyView if it's not already opened.
Fixed the state of the SchemaView when opened for the first time.
Added a link to open the Hierarchy View in the Perspective.

Modified:
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/HierarchyViewController.java
    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/OpenTypeHierarchyAction.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/Perspective.java
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/HierarchyView.java

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/HierarchyViewController.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/HierarchyViewController.java?view=diff&rev=561852&r1=561851&r2=561852
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/HierarchyViewController.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/HierarchyViewController.java Wed Aug  1 09:10:40 2007
@@ -67,6 +67,84 @@
     /** The authorized Preferences keys*/
     List<String> authorizedPrefs;
 
+    /** The ProjectsHandlerListener */
+    private ProjectsHandlerListener projectsHandlerListener = new ProjectsHandlerAdapter()
+    {
+        public void openProjectChanged( Project oldProject, Project newProject )
+        {
+            if ( newProject != null )
+            {
+                view.getViewer().getTree().setEnabled( true );
+                showSupertypeHierarchy.setEnabled( true );
+                showSubtypeHierarchy.setEnabled( true );
+                linkWithEditor.setEnabled( true );
+                openPreferencePage.setEnabled( true );
+            }
+            else
+            {
+                view.setInput( null );
+                view.getViewer().getTree().setEnabled( false );
+                showSupertypeHierarchy.setEnabled( false );
+                showSubtypeHierarchy.setEnabled( false );
+                linkWithEditor.setEnabled( false );
+                openPreferencePage.setEnabled( false );
+            }
+        }
+    };
+
+    /** The IDoubleClickListener */
+    private IDoubleClickListener doubleClickListener = new IDoubleClickListener()
+    {
+        public void doubleClick( DoubleClickEvent event )
+        {
+            // What we get from the treeViewer is a StructuredSelection
+            StructuredSelection selection = ( StructuredSelection ) event.getSelection();
+
+            // Here's the real object (an AttributeTypeWrapper, ObjectClassWrapper or IntermediateNode)
+            Object objectSelection = selection.getFirstElement();
+            IEditorInput input = null;
+            String editorId = null;
+
+            // Selecting the right editor and input
+            if ( objectSelection instanceof AttributeTypeWrapper )
+            {
+                input = new AttributeTypeEditorInput( ( ( AttributeTypeWrapper ) objectSelection ).getAttributeType() );
+                editorId = AttributeTypeEditor.ID;
+            }
+            else if ( objectSelection instanceof ObjectClassWrapper )
+            {
+                input = new ObjectClassEditorInput( ( ( ObjectClassWrapper ) objectSelection ).getObjectClass() );
+                editorId = ObjectClassEditor.ID;
+            }
+
+            // Let's open the editor
+            if ( input != null )
+            {
+                IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+                try
+                {
+                    page.openEditor( input, editorId );
+                }
+                catch ( PartInitException e )
+                {
+                    // TODO ADD A LOGGER
+                }
+            }
+        }
+    };
+
+    /** The IPropertyChangeListener */
+    private IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener()
+    {
+        public void propertyChange( PropertyChangeEvent event )
+        {
+            if ( authorizedPrefs.contains( event.getProperty() ) )
+            {
+                view.refresh();
+            }
+        }
+    };
+
     // The Actions
     private Action showSupertypeHierarchy;
     private Action showSubtypeHierarchy;
@@ -91,6 +169,7 @@
         initProjectsHandlerListener();
         initDoubleClickListener();
         initPreferencesListener();
+        initState();
     }
 
 
@@ -161,29 +240,7 @@
      */
     private void initProjectsHandlerListener()
     {
-        Activator.getDefault().getProjectsHandler().addListener( new ProjectsHandlerAdapter()
-        {
-            public void openProjectChanged( Project oldProject, Project newProject )
-            {
-                if ( newProject != null )
-                {
-                    view.getViewer().getTree().setEnabled( true );
-                    showSupertypeHierarchy.setEnabled( true );
-                    showSubtypeHierarchy.setEnabled( true );
-                    linkWithEditor.setEnabled( true );
-                    openPreferencePage.setEnabled( true );
-                }
-                else
-                {
-                    view.setInput( null );
-                    view.getViewer().getTree().setEnabled( false );
-                    showSupertypeHierarchy.setEnabled( false );
-                    showSubtypeHierarchy.setEnabled( false );
-                    linkWithEditor.setEnabled( false );
-                    openPreferencePage.setEnabled( false );
-                }
-            }
-        } );
+        Activator.getDefault().getProjectsHandler().addListener( projectsHandlerListener );
     }
 
 
@@ -192,46 +249,7 @@
      */
     private void initDoubleClickListener()
     {
-        view.getViewer().addDoubleClickListener( new IDoubleClickListener()
-        {
-            public void doubleClick( DoubleClickEvent event )
-            {
-                // What we get from the treeViewer is a StructuredSelection
-                StructuredSelection selection = ( StructuredSelection ) event.getSelection();
-
-                // Here's the real object (an AttributeTypeWrapper, ObjectClassWrapper or IntermediateNode)
-                Object objectSelection = selection.getFirstElement();
-                IEditorInput input = null;
-                String editorId = null;
-
-                // Selecting the right editor and input
-                if ( objectSelection instanceof AttributeTypeWrapper )
-                {
-                    input = new AttributeTypeEditorInput( ( ( AttributeTypeWrapper ) objectSelection )
-                        .getAttributeType() );
-                    editorId = AttributeTypeEditor.ID;
-                }
-                else if ( objectSelection instanceof ObjectClassWrapper )
-                {
-                    input = new ObjectClassEditorInput( ( ( ObjectClassWrapper ) objectSelection ).getObjectClass() );
-                    editorId = ObjectClassEditor.ID;
-                }
-
-                // Let's open the editor
-                if ( input != null )
-                {
-                    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-                    try
-                    {
-                        page.openEditor( input, editorId );
-                    }
-                    catch ( PartInitException e )
-                    {
-                        // TODO ADD A LOGGER
-                    }
-                }
-            }
-        } );
+        view.getViewer().addDoubleClickListener( doubleClickListener );
     }
 
 
@@ -240,18 +258,41 @@
      */
     private void initPreferencesListener()
     {
-        Activator.getDefault().getPreferenceStore().addPropertyChangeListener( new IPropertyChangeListener()
+        Activator.getDefault().getPreferenceStore().addPropertyChangeListener( propertyChangeListener );
+    }
+
+
+    /**
+     * Initializes the state of the View.
+     */
+    private void initState()
+    {
+        if ( Activator.getDefault().getProjectsHandler().getOpenProject() != null )
         {
-            /* (non-Javadoc)
-             * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-             */
-            public void propertyChange( PropertyChangeEvent event )
-            {
-                if ( authorizedPrefs.contains( event.getProperty() ) )
-                {
-                    view.refresh();
-                }
-            }
-        } );
+            view.getViewer().getTree().setEnabled( true );
+            showSupertypeHierarchy.setEnabled( true );
+            showSubtypeHierarchy.setEnabled( true );
+            linkWithEditor.setEnabled( true );
+            openPreferencePage.setEnabled( true );
+        }
+        else
+        {
+            view.getViewer().getTree().setEnabled( false );
+            showSupertypeHierarchy.setEnabled( false );
+            showSubtypeHierarchy.setEnabled( false );
+            linkWithEditor.setEnabled( false );
+            openPreferencePage.setEnabled( false );
+        }
+    }
+
+
+    /**
+     * This method is called when the view is disposed.
+     */
+    public void dispose()
+    {
+        Activator.getDefault().getProjectsHandler().removeListener( projectsHandlerListener );
+        view.getViewer().removeDoubleClickListener( doubleClickListener );
+        Activator.getDefault().getPreferenceStore().removePropertyChangeListener( propertyChangeListener );
     }
 }

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=561852&r1=561851&r2=561852
==============================================================================
--- 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 Wed Aug  1 09:10:40 2007
@@ -378,6 +378,7 @@
         initDoubleClickListener();
         initAuthorizedPrefs();
         initPreferencesListener();
+        initState();
     }
 
 
@@ -810,6 +811,40 @@
         {
             viewer.update( parent, null );
             parent = parent.getParent();
+        }
+    }
+
+
+    /**
+     * Initializes the state of the View.
+     */
+    private void initState()
+    {
+        Project project = Activator.getDefault().getProjectsHandler().getOpenProject();
+        if ( project != null )
+        {
+            viewer.getTree().setEnabled( true );
+            newSchema.setEnabled( true );
+            newAttributeType.setEnabled( true );
+            newObjectClass.setEnabled( true );
+            collapseAll.setEnabled( true );
+            linkWithEditor.setEnabled( true );
+            openSchemaViewSortingDialog.setEnabled( true );
+            openSchemaViewPreference.setEnabled( true );
+
+            addSchemaHandlerListener( project );
+            view.reloadViewer();
+        }
+        else
+        {
+            viewer.getTree().setEnabled( false );
+            newSchema.setEnabled( false );
+            newAttributeType.setEnabled( false );
+            newObjectClass.setEnabled( false );
+            collapseAll.setEnabled( false );
+            linkWithEditor.setEnabled( false );
+            openSchemaViewSortingDialog.setEnabled( false );
+            openSchemaViewPreference.setEnabled( false );
         }
     }
 }

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/OpenTypeHierarchyAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/OpenTypeHierarchyAction.java?view=diff&rev=561852&r1=561851&r2=561852
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/OpenTypeHierarchyAction.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/actions/OpenTypeHierarchyAction.java Wed Aug  1 09:10:40 2007
@@ -38,6 +38,7 @@
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
 
 
@@ -153,8 +154,24 @@
         HierarchyView view = ( HierarchyView ) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
             .findView( HierarchyView.ID );
 
-        view.setInput( element );
-        PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().bringToTop( view );
+        if ( view == null )
+        {
+            try
+            {
+                view = ( HierarchyView ) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(
+                    HierarchyView.ID );
+            }
+            catch ( PartInitException e )
+            {
+                // TODO Add a logger
+            }
+        }
+
+        if ( view != null )
+        {
+            view.setInput( element );
+            PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().bringToTop( view );
+        }
     }
 
 

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/Perspective.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/Perspective.java?view=diff&rev=561852&r1=561851&r2=561852
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/Perspective.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/Perspective.java Wed Aug  1 09:10:40 2007
@@ -82,6 +82,7 @@
         layout.addShowViewShortcut( SchemaView.ID );
         layout.addShowViewShortcut( ProjectsView.ID );
         layout.addShowViewShortcut( ProblemsView.ID );
+        layout.addShowViewShortcut( HierarchyView.ID );
 
         // Adding New Wizard shortcuts
         layout.addNewWizardShortcut( NewProjectWizard.ID );

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/HierarchyView.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/HierarchyView.java?view=diff&rev=561852&r1=561851&r2=561852
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/HierarchyView.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/HierarchyView.java Wed Aug  1 09:10:40 2007
@@ -43,8 +43,8 @@
     /** The tree viewer */
     private TreeViewer viewer;
 
-    /** The content provider */
-    private HierarchyViewContentProvider contentProvider;
+    /** The controller */
+    private HierarchyViewController controller;
 
 
     /* (non-Javadoc)
@@ -54,7 +54,7 @@
     {
         initViewer( parent );
 
-        new HierarchyViewController( this );
+        controller = new HierarchyViewController( this );
     }
 
 
@@ -67,8 +67,7 @@
     private void initViewer( Composite parent )
     {
         viewer = new TreeViewer( parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER );
-        contentProvider = new HierarchyViewContentProvider();
-        viewer.setContentProvider( contentProvider );
+        viewer.setContentProvider( new HierarchyViewContentProvider() );
         viewer.setLabelProvider( new DecoratingLabelProvider( new HierarchyViewLabelProvider(), Activator.getDefault()
             .getWorkbench().getDecoratorManager().getLabelDecorator() ) );
         viewer.getTree().setEnabled( false );
@@ -110,5 +109,16 @@
     {
         viewer.setInput( input );
         viewer.expandAll();
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.part.WorkbenchPart#dispose()
+     */
+    public void dispose()
+    {
+        controller.dispose();
+        
+        super.dispose();
     }
 }