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/01/29 16:46:00 UTC
svn commit: r501083 - in
/directory/ldapstudio/trunk/ldapstudio-schemas-plugin: ./
src/main/java/org/apache/directory/ldapstudio/schemas/controller/
src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/
src/main/java/org/apache/dire...
Author: pamarcelot
Date: Mon Jan 29 07:45:59 2007
New Revision: 501083
URL: http://svn.apache.org/viewvc?view=rev&rev=501083
Log:
Fixed DIRSTUDIO-35 (Disable action icons of the Schemas view when actions are not available)
Modified:
directory/ldapstudio/trunk/ldapstudio-schemas-plugin/plugin.xml
directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/PoolManagerController.java
directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewAttributeTypeAction.java
directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewObjectClassAction.java
directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewSchemaAction.java
directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/DeleteAction.java
directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/OpenLocalFileAction.java
directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/RemoveSchemaAction.java
directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/viewers/PoolManager.java
Modified: directory/ldapstudio/trunk/ldapstudio-schemas-plugin/plugin.xml
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-schemas-plugin/plugin.xml?view=diff&rev=501083&r1=501082&r2=501083
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-schemas-plugin/plugin.xml (original)
+++ directory/ldapstudio/trunk/ldapstudio-schemas-plugin/plugin.xml Mon Jan 29 07:45:59 2007
@@ -199,88 +199,4 @@
point="org.eclipse.core.runtime.preferences">
<initializer class="org.apache.directory.ldapstudio.schemas.controller.PreferenceInitializer"/>
</extension>
- <extension
- point="org.eclipse.ui.actionSets">
- <actionSet
- id="org.apache.directory.ldapstudio.schemas.actionSet"
- label="%ldapstudio-schemas-plugin.actionsets.actionset.label"
- visible="false">
- <menu
- id="org.apache.directory.ldapstudio.schemas.schemas.menu"
- label="%ldapstudio-schemas-plugin.actionsets.menu.schemas.label">
- </menu>
- <action
- class="org.apache.directory.ldapstudio.schemas.controller.actions.RemoveSchemaAction"
- icon="ressources/icons/schema_remove.png"
- id="org.apache.directory.ldapstudio.schemas.actions.removeschema"
- label="%ldapstudio-schemas-plugin.actionsets.action.removeselectedschema.label"
- menubarPath="org.apache.directory.ldapstudio.schemas.schemas.menu/ManagePoolGroup"
- toolbarPath="org.apache.directory.ldapstudio.schemas.schemas.toolbar"
- tooltip="%ldapstudio-schemas-plugin.actionsets.action.removeselectedschema.tooltip"/>
- <action
- class="org.apache.directory.ldapstudio.schemas.controller.actions.CreateANewSchemaAction"
- icon="ressources/icons/schema_new.png"
- id="org.apache.directory.ldapstudio.schemas.actions.createanewschema"
- label="%ldapstudio-schemas-plugin.actionsets.action.createanewschema.label"
- menubarPath="org.apache.directory.ldapstudio.schemas.schemas.menu/ManagePoolGroup"
- toolbarPath="org.apache.directory.ldapstudio.schemas.schemas.toolbar"
- tooltip="%ldapstudio-schemas-plugin.actionsets.action.createanewschema.tooltip"/>
- <action
- class="org.apache.directory.ldapstudio.schemas.controller.actions.OpenLocalFileAction"
- icon="ressources/icons/open.png"
- id="org.apache.directory.ldapstudio.schemas.actions.SampleAction"
- label="%ldapstudio-schemas-plugin.actionsets.action.openaschemafile.label"
- menubarPath="org.apache.directory.ldapstudio.schemas.schemas.menu/ManagePoolGroup"
- toolbarPath="org.apache.directory.ldapstudio.schemas.schemas.toolbar"
- tooltip="%ldapstudio-schemas-plugin.actionsets.action.openaschemafile.tooltip"/>
- <action
- class="org.apache.directory.ldapstudio.schemas.controller.actions.SaveAllAction"
- icon="ressources/icons/save_all.png"
- id="org.apache.directory.ldapstudio.schemas.actions.SampleAction"
- label="%ldapstudio-schemas-plugin.actionsets.action.saveallschemas.label"
- menubarPath="org.apache.directory.ldapstudio.schemas.schemas.menu/ManageSaveGroup"
- toolbarPath="org.apache.directory.ldapstudio.schemas.schemas.toolbar"
- tooltip="Saves all the schemas"/>
- <action
- class="org.apache.directory.ldapstudio.schemas.controller.actions.SaveAsAction"
- icon="ressources/icons/save_as.png"
- id="org.apache.directory.ldapstudio.schemas.actions.SampleAction"
- label="%ldapstudio-schemas-plugin.actionsets.action.saveschemaas.label"
- menubarPath="org.apache.directory.ldapstudio.schemas.schemas.menu/ManageSaveGroup"
- toolbarPath="org.apache.directory.ldapstudio.schemas.schemas.toolbar"
- tooltip="%ldapstudio-schemas-plugin.actionsets.action.saveschemaas.tooltip"/>
- <action
- class="org.apache.directory.ldapstudio.schemas.controller.actions.SaveAction"
- icon="ressources/icons/save.gif"
- id="org.apache.directory.ldapstudio.schemas.actions.SampleAction"
- label="%ldapstudio-schemas-plugin.actionsets.action.saveschema.label"
- menubarPath="org.apache.directory.ldapstudio.schemas.schemas.menu/ManageSaveGroup"
- toolbarPath="org.apache.directory.ldapstudio.schemas.schemas.toolbar"
- tooltip="%ldapstudio-schemas-plugin.actionsets.action.saveschema.tooltip"/>
- <action
- class="org.apache.directory.ldapstudio.schemas.controller.actions.DeleteAction"
- icon="ressources/icons/delete.gif"
- id="org.apache.directory.ldapstudio.schemas.actions.SampleAction"
- label="%ldapstudio-schemas-plugin.actionsets.action.deleteselecteditem.label"
- menubarPath="org.apache.directory.ldapstudio.schemas.schemas.menu/ManageSchemaGroup"
- toolbarPath="org.apache.directory.ldapstudio.schemas.schemas.toolbar"
- tooltip="%ldapstudio-schemas-plugin.actionsets.action.deleteselecteditem.tooltip"/>
- <action
- class="org.apache.directory.ldapstudio.schemas.controller.actions.CreateANewAttributeTypeAction"
- icon="ressources/icons/attribute_type_new.gif"
- id="org.apache.directory.ldapstudio.schemas.actions.SampleAction"
- label="%ldapstudio-schemas-plugin.actionsets.action.createanewattributetype.label"
- menubarPath="org.apache.directory.ldapstudio.schemas.schemas.menu/ManageSchemaGroup"
- toolbarPath="org.apache.directory.ldapstudio.schemas.schemas.toolbar"
- tooltip="%ldapstudio-schemas-plugin.actionsets.action.createanewattributetype.tooltip"/>
- <action
- class="org.apache.directory.ldapstudio.schemas.controller.actions.CreateANewObjectClassAction"
- icon="ressources/icons/object_class_new.gif"
- id="org.apache.directory.ldapstudio.schemas.actions.SampleAction"
- label="%ldapstudio-schemas-plugin.actionsets.action.createanewobjectclass.label"
- menubarPath="org.apache.directory.ldapstudio.schemas.schemas.menu/ManageSchemaGroup"
- toolbarPath="org.apache.directory.ldapstudio.schemas.schemas.toolbar"
- tooltip="%ldapstudio-schemas-plugin.actionsets.action.createanewobjectclass.tooltip"/>
- </actionSet>
- </extension>
</plugin>
Modified: directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/PoolManagerController.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/PoolManagerController.java?view=diff&rev=501083&r1=501082&r2=501083
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/PoolManagerController.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/PoolManagerController.java Mon Jan 29 07:45:59 2007
@@ -21,14 +21,18 @@
package org.apache.directory.ldapstudio.schemas.controller;
+import org.apache.directory.ldapstudio.schemas.controller.actions.CollapseAllAction;
import org.apache.directory.ldapstudio.schemas.controller.actions.CreateANewAttributeTypeAction;
import org.apache.directory.ldapstudio.schemas.controller.actions.CreateANewObjectClassAction;
import org.apache.directory.ldapstudio.schemas.controller.actions.CreateANewSchemaAction;
import org.apache.directory.ldapstudio.schemas.controller.actions.DeleteAction;
+import org.apache.directory.ldapstudio.schemas.controller.actions.LinkWithEditorSchemasView;
+import org.apache.directory.ldapstudio.schemas.controller.actions.OpenLocalFileAction;
import org.apache.directory.ldapstudio.schemas.controller.actions.OpenSchemaSourceCode;
import org.apache.directory.ldapstudio.schemas.controller.actions.RemoveSchemaAction;
import org.apache.directory.ldapstudio.schemas.controller.actions.SaveAction;
import org.apache.directory.ldapstudio.schemas.controller.actions.SaveAsAction;
+import org.apache.directory.ldapstudio.schemas.controller.actions.SortPoolManagerAction;
import org.apache.directory.ldapstudio.schemas.model.Schema;
import org.apache.directory.ldapstudio.schemas.model.SchemaCreationException;
import org.apache.directory.ldapstudio.schemas.model.SchemaPool;
@@ -37,250 +41,499 @@
import org.apache.directory.ldapstudio.schemas.view.editors.AttributeTypeFormEditorInput;
import org.apache.directory.ldapstudio.schemas.view.editors.ObjectClassFormEditor;
import org.apache.directory.ldapstudio.schemas.view.editors.ObjectClassFormEditorInput;
+import org.apache.directory.ldapstudio.schemas.view.viewers.Messages;
import org.apache.directory.ldapstudio.schemas.view.viewers.PoolManager;
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.AttributeTypeWrapper;
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.IntermediateNode;
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.ObjectClassWrapper;
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.SchemaWrapper;
+import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.IntermediateNode.IntermediateNodeType;
import org.apache.log4j.Logger;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.DropTargetListener;
import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
-public class PoolManagerController implements IMenuListener, IDoubleClickListener, DropTargetListener
+/**
+ * This class implements the Controller for the Schemas View
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class PoolManagerController
{
+ /** The logger */
private static Logger logger = Logger.getLogger( PoolManagerController.class );
- private static final PoolManagerController instance_;
+
+ /** The associated view */
+ private PoolManager view;
+
+ /** The Drag'n'Drop FileTransfer Object */
private final static FileTransfer fileTransfer = FileTransfer.getInstance();
- //Static thread-safe singleton initializer
- static
+ /** The Context Menu */
+ private MenuManager contextMenu;
+
+ // The Actions
+ private Action openLocalFile;
+ private Action createANewSchema;
+ private Action removeSchema;
+ private Action createANewObjectClass;
+ private Action createANewAttributeType;
+ private Action deleteAction;
+ private Action sortAlphabetical;
+ private Action sortUnAlphabetical;
+ private Action collapseAll;
+ private Action linkWithEditor;
+ private Action openSchemaSourceCode;
+ private Action save;
+ private Action saveAs;
+
+
+ /**
+ * Creates a new instance of PoolManagerController.
+ *
+ * @param view
+ * the associated view
+ */
+ public PoolManagerController( PoolManager view )
{
- try
- {
- instance_ = new PoolManagerController();
- }
- catch ( Throwable e )
- {
- throw new RuntimeException( e.getMessage() );
- }
+ this.view = view;
+
+ initActions();
+ initToolbar();
+ initContextMenu();
+ initDragAndDrop();
+ initDoubleClickListener();
+ registerUpdateActions();
}
/**
- * Use this method to get the singleton instance of the controller
- * @return
+ * Initializes the Actions.
*/
- public static PoolManagerController getInstance()
+ private void initActions()
{
- return instance_;
+ openLocalFile = new OpenLocalFileAction();
+ createANewSchema = new CreateANewSchemaAction();
+ removeSchema = new RemoveSchemaAction();
+ createANewObjectClass = new CreateANewObjectClassAction();
+ createANewAttributeType = new CreateANewAttributeTypeAction();
+ deleteAction = new DeleteAction();
+ sortAlphabetical = new SortPoolManagerAction( PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
+ SortPoolManagerAction.SortType.alphabetical, Messages.getString( "PoolManager.Sort_alphabetically" ) ); //$NON-NLS-1$
+ sortUnAlphabetical = new SortPoolManagerAction( PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
+ SortPoolManagerAction.SortType.unalphabetical, Messages.getString( "PoolManager.Sort_unalphabetically" ) ); //$NON-NLS-1$
+ collapseAll = new CollapseAllAction( view.getViewer() );
+ linkWithEditor = new LinkWithEditorSchemasView( view );
+ openSchemaSourceCode = new OpenSchemaSourceCode( PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
+ "View source code" );
+ save = new SaveAction();
+ saveAs = new SaveAsAction();
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IMenuListener#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
+ /**
+ * Initializes the Toolbar.
*/
- public void menuAboutToShow( IMenuManager manager )
+ private void initToolbar()
{
- CreateANewSchemaAction createANewSchemaAction = new CreateANewSchemaAction();
- CreateANewObjectClassAction createANewObjectClassAction = new CreateANewObjectClassAction();
- CreateANewAttributeTypeAction createANewAttributeTypeAction = new CreateANewAttributeTypeAction();
- DeleteAction deleteAction = new DeleteAction();
- OpenSchemaSourceCode openSchemaSourceCode = new OpenSchemaSourceCode( PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow(), "View source code" ); //$NON-NLS-1$
- SaveAction saveAction = new SaveAction();
- SaveAsAction saveAsAction = new SaveAsAction();
- RemoveSchemaAction removeSchemaAction = new RemoveSchemaAction();
+ IToolBarManager toolbar = view.getViewSite().getActionBars().getToolBarManager();
+ toolbar.add( openLocalFile );
+ toolbar.add( createANewSchema );
+ toolbar.add( removeSchema );
+ toolbar.add( new Separator() );
+ toolbar.add( createANewObjectClass );
+ toolbar.add( createANewAttributeType );
+ toolbar.add( ( IAction ) deleteAction );
+ toolbar.add( new Separator() );
+ toolbar.add( sortAlphabetical );
+ toolbar.add( sortUnAlphabetical );
+ toolbar.add( new Separator() );
+ toolbar.add( collapseAll );
+ toolbar.add( linkWithEditor );
+ }
- PoolManager view = ( PoolManager ) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
- .findView( Application.PLUGIN_ID + ".view.PoolManager" ); //$NON-NLS-1$
- Object selection = ( ( TreeSelection ) view.getViewer().getSelection() ).getFirstElement();
+ /**
+ * Initializes the ContextMenu.
+ */
+ private void initContextMenu()
+ {
+ TreeViewer viewer = view.getViewer();
- if ( selection instanceof SchemaWrapper )
- {
- Schema schema = ( ( SchemaWrapper ) selection ).getMySchema();
- if ( schema.type == SchemaType.coreSchema )
- {
- manager.add( saveAsAction );
- manager.add( new Separator() );
- manager.add( openSchemaSourceCode );
- }
- else if ( schema.type == SchemaType.userSchema )
- {
- manager.add( createANewObjectClassAction );
- manager.add( createANewAttributeTypeAction );
- manager.add( new Separator() );
- manager.add( saveAction );
- manager.add( saveAsAction );
- manager.add( removeSchemaAction );
- manager.add( new Separator() );
- manager.add( openSchemaSourceCode );
- }
- }
- else if ( selection instanceof IntermediateNode )
- {
- if ( ( ( IntermediateNode ) selection ).getDisplayName().equals( "Attribute Types" ) ) { //$NON-NLS-1$
- manager.add( createANewAttributeTypeAction );
- }
- else if ( ( ( IntermediateNode ) selection ).getDisplayName().equals( "Object Classes" ) ) { //$NON-NLS-1$
- manager.add( createANewObjectClassAction );
- }
- }
- else if ( ( selection instanceof AttributeTypeWrapper ) )
- {
- manager.add( deleteAction );
- manager.add( new Separator() );
- manager.add( createANewAttributeTypeAction );
- }
- else if ( ( selection instanceof ObjectClassWrapper ) )
- {
- manager.add( deleteAction );
- manager.add( new Separator() );
- manager.add( createANewObjectClassAction );
- }
- else
+ contextMenu = new MenuManager( "" ); //$NON-NLS-1$
+ contextMenu.setRemoveAllWhenShown( true );
+
+ contextMenu.addMenuListener( new IMenuListener()
{
- // Nothing is selected
- if ( selection == null )
+ /**
+ * {@inheritDoc}
+ */
+ public void menuAboutToShow( IMenuManager manager )
{
- manager.add( createANewSchemaAction );
+ Object selection = ( ( TreeSelection ) view.getViewer().getSelection() ).getFirstElement();
+
+ if ( selection instanceof SchemaWrapper )
+ {
+ Schema schema = ( ( SchemaWrapper ) selection ).getMySchema();
+ if ( schema.type == SchemaType.coreSchema )
+ {
+ manager.add( saveAs );
+ manager.add( new Separator() );
+ manager.add( openSchemaSourceCode );
+ }
+ else if ( schema.type == SchemaType.userSchema )
+ {
+ manager.add( createANewObjectClass );
+ manager.add( createANewAttributeType );
+ manager.add( new Separator() );
+ manager.add( save );
+ manager.add( saveAs );
+ manager.add( removeSchema );
+ manager.add( new Separator() );
+ manager.add( openSchemaSourceCode );
+ }
+ }
+ else if ( selection instanceof IntermediateNode )
+ {
+ if ( ( ( IntermediateNode ) selection ).getType() == IntermediateNodeType.ATTRIBUTE_TYPE_FOLDER )
+ {
+ manager.add( createANewAttributeType );
+ }
+ else if ( ( ( IntermediateNode ) selection ).getType() == IntermediateNodeType.OBJECT_CLASS_FOLDER )
+ {
+ manager.add( createANewObjectClass );
+ }
+ }
+ else if ( ( selection instanceof AttributeTypeWrapper ) )
+ {
+ manager.add( deleteAction );
+ manager.add( new Separator() );
+ manager.add( createANewAttributeType );
+ }
+ else if ( ( selection instanceof ObjectClassWrapper ) )
+ {
+ manager.add( deleteAction );
+ manager.add( new Separator() );
+ manager.add( createANewObjectClass );
+ }
+ else
+ {
+ // Nothing is selected
+ if ( selection == null )
+ {
+ manager.add( createANewSchema );
+ }
+ }
}
- }
+ } );
+
+ // set the context menu to the table viewer
+ viewer.getControl().setMenu( contextMenu.createContextMenu( viewer.getControl() ) );
+ // register the context menu to enable extension actions
+ view.getSite().registerContextMenu( contextMenu, viewer );
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
+ /**
+ * Initializes the DragNDrop support
*/
- public void doubleClick( DoubleClickEvent event )
+ private void initDragAndDrop()
{
- // TODO : /!\ Essayer de factoriser le code commun � la fenetre de vue hierarchique dans une classe abstraite
-
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ DropTarget target = new DropTarget( view.getViewer().getControl(), DND.DROP_COPY );
+ //we only support file dropping on the viewer
+ Transfer[] types = new Transfer[]
+ { FileTransfer.getInstance() };
+ target.setTransfer( types );
+ target.addDropListener( new DropTargetListener()
+ {
+ /**
+ * {@inheritDoc}
+ */
+ public void dragEnter( DropTargetEvent event )
+ {
+ if ( ( event.operations & DND.DROP_COPY ) != 0 )
+ {
+ event.detail = DND.DROP_COPY;
+ }
+ else
+ {
+ event.detail = DND.DROP_NONE;
+ }
- PoolManager view = ( PoolManager ) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
- .findView( PoolManager.ID );
- TreeViewer viewer = view.getViewer();
+ //we only want files
+ for ( int i = 0; i < event.dataTypes.length; i++ )
+ {
+ if ( fileTransfer.isSupportedType( event.dataTypes[i] ) )
+ {
+ event.currentDataType = event.dataTypes[i];
+ break;
+ }
+ }
+ }
- // What we get from the treeViewer is a StructuredSelection
- StructuredSelection selection = ( StructuredSelection ) event.getSelection();
+ /**
+ * {@inheritDoc}
+ */
+ public void dragOver( DropTargetEvent event )
+ {
+ }
- // Here's the real object (an AttributeTypeWrapper, ObjectClassWrapper or IntermediateNode)
- Object objectSelection = selection.getFirstElement();
- IEditorInput input = null;
- String editorId = null;
+ /**
+ * {@inheritDoc}
+ */
+ public void dragOperationChanged( DropTargetEvent event )
+ {
+ }
- // Selecting the right editor and input
- if ( objectSelection instanceof AttributeTypeWrapper )
- {
- input = new AttributeTypeFormEditorInput( ( ( AttributeTypeWrapper ) objectSelection ).getMyAttributeType() );
- editorId = AttributeTypeFormEditor.ID;
- }
- else if ( objectSelection instanceof ObjectClassWrapper )
- {
- input = new ObjectClassFormEditorInput( ( ( ObjectClassWrapper ) objectSelection ).getMyObjectClass() );
- editorId = ObjectClassFormEditor.ID;
- }
- else if ( ( objectSelection instanceof IntermediateNode ) || ( objectSelection instanceof SchemaWrapper ) )
- {
- // Here we don't open an editor, we just expand the node.
- viewer.setExpandedState( objectSelection, !viewer.getExpandedState( objectSelection ) );
- }
+ /**
+ * {@inheritDoc}
+ */
+ public void dragLeave( DropTargetEvent event )
+ {
+ }
- // Let's open the editor
- if ( input != null )
- {
- try
+ /**
+ * {@inheritDoc}
+ */
+ public void dropAccept( DropTargetEvent event )
{
- page.openEditor( input, editorId );
}
- catch ( PartInitException e )
+
+ /**
+ * {@inheritDoc}
+ */
+ public void drop( DropTargetEvent event )
{
- logger.debug( "error when opening the editor" ); //$NON-NLS-1$
+ if ( fileTransfer.isSupportedType( event.currentDataType ) )
+ {
+ SchemaPool pool = SchemaPool.getInstance();
+ String[] files = ( String[] ) event.data;
+ for ( int i = 0; i < files.length; i++ )
+ {
+ try
+ {
+ pool.addAlreadyExistingSchema( files[i], SchemaType.userSchema );
+ }
+ catch ( SchemaCreationException e )
+ {
+ logger.debug( "error when initializing new schema after drag&drop: " + files[i] ); //$NON-NLS-1$
+ }
+ }
+ }
}
- }
- }
+ } );
+ }
- /******************************************
- * DropTargetListener Impl *
- ******************************************/
- public void dragEnter( DropTargetEvent event )
+ /**
+ * Initializes the DoubleClickListener
+ */
+ private void initDoubleClickListener()
{
- if ( ( event.operations & DND.DROP_COPY ) != 0 )
+ view.getViewer().addDoubleClickListener( new IDoubleClickListener()
{
- event.detail = DND.DROP_COPY;
- }
- else
- {
- event.detail = DND.DROP_NONE;
- }
-
- //we only want files
- for ( int i = 0; i < event.dataTypes.length; i++ )
- {
- if ( fileTransfer.isSupportedType( event.dataTypes[i] ) )
+ /**
+ * {@inheritDoc}
+ */
+ public void doubleClick( DoubleClickEvent event )
{
- event.currentDataType = event.dataTypes[i];
- break;
- }
- }
- }
+ // TODO : /!\ Essayer de factoriser le code commun � la fenetre de vue hierarchique dans une classe abstraite
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- public void dragOver( DropTargetEvent event )
- {
- }
-
+ PoolManager view = ( PoolManager ) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .findView( PoolManager.ID );
+ TreeViewer viewer = view.getViewer();
- public void dragOperationChanged( DropTargetEvent 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;
- public void dragLeave( DropTargetEvent event )
- {
- }
+ // Selecting the right editor and input
+ if ( objectSelection instanceof AttributeTypeWrapper )
+ {
+ input = new AttributeTypeFormEditorInput( ( ( AttributeTypeWrapper ) objectSelection )
+ .getMyAttributeType() );
+ editorId = AttributeTypeFormEditor.ID;
+ }
+ else if ( objectSelection instanceof ObjectClassWrapper )
+ {
+ input = new ObjectClassFormEditorInput( ( ( ObjectClassWrapper ) objectSelection )
+ .getMyObjectClass() );
+ editorId = ObjectClassFormEditor.ID;
+ }
+ else if ( ( objectSelection instanceof IntermediateNode )
+ || ( objectSelection instanceof SchemaWrapper ) )
+ {
+ // Here we don't open an editor, we just expand the node.
+ viewer.setExpandedState( objectSelection, !viewer.getExpandedState( objectSelection ) );
+ }
+ // Let's open the editor
+ if ( input != null )
+ {
+ try
+ {
+ page.openEditor( input, editorId );
+ }
+ catch ( PartInitException e )
+ {
+ logger.debug( "error when opening the editor" ); //$NON-NLS-1$
+ }
+ }
+ }
+ } );
- public void dropAccept( DropTargetEvent event )
- {
}
- public void drop( DropTargetEvent event )
+ /**
+ * Registers a Listener on the Schemas View and enable/disable the
+ * Actions according to the selection
+ */
+ private void registerUpdateActions()
{
- if ( fileTransfer.isSupportedType( event.currentDataType ) )
+ // Handling selection of the Browser View to enable/disable the Actions
+ view.getSite().getPage().addSelectionListener( PoolManager.ID, new ISelectionListener()
{
- SchemaPool pool = SchemaPool.getInstance();
- String[] files = ( String[] ) event.data;
- for ( int i = 0; i < files.length; i++ )
+ /**
+ * {@inheritDoc}
+ */
+ public void selectionChanged( IWorkbenchPart part, ISelection selection )
{
- try
+ TreeSelection treeSelection = ( TreeSelection ) selection;
+
+ Object selectedObject = ( ( TreeSelection ) selection ).getFirstElement();
+
+ if ( treeSelection.size() != 1 || selectedObject == null )
+ {
+ removeSchema.setEnabled( false );
+ createANewObjectClass.setEnabled( false );
+ createANewAttributeType.setEnabled( false );
+ deleteAction.setEnabled( false );
+ }
+ else if ( selectedObject instanceof SchemaWrapper )
+ {
+ SchemaWrapper schemaWrapper = ( SchemaWrapper ) selectedObject;
+
+ if ( schemaWrapper.getMySchema().type == SchemaType.coreSchema )
+ {
+ removeSchema.setEnabled( false );
+ createANewObjectClass.setEnabled( false );
+ createANewAttributeType.setEnabled( false );
+ deleteAction.setEnabled( false );
+ }
+ else
+ {
+ removeSchema.setEnabled( true );
+ createANewObjectClass.setEnabled( true );
+ createANewAttributeType.setEnabled( true );
+ deleteAction.setEnabled( false );
+ }
+ }
+ else if ( selectedObject instanceof AttributeTypeWrapper )
+ {
+ AttributeTypeWrapper attributeTypeWrapper = ( AttributeTypeWrapper ) selectedObject;
+ deleteAction.setText( "Delete Attribute Type" + " '" + attributeTypeWrapper.getName() + "'" );
+
+ if ( attributeTypeWrapper.getMyAttributeType().getOriginatingSchema().type == SchemaType.coreSchema )
+ {
+ createANewObjectClass.setEnabled( false );
+ createANewAttributeType.setEnabled( false );
+ deleteAction.setEnabled( false );
+ }
+ else
+ {
+ createANewObjectClass.setEnabled( false );
+ createANewAttributeType.setEnabled( true );
+ deleteAction.setEnabled( true );
+ }
+ }
+ else if ( selectedObject instanceof ObjectClassWrapper )
{
- pool.addAlreadyExistingSchema( files[i], SchemaType.userSchema );
+ ObjectClassWrapper objectClassWrapper = ( ObjectClassWrapper ) selectedObject;
+ deleteAction.setText( "Delete Object Class" + " '" + objectClassWrapper.getNames()[0] + "'" );
+
+ if ( objectClassWrapper.getMyObjectClass().getOriginatingSchema().type == SchemaType.coreSchema )
+ {
+ createANewObjectClass.setEnabled( false );
+ createANewAttributeType.setEnabled( false );
+ deleteAction.setEnabled( false );
+ }
+ else
+ {
+ createANewObjectClass.setEnabled( true );
+ createANewAttributeType.setEnabled( false );
+ deleteAction.setEnabled( true );
+ }
}
- catch ( SchemaCreationException e )
+ else if ( selectedObject instanceof IntermediateNode )
{
- logger.debug( "error when initializing new schema after drag&drop: " + files[i] ); //$NON-NLS-1$
+ IntermediateNode intermediateNode = ( IntermediateNode ) selectedObject;
+ SchemaWrapper schemaWrapper = ( SchemaWrapper ) intermediateNode.getParent();
+
+ if ( schemaWrapper.getMySchema().type == SchemaType.coreSchema )
+ {
+ removeSchema.setEnabled( false );
+ createANewObjectClass.setEnabled( false );
+ createANewAttributeType.setEnabled( false );
+ deleteAction.setEnabled( false );
+ }
+ else
+ {
+ if ( intermediateNode.getType() == IntermediateNodeType.OBJECT_CLASS_FOLDER )
+ {
+ removeSchema.setEnabled( true );
+ createANewObjectClass.setEnabled( true );
+ createANewAttributeType.setEnabled( false );
+ deleteAction.setEnabled( false );
+ }
+ else if ( intermediateNode.getType() == IntermediateNodeType.ATTRIBUTE_TYPE_FOLDER )
+ {
+ removeSchema.setEnabled( true );
+ createANewObjectClass.setEnabled( false );
+ createANewAttributeType.setEnabled( true );
+ deleteAction.setEnabled( false );
+ }
+ else
+ {
+ removeSchema.setEnabled( true );
+ createANewObjectClass.setEnabled( false );
+ createANewAttributeType.setEnabled( false );
+ deleteAction.setEnabled( false );
+ }
+ }
}
}
- }
+ } );
}
}
Modified: directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewAttributeTypeAction.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewAttributeTypeAction.java?view=diff&rev=501083&r1=501082&r2=501083
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewAttributeTypeAction.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewAttributeTypeAction.java Mon Jan 29 07:45:59 2007
@@ -33,17 +33,11 @@
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.SchemaWrapper;
import org.apache.directory.ldapstudio.schemas.view.wizards.CreateANewAttributeTypeWizard;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -51,8 +45,7 @@
/**
* This class implements the Action for creating a new attribute type
*/
-public class CreateANewAttributeTypeAction extends Action implements IWorkbenchWindowActionDelegate,
- IViewActionDelegate
+public class CreateANewAttributeTypeAction extends Action
{
/**
@@ -72,8 +65,8 @@
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.Action#run()
+ /**
+ * {@inheritDoc}
*/
public void run()
{
@@ -138,31 +131,5 @@
dialog.open();
}
}
- }
-
-
- public void dispose()
- {
- }
-
-
- public void init( IWorkbenchWindow window )
- {
- }
-
-
- public void run( IAction action )
- {
- this.run();
- }
-
-
- public void selectionChanged( IAction action, ISelection selection )
- {
- }
-
-
- public void init( IViewPart view )
- {
}
}
Modified: directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewObjectClassAction.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewObjectClassAction.java?view=diff&rev=501083&r1=501082&r2=501083
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewObjectClassAction.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewObjectClassAction.java Mon Jan 29 07:45:59 2007
@@ -33,17 +33,11 @@
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.SchemaWrapper;
import org.apache.directory.ldapstudio.schemas.view.wizards.CreateANewObjectClassWizard;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -51,7 +45,7 @@
/**
* This class implements the Action for creating a new object class
*/
-public class CreateANewObjectClassAction extends Action implements IWorkbenchWindowActionDelegate, IViewActionDelegate
+public class CreateANewObjectClassAction extends Action
{
/**
@@ -71,8 +65,8 @@
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.Action#run()
+ /**
+ * {@inheritDoc}
*/
public void run()
{
@@ -137,31 +131,5 @@
dialog.open();
}
}
- }
-
-
- public void run( IAction action )
- {
- this.run();
- }
-
-
- public void dispose()
- {
- }
-
-
- public void init( IWorkbenchWindow window )
- {
- }
-
-
- public void selectionChanged( IAction action, ISelection selection )
- {
- }
-
-
- public void init( IViewPart view )
- {
}
}
Modified: directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewSchemaAction.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewSchemaAction.java?view=diff&rev=501083&r1=501082&r2=501083
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewSchemaAction.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/CreateANewSchemaAction.java Mon Jan 29 07:45:59 2007
@@ -26,14 +26,8 @@
import org.apache.directory.ldapstudio.schemas.view.IImageKeys;
import org.apache.directory.ldapstudio.schemas.view.wizards.CreateANewSchemaWizard;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -42,7 +36,7 @@
* This class implements the Action for creating a new schema
*/
-public class CreateANewSchemaAction extends Action implements IWorkbenchWindowActionDelegate, IViewActionDelegate
+public class CreateANewSchemaAction extends Action
{
/**
* Default constructor
@@ -61,15 +55,9 @@
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.Action#run()
+ /**
+ * {@inheritDoc}
*/
- public void run( IAction action )
- {
- this.run();
- }
-
-
public void run()
{
// Instantiates and initializes the wizard
@@ -79,25 +67,5 @@
WizardDialog dialog = new WizardDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard );
dialog.create();
dialog.open();
- }
-
-
- public void dispose()
- {
- }
-
-
- public void init( IWorkbenchWindow window )
- {
- }
-
-
- public void selectionChanged( IAction action, ISelection selection )
- {
- }
-
-
- public void init( IViewPart view )
- {
}
}
Modified: directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/DeleteAction.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/DeleteAction.java?view=diff&rev=501083&r1=501082&r2=501083
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/DeleteAction.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/DeleteAction.java Mon Jan 29 07:45:59 2007
@@ -35,17 +35,11 @@
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.SchemaWrapper;
import org.apache.log4j.Logger;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -54,7 +48,7 @@
/**
* This class implements the Action for deleting an element (object class or attribute type)
*/
-public class DeleteAction extends Action implements IWorkbenchWindowActionDelegate, IViewActionDelegate
+public class DeleteAction extends Action
{
private static Logger logger = Logger.getLogger( DeleteAction.class );
@@ -81,8 +75,8 @@
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.Action#run()
+ /**
+ * {@inheritDoc}
*/
public void run()
{
@@ -183,31 +177,5 @@
}
}
}
- }
-
-
- public void dispose()
- {
- }
-
-
- public void init( IWorkbenchWindow window )
- {
- }
-
-
- public void run( IAction action )
- {
- this.run();
- }
-
-
- public void selectionChanged( IAction action, ISelection selection )
- {
- }
-
-
- public void init( IViewPart view )
- {
}
}
Modified: directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/OpenLocalFileAction.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/OpenLocalFileAction.java?view=diff&rev=501083&r1=501082&r2=501083
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/OpenLocalFileAction.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/OpenLocalFileAction.java Mon Jan 29 07:45:59 2007
@@ -31,14 +31,8 @@
import org.eclipse.core.runtime.preferences.ConfigurationScope;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -46,11 +40,14 @@
/**
* This class implements the Action for opening a local file schema
*/
-public class OpenLocalFileAction extends Action implements IWorkbenchWindowActionDelegate, IViewActionDelegate
+public class OpenLocalFileAction extends Action
{
private static Logger logger = Logger.getLogger( OpenLocalFileAction.class );
+ /**
+ * Creates a new instance of OpenLocalFileAction.
+ */
public OpenLocalFileAction()
{
setText( Messages.getString( "OpenLocalFileAction.Open_a_schema_file" ) ); //$NON-NLS-1$
@@ -62,12 +59,9 @@
}
- public void run( IAction action )
- {
- this.run();
- }
-
-
+ /**
+ * {@inheritDoc}
+ */
public void run()
{
FileDialog fd = new FileDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.OPEN );
@@ -94,25 +88,5 @@
}
}
- }
-
-
- public void dispose()
- {
- }
-
-
- public void init( IWorkbenchWindow window )
- {
- }
-
-
- public void selectionChanged( IAction action, ISelection selection )
- {
- }
-
-
- public void init( IViewPart view )
- {
}
}
Modified: directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/RemoveSchemaAction.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/RemoveSchemaAction.java?view=diff&rev=501083&r1=501082&r2=501083
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/RemoveSchemaAction.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/controller/actions/RemoveSchemaAction.java Mon Jan 29 07:45:59 2007
@@ -31,15 +31,9 @@
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.ObjectClassWrapper;
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.SchemaWrapper;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -47,7 +41,7 @@
/**
* This class implements the Action for removing a schema from the pool
*/
-public class RemoveSchemaAction extends Action implements IWorkbenchWindowActionDelegate, IViewActionDelegate
+public class RemoveSchemaAction extends Action
{
/**
@@ -67,8 +61,8 @@
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.Action#run()
+ /**
+ * {@inheritDoc}
*/
public void run()
{
@@ -125,31 +119,5 @@
else
pool.removeSchema( schema );
}
- }
-
-
- public void dispose()
- {
- }
-
-
- public void init( IWorkbenchWindow window )
- {
- }
-
-
- public void run( IAction action )
- {
- this.run();
- }
-
-
- public void selectionChanged( IAction action, ISelection selection )
- {
- }
-
-
- public void init( IViewPart view )
- {
}
}
Modified: directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/viewers/PoolManager.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/viewers/PoolManager.java?view=diff&rev=501083&r1=501082&r2=501083
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/viewers/PoolManager.java (original)
+++ directory/ldapstudio/trunk/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/viewers/PoolManager.java Mon Jan 29 07:45:59 2007
@@ -25,15 +25,6 @@
import org.apache.directory.ldapstudio.schemas.controller.Application;
import org.apache.directory.ldapstudio.schemas.controller.PoolManagerController;
-import org.apache.directory.ldapstudio.schemas.controller.actions.CollapseAllAction;
-import org.apache.directory.ldapstudio.schemas.controller.actions.CreateANewAttributeTypeAction;
-import org.apache.directory.ldapstudio.schemas.controller.actions.CreateANewObjectClassAction;
-import org.apache.directory.ldapstudio.schemas.controller.actions.CreateANewSchemaAction;
-import org.apache.directory.ldapstudio.schemas.controller.actions.DeleteAction;
-import org.apache.directory.ldapstudio.schemas.controller.actions.LinkWithEditorSchemasView;
-import org.apache.directory.ldapstudio.schemas.controller.actions.OpenLocalFileAction;
-import org.apache.directory.ldapstudio.schemas.controller.actions.RemoveSchemaAction;
-import org.apache.directory.ldapstudio.schemas.controller.actions.SortPoolManagerAction;
import org.apache.directory.ldapstudio.schemas.model.LDAPModelEvent;
import org.apache.directory.ldapstudio.schemas.model.PoolListener;
import org.apache.directory.ldapstudio.schemas.model.Schema;
@@ -41,21 +32,19 @@
import org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.DisplayableTreeElement;
import org.apache.log4j.Logger;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.ISaveablePart2;
-import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
+/**
+ * This class implements the Schemas View
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
public class PoolManager extends ViewPart implements PoolListener, ISaveablePart2
{
public static final String ID = Application.PLUGIN_ID + ".view.PoolManager"; //$NON-NLS-1$
@@ -66,91 +55,46 @@
private PoolManagerContentProvider contentProvider;
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+ /**
+ * {@inheritDoc}
*/
- @Override
public void createPartControl( Composite parent )
{
this.parent = parent;
initViewer();
- IToolBarManager toolbar = getViewSite().getActionBars().getToolBarManager();
- toolbar.add( new OpenLocalFileAction() );
- toolbar.add( new CreateANewSchemaAction() );
- toolbar.add( new RemoveSchemaAction() );
- toolbar.add( new Separator() );
- toolbar.add( new CreateANewObjectClassAction() );
- toolbar.add( new CreateANewAttributeTypeAction() );
- toolbar.add( new DeleteAction() );
- toolbar.add( new Separator() );
- toolbar.add( new SortPoolManagerAction( PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
- SortPoolManagerAction.SortType.alphabetical, Messages.getString( "PoolManager.Sort_alphabetically" ) ) ); //$NON-NLS-1$
- toolbar.add( new SortPoolManagerAction( PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
- SortPoolManagerAction.SortType.unalphabetical, Messages.getString( "PoolManager.Sort_unalphabetically" ) ) ); //$NON-NLS-1$
- toolbar.add( new Separator() );
- toolbar.add( new CollapseAllAction( getViewer() ) );
- toolbar.add( new LinkWithEditorSchemasView( this ) );
-
- // ContextMenu Creation
- createContextMenu();
// Registering the Viewer, so other views can be notified when the viewer selection changes
getSite().setSelectionProvider( viewer );
- }
+ SchemaPool pool = SchemaPool.getInstance();
+ //we want to be notified if the pool has been modified
+ pool.addListener( this );
- private MenuManager createContextMenu()
- {
- MenuManager menu = new MenuManager( "" ); //$NON-NLS-1$
- menu.setRemoveAllWhenShown( true );
- //contextual-menu handling via the singleton controller instance
- menu.addMenuListener( PoolManagerController.getInstance() );
- // set the context menu to the table viewer
- viewer.getControl().setMenu( menu.createContextMenu( viewer.getControl() ) );
- // register the context menu to enable extension actions
- getSite().registerContextMenu( menu, viewer );
- return menu;
+ // Adding the controller
+ new PoolManagerController( this );
}
+ /**
+ * Initializes the Viewer
+ */
private void initViewer()
{
- SchemaPool pool = SchemaPool.getInstance();
- //we want to be notified if the pool has been modified
- pool.addListener( this );
-
viewer = new TreeViewer( parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER );
contentProvider = new PoolManagerContentProvider();
contentProvider.bindToTreeViewer( viewer );
-
- //double-click handling via the singleton controller instance
- viewer.addDoubleClickListener( PoolManagerController.getInstance() );
-
- //drag&drop handling via the singleton controller instance
- int operations = DND.DROP_COPY;
- DropTarget target = new DropTarget( viewer.getControl(), operations );
- //we only support file dropping on the viewer
- Transfer[] types = new Transfer[]
- { FileTransfer.getInstance() };
- target.setTransfer( types );
- target.addDropListener( PoolManagerController.getInstance() );
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+ /**
+ * {@inheritDoc}
*/
- @Override
public void setFocus()
{
viewer.getControl().setFocus();
}
- /******************************************
- * Logic *
- ******************************************/
-
/**
* Refresh the entire view
*/
@@ -181,10 +125,6 @@
}
- /******************************************
- * Pool Listener Impl *
- ******************************************/
-
/**
* We refresh the view only if the pool has been modified
*/
@@ -196,7 +136,10 @@
/**
- * @return the internal tree viewer
+ * Gets the TreeViewer
+ *
+ * @return
+ * the TreeViewer
*/
public TreeViewer getViewer()
{
@@ -204,13 +147,18 @@
}
+ /**
+ * {@inheritDoc}
+ */
public int promptToSaveOnClose()
{
- // TODO Auto-generated method stub
return ISaveablePart2.YES;
}
+ /**
+ * {@inheritDoc}
+ */
public void doSave( IProgressMonitor monitor )
{
// save schemas on disk
@@ -239,16 +187,19 @@
}
+ /**
+ * {@inheritDoc}
+ */
public void doSaveAs()
{
- // TODO Auto-generated method stub
-
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isDirty()
{
- // TODO Auto-generated method stub
Schema[] schemas = SchemaPool.getInstance().getSchemas();
for ( int i = 0; i < schemas.length; i++ )
{
@@ -261,21 +212,26 @@
}
}
}
+
// Default value
return false;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isSaveAsAllowed()
{
- // TODO Auto-generated method stub
return false;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isSaveOnCloseNeeded()
{
- // TODO Auto-generated method stub
return true;
}