You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2007/07/02 22:21:53 UTC
svn commit: r552582 - in /directory/studio/trunk/studio-schemaeditor-plugin:
./ src/main/java/org/apache/directory/studio/schemas/
src/main/java/org/apache/directory/studio/schemas/controller/
Author: seelmann
Date: Mon Jul 2 13:21:52 2007
New Revision: 552582
URL: http://svn.apache.org/viewvc?view=rev&rev=552582
Log:
DIRSTUDIO-96: Added context and improved key binding handling.
Modified:
directory/studio/trunk/studio-schemaeditor-plugin/plugin.xml
directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/PluginConstants.java
directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemaElementsController.java
directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemasViewController.java
Modified: directory/studio/trunk/studio-schemaeditor-plugin/plugin.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor-plugin/plugin.xml?view=diff&rev=552582&r1=552581&r2=552582
==============================================================================
--- directory/studio/trunk/studio-schemaeditor-plugin/plugin.xml (original)
+++ directory/studio/trunk/studio-schemaeditor-plugin/plugin.xml Mon Jul 2 13:21:52 2007
@@ -127,11 +127,13 @@
point="org.eclipse.ui.bindings">
<key
commandId="org.apache.directory.studio.schemas.cmd.OpenLocal"
+ contextId="org.apache.directory.studio.schemas.contexts.window"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="CTRL+O">
</key>
<key
commandId="org.apache.directory.studio.schemas.cmd.OpenTypeHierarchy"
+ contextId="org.apache.directory.studio.schemas.contexts.window"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="F4"/>
</extension>
@@ -241,5 +243,14 @@
label="Schemas Search"
showScopeSection="false"
sizeHint="450,300"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.contexts">
+ <context
+ description="In Schema Editor Windows"
+ id="org.apache.directory.studio.schemas.contexts.window"
+ name="In Schema Editor Windows"
+ parentId="org.eclipse.ui.contexts.window">
+ </context>
</extension>
</plugin>
Modified: directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/PluginConstants.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/PluginConstants.java?view=diff&rev=552582&r1=552581&r2=552582
==============================================================================
--- directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/PluginConstants.java (original)
+++ directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/PluginConstants.java Mon Jul 2 13:21:52 2007
@@ -300,4 +300,6 @@
public static final String CMD_OPEN_TYPE_HIERARCHY = Activator.PLUGIN_ID + ".cmd.OpenTypeHierarchy"; //$NON-NLS-1$
public static final String CMD_HIERARCHY_VIEW_PREFERENCES = Activator.PLUGIN_ID
+ ".cmd.OpenHierarchyViewPreferences"; //$NON-NLS-1$
+
+ public static final String CONTEXT_WINDOWS = Activator.PLUGIN_ID + ".contexts.window"; //$NON-NLS-1$
}
Modified: directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemaElementsController.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemaElementsController.java?view=diff&rev=552582&r1=552581&r2=552582
==============================================================================
--- directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemaElementsController.java (original)
+++ directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemaElementsController.java Mon Jul 2 13:21:52 2007
@@ -47,6 +47,7 @@
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.commands.ActionHandler;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.DoubleClickEvent;
@@ -55,10 +56,15 @@
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPartListener2;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPartReference;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.contexts.IContextActivation;
+import org.eclipse.ui.contexts.IContextService;
/**
@@ -73,7 +79,7 @@
private static Logger logger = Logger.getLogger( SchemaElementsController.class );
/** The authorized Preferences keys*/
- List<String> authorizedPrefs;
+ private List<String> authorizedPrefs;
/** The associated view */
private SchemaElementsView view;
@@ -81,6 +87,9 @@
/** The Context Menu */
private MenuManager contextMenu;
+ /** Token used to activate and deactivate shortcuts in the view */
+ private IContextActivation contextActivation;
+
// The Actions
private Action hideObjectClasses;
private Action hideAttributeTypes;
@@ -104,6 +113,94 @@
initContextMenu();
initDoubleClickListener();
initPreferencesListener();
+ initPartListener();
+ }
+
+
+ /**
+ * Initializes the part listener. It is used to activate and deactivate the
+ * shortcuts (key bindins) when the view is activated and deactivated.
+ */
+ private void initPartListener()
+ {
+
+ view.getSite().getPage().addPartListener( new IPartListener2()
+ {
+ /**
+ * This implementation deactivates the shortcuts when the part is deactivated.
+ */
+ public void partDeactivated( IWorkbenchPartReference partRef )
+ {
+ if ( partRef.getPart( false ) == view && contextActivation != null )
+ {
+ ICommandService commandService = ( ICommandService ) PlatformUI.getWorkbench().getAdapter(
+ ICommandService.class );
+ if ( commandService != null )
+ {
+ commandService.getCommand( openTypeHierarchy.getActionDefinitionId() ).setHandler( null );
+ }
+
+ IContextService contextService = ( IContextService ) PlatformUI.getWorkbench().getAdapter(
+ IContextService.class );
+ contextService.deactivateContext( contextActivation );
+ contextActivation = null;
+ }
+ }
+
+
+ /**
+ * This implementation activates the shortcuts when the part is activated.
+ */
+ public void partActivated( IWorkbenchPartReference partRef )
+ {
+ if ( partRef.getPart( false ) == view )
+ {
+ IContextService contextService = ( IContextService ) PlatformUI.getWorkbench().getAdapter(
+ IContextService.class );
+ contextActivation = contextService.activateContext( PluginConstants.CONTEXT_WINDOWS );
+
+ ICommandService commandService = ( ICommandService ) PlatformUI.getWorkbench().getAdapter(
+ ICommandService.class );
+ if ( commandService != null )
+ {
+ commandService.getCommand( openTypeHierarchy.getActionDefinitionId() ).setHandler(
+ new ActionHandler( openTypeHierarchy ) );
+ }
+ }
+ }
+
+
+ public void partBroughtToTop( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partClosed( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partHidden( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partInputChanged( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partOpened( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partVisible( IWorkbenchPartReference partRef )
+ {
+ }
+
+ } );
+
}
Modified: directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemasViewController.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemasViewController.java?view=diff&rev=552582&r1=552581&r2=552582
==============================================================================
--- directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemasViewController.java (original)
+++ directory/studio/trunk/studio-schemaeditor-plugin/src/main/java/org/apache/directory/studio/schemas/controller/SchemasViewController.java Mon Jul 2 13:21:52 2007
@@ -64,6 +64,7 @@
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.commands.ActionHandler;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.DoubleClickEvent;
@@ -80,12 +81,17 @@
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.dnd.TransferData;
import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPartListener2;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchPartReference;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.contexts.IContextActivation;
+import org.eclipse.ui.contexts.IContextService;
/**
@@ -103,7 +109,7 @@
private SchemasView view;
/** The authorized Preferences keys*/
- List<String> authorizedPrefs;
+ private List<String> authorizedPrefs;
/** The Drag'n'Drop FileTransfer Object */
private final static FileTransfer fileTransfer = FileTransfer.getInstance();
@@ -111,6 +117,9 @@
/** The Context Menu */
private MenuManager contextMenu;
+ /** Token used to activate and deactivate shortcuts in the view */
+ private IContextActivation contextActivation;
+
// The Actions
private Action openLocalFile;
private Action createANewSchema;
@@ -148,6 +157,94 @@
initDoubleClickListener();
registerUpdateActions();
initPreferencesListener();
+ initPartListener();
+ }
+
+
+ /**
+ * Initializes the part listener. It is used to activate and deactivate the
+ * shortcuts (key bindins) when the view is activated and deactivated.
+ */
+ private void initPartListener()
+ {
+
+ view.getSite().getPage().addPartListener( new IPartListener2()
+ {
+ /**
+ * This implementation deactivates the shortcuts when the part is deactivated.
+ */
+ public void partDeactivated( IWorkbenchPartReference partRef )
+ {
+ if ( partRef.getPart( false ) == view && contextActivation != null )
+ {
+ ICommandService commandService = ( ICommandService ) PlatformUI.getWorkbench().getAdapter(
+ ICommandService.class );
+ if ( commandService != null )
+ {
+ commandService.getCommand( openLocalFile.getActionDefinitionId() ).setHandler( null );
+ }
+
+ IContextService contextService = ( IContextService ) PlatformUI.getWorkbench().getAdapter(
+ IContextService.class );
+ contextService.deactivateContext( contextActivation );
+ contextActivation = null;
+ }
+ }
+
+
+ /**
+ * This implementation activates the shortcuts when the part is activated.
+ */
+ public void partActivated( IWorkbenchPartReference partRef )
+ {
+ if ( partRef.getPart( false ) == view )
+ {
+ IContextService contextService = ( IContextService ) PlatformUI.getWorkbench().getAdapter(
+ IContextService.class );
+ contextActivation = contextService.activateContext( PluginConstants.CONTEXT_WINDOWS );
+
+ ICommandService commandService = ( ICommandService ) PlatformUI.getWorkbench().getAdapter(
+ ICommandService.class );
+ if ( commandService != null )
+ {
+ commandService.getCommand( openLocalFile.getActionDefinitionId() ).setHandler(
+ new ActionHandler( openLocalFile ) );
+ }
+ }
+ }
+
+
+ public void partBroughtToTop( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partClosed( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partHidden( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partInputChanged( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partOpened( IWorkbenchPartReference partRef )
+ {
+ }
+
+
+ public void partVisible( IWorkbenchPartReference partRef )
+ {
+ }
+
+ } );
+
}
@@ -249,7 +346,7 @@
{
manager.add( saveAs );
manager.add( new Separator() );
- manager.add( exportSchemaForADS);
+ manager.add( exportSchemaForADS );
manager.add( new Separator() );
manager.add( openSchemaSourceCode );
}
@@ -262,7 +359,7 @@
manager.add( saveAs );
manager.add( removeSchema );
manager.add( new Separator() );
- manager.add( exportSchemaForADS);
+ manager.add( exportSchemaForADS );
manager.add( new Separator() );
manager.add( openSchemaSourceCode );
}
@@ -451,11 +548,11 @@
*/
public void selectionChanged( IWorkbenchPart part, ISelection selection )
{
- if ( ! ( selection instanceof TreeSelection ) )
+ if ( !( selection instanceof TreeSelection ) )
{
return;
}
-
+
TreeSelection treeSelection = ( TreeSelection ) selection;
Object selectedObject = ( ( TreeSelection ) selection ).getFirstElement();