diff options
Diffstat (limited to 'framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java')
-rw-r--r-- | framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java | 138 |
1 files changed, 61 insertions, 77 deletions
diff --git a/framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java b/framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java index 2a6d9e000d..6455807f56 100644 --- a/framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java +++ b/framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java @@ -1,130 +1,114 @@ -package contextMenuInterceptor; +package complex.contextMenuInterceptor; import com.sun.star.ui.*; -import com.sun.star.lang.XMultiServiceFactory; import com.sun.star.beans.XPropertySet; -import com.sun.star.container.XIndexContainer; import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.Exception; -import com.sun.star.beans.UnknownPropertyException; -import com.sun.star.lang.IllegalArgumentException; -public class ContextMenuInterceptor implements XContextMenuInterceptor { +public class ContextMenuInterceptor implements XContextMenuInterceptor +{ - private com.sun.star.awt.XBitmap myBitmap; - - public ContextMenuInterceptor( com.sun.star.awt.XBitmap aBitmap ) { - myBitmap = aBitmap; - } - - public ContextMenuInterceptorAction notifyContextMenuExecute( - com.sun.star.ui.ContextMenuExecuteEvent aEvent ) throws RuntimeException + private com.sun.star.awt.XBitmap myBitmap; + + public ContextMenuInterceptor(com.sun.star.awt.XBitmap aBitmap) + { + myBitmap = aBitmap; + } + + public ContextMenuInterceptorAction notifyContextMenuExecute( + com.sun.star.ui.ContextMenuExecuteEvent aEvent) throws RuntimeException { - try + try { // Retrieve context menu container and query for service factory to // create sub menus, menu entries and separators com.sun.star.container.XIndexContainer xContextMenu = aEvent.ActionTriggerContainer; com.sun.star.lang.XMultiServiceFactory xMenuElementFactory = - (com.sun.star.lang.XMultiServiceFactory)UnoRuntime.queryInterface( - com.sun.star.lang.XMultiServiceFactory.class, xContextMenu ); - - if ( xMenuElementFactory != null ) + UnoRuntime.queryInterface(com.sun.star.lang.XMultiServiceFactory.class, xContextMenu); + + if (xMenuElementFactory != null) { - + // create root menu entry for sub menu and sub menu com.sun.star.beans.XPropertySet xRootMenuEntry = - (XPropertySet)UnoRuntime.queryInterface( - com.sun.star.beans.XPropertySet.class, - xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger" )); - + UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger")); + // create a line separator for our new help sub menu com.sun.star.beans.XPropertySet xSeparator = - (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( - com.sun.star.beans.XPropertySet.class, - xMenuElementFactory.createInstance("com.sun.star.ui.ActionTriggerSeparator" ) ); - Short aSeparatorType = new Short( ActionTriggerSeparatorType.LINE ); - xSeparator.setPropertyValue( "SeparatorType", (Object)aSeparatorType ); - + UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTriggerSeparator")); + Short aSeparatorType = new Short(ActionTriggerSeparatorType.LINE); + xSeparator.setPropertyValue("SeparatorType", (Object) aSeparatorType); + // query sub menu for index container to get access com.sun.star.container.XIndexContainer xSubMenuContainer = - (com.sun.star.container.XIndexContainer)UnoRuntime.queryInterface( - com.sun.star.container.XIndexContainer.class, - xMenuElementFactory.createInstance("com.sun.star.ui.ActionTriggerContainer" )); - + UnoRuntime.queryInterface(com.sun.star.container.XIndexContainer.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTriggerContainer")); + // intialize root menu entry "Help" - xRootMenuEntry.setPropertyValue( "Text", new String( "Help" )); - xRootMenuEntry.setPropertyValue( "CommandURL", new String( "slot:5410" )); - xRootMenuEntry.setPropertyValue( "HelpURL", new String( "5410" )); - xRootMenuEntry.setPropertyValue( "SubContainer", (Object)xSubMenuContainer ); - xRootMenuEntry.setPropertyValue( "Image", myBitmap ); - + xRootMenuEntry.setPropertyValue("Text", ("Help")); + xRootMenuEntry.setPropertyValue("CommandURL", ("slot:5410")); + xRootMenuEntry.setPropertyValue("HelpURL", ("5410")); + xRootMenuEntry.setPropertyValue("SubContainer", (Object) xSubMenuContainer); + xRootMenuEntry.setPropertyValue("Image", myBitmap); + // create menu entries for the new sub menu // intialize help/content menu entry // entry "Content" - XPropertySet xMenuEntry = (XPropertySet)UnoRuntime.queryInterface( - XPropertySet.class, xMenuElementFactory.createInstance ( - "com.sun.star.ui.ActionTrigger" )); - xMenuEntry.setPropertyValue( "Text", new String( "Content" )); - xMenuEntry.setPropertyValue( "CommandURL", new String( "slot:5401" )); - xMenuEntry.setPropertyValue( "HelpURL", new String( "5401" )); - + XPropertySet xMenuEntry = UnoRuntime.queryInterface(XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger")); + xMenuEntry.setPropertyValue("Text", ("Content")); + xMenuEntry.setPropertyValue("CommandURL", ("slot:5401")); + xMenuEntry.setPropertyValue("HelpURL", ("5401")); + // insert menu entry to sub menu - xSubMenuContainer.insertByIndex ( 0, (Object)xMenuEntry ); - + xSubMenuContainer.insertByIndex(0, (Object) xMenuEntry); + // intialize help/help agent // entry "Help Agent" - xMenuEntry = (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( - com.sun.star.beans.XPropertySet.class, - xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger" )); - xMenuEntry.setPropertyValue( "Text", new String( "Help Agent" )); - xMenuEntry.setPropertyValue( "CommandURL", new String( "slot:5962" )); - xMenuEntry.setPropertyValue( "HelpURL", new String( "5962" )); - + xMenuEntry = UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger")); + xMenuEntry.setPropertyValue("Text", ("Help Agent")); + xMenuEntry.setPropertyValue("CommandURL", ("slot:5962")); + xMenuEntry.setPropertyValue("HelpURL", ("5962")); + // insert menu entry to sub menu - xSubMenuContainer.insertByIndex( 1, (Object)xMenuEntry ); + xSubMenuContainer.insertByIndex(1, (Object) xMenuEntry); // intialize help/tips // entry "Tips" - xMenuEntry = (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( - com.sun.star.beans.XPropertySet.class, - xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger" )); - xMenuEntry.setPropertyValue( "Text", new String( "Tips" )); - xMenuEntry.setPropertyValue( "CommandURL", new String( "slot:5404" )); - xMenuEntry.setPropertyValue( "HelpURL", new String( "5404" )); + xMenuEntry = UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger")); + xMenuEntry.setPropertyValue("Text", ("Tips")); + xMenuEntry.setPropertyValue("CommandURL", ("slot:5404")); + xMenuEntry.setPropertyValue("HelpURL", ("5404")); // insert menu entry to sub menu - xSubMenuContainer.insertByIndex ( 2, (Object)xMenuEntry ); - + xSubMenuContainer.insertByIndex(2, (Object) xMenuEntry); + // add separator into the given context menu - xContextMenu.insertByIndex ( 0, (Object)xSeparator ); - + xContextMenu.insertByIndex(0, (Object) xSeparator); + // add new sub menu into the given context menu - xContextMenu.insertByIndex ( 0, (Object)xRootMenuEntry ); - + xContextMenu.insertByIndex(0, (Object) xRootMenuEntry); + // The controller should execute the modified context menu and stop notifying other // interceptors. - return com.sun.star.ui.ContextMenuInterceptorAction.EXECUTE_MODIFIED ; + return com.sun.star.ui.ContextMenuInterceptorAction.EXECUTE_MODIFIED; } } - catch ( com.sun.star.beans.UnknownPropertyException ex ) + catch (com.sun.star.beans.UnknownPropertyException ex) { // do something useful // we used a unknown property } - catch ( com.sun.star.lang.IndexOutOfBoundsException ex ) + catch (com.sun.star.lang.IndexOutOfBoundsException ex) { // do something useful // we used an invalid index for accessing a container } - catch ( com.sun.star.uno.Exception ex ) + catch (com.sun.star.uno.Exception ex) { // something strange has happend! } - catch ( java.lang.Throwable ex ) + catch (java.lang.Throwable ex) { - // catch java exceptions � do something useful + // catch java exceptions do something useful } - + return com.sun.star.ui.ContextMenuInterceptorAction.IGNORED; } } |