'************************************************************************* '* ' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ' ' Copyright 2008 by Sun Microsystems, Inc. ' ' OpenOffice.org - a multi-platform office productivity suite ' ' $RCSfile: accessibility_XAccessibleEventBroadcaster.xba,v $ ' ' $Revision: 1.4 $ ' ' This file is part of OpenOffice.org. ' ' OpenOffice.org is free software: you can redistribute it and/or modify ' it under the terms of the GNU Lesser General Public License version 3 ' only, as published by the Free Software Foundation. ' ' OpenOffice.org is distributed in the hope that it will be useful, ' but WITHOUT ANY WARRANTY; without even the implied warranty of ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ' GNU Lesser General Public License version 3 for more details ' (a copy is included in the LICENSE file that accompanied this code). ' ' You should have received a copy of the GNU Lesser General Public License ' version 3 along with OpenOffice.org. If not, see ' ' for a copy of the LGPLv3 License. ' '************************************************************************* '************************************************************************* ' Be sure that all variables are dimensioned: option explicit '************************************************************************* ' This Interface/Service test depends on the following GLOBAL variables, ' which must be specified in the object creation: ' fireEvent() precedure ' located in component test '************************************************************************* Dim oListener1 As Object Dim oListener2 As Object Dim bL1called As Boolean Dim bL2called As Boolean Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.accessibility.XAccessibleEventBroadcaster '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim isTransient As Boolean Dim stateSet As Variant bOK = true 'out.log("Creating Listeners...") oListener1 = createUNOListener("EL1_","com.sun.star.accessibility.XAccessibleEventListener") oListener2 = createUNOListener("EL2_","com.sun.star.accessibility.XAccessibleEventListener") bOK = bOK AND NOT isNULL(oListener1) AND NOT isNULL(oListener2) if NOT bOK then out.log( "ERROR: Cannot create listeners...") if NOT hasUNOInterfaces(oObj,"com.sun.star.accessibility.XAccessibleContext") then 'out.log("Object does not implement XAccessibleContext.") isTransient = false else stateSet = oObj.getAccessibleStateSet() isTransient = stateSet.contains(27) End If Test.StartMethod("addEventListener()") bOK = true bL1called = false bL2called = false 'out.log("Adding two listeners...") oObj.com_sun_star_accessibility_XAccessibleEventBroadcaster_addEventListener(oListener1) oObj.com_sun_star_accessibility_XAccessibleEventBroadcaster_addEventListener(oListener2) 'out.log("fire event") fireEvent() wait(500) out.log("Listener1 called: "+bL1called) out.log("Listener2 called: "+bL2called) if NOT isTransient then bOK = bOK AND bL1called AND bL2called else 'out.log("Object is transient, listeners aren't expected to call.") bOK = true End If Test.MethodTested("addEventListener()",bOK) Test.StartMethod("removeEventListener()") bOK = true bL1called = false bL2called = false 'out.log("Removing one listener...") oObj.com_sun_star_accessibility_XAccessibleEventBroadcaster_removeEventListener(oListener1) 'out.log("fire event") fireEvent() wait(500) out.log("Listener1 called: "+bL1called) out.log("Listener2 called: "+bL2called) if NOT isTransient then bOK = bOK AND NOT bL1called AND bL2called else 'out.log("Object is transient, listeners aren't expected to call.") bOK = true End If Test.MethodTested("removeEventListener()",bOK) ' Removing the second listener... oObj.com_sun_star_accessibility_XAccessibleEventBroadcaster_removeEventListener(oListener2) Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub Sub EL1_notifyEvent(ev As Variant) 'out.log("CallBack for Listener1 notifyEvent was called.") bL1called = true End Sub Sub EL1_disposing() End Sub Sub EL2_notifyEvent(ev As Variant) 'out.log("CallBack for Listener2 notifyEvent was called.") bL2called = true End Sub Sub EL2_disposing() End Sub