'************************************************************************* ' ' 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: form_XUpdateBroadcaster.xba,v $ ' ' $Revision: 1.3 $ ' ' 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: ' - Global bCustomUpdate As Boolean ' properties are not changed to call listener ' Sub UpdateComponent() '************************************************************************* Const BOUND = 2 Const CONSTRAINED = 4 Const MAYBENULL = 8 Const READONLY = 16 Dim oListener1 As Object Dim oListener2 As Object Dim nCB1appVal As Boolean Dim nCB2appVal As Boolean Dim nCB1updVal As Boolean Dim nCB2updVal As Boolean Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.form.XUpdateBroadcaster '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim bAllOK As Boolean Out.Log("Creating Listeners...") oListener1 = createUNOListener("CB1_","com.sun.star.form.XUpdateListener") oListener2 = createUNOListener("CB2_","com.sun.star.form.XUpdateListener") bOK = NOT isNULL(oListener1) AND NOT isNULL(oListener2) CountersReset() bAllOK = bOK Test.StartMethod("addUpdateListener()") bOK = true oObj.addUpdateListener(oListener1) oObj.addUpdateListener(oListener2) if bCustomUpdate then Out.Log("Object specific update function was called.") UpdateComponent() else Out.Log("Interfacetest update function was called.") TryToUpdate() end if wait(1000) bOK = bOK AND nCB1appVal AND nCB2appVal AND nCB1updVal AND nCB2updVal Test.MethodTested("addUpdateListener()", bOK) Test.StartMethod("removeUpdateListener()") bOK = true Out.Log("Removing Listener 1") oObj.removeUpdateListener(oListener1) countersReset() if bCustomUpdate then Out.Log("Object specific update function was called.") UpdateComponent() else Out.Log("Interfacetest update function was called.") TryToUpdate() end if wait(1000) bOK = bOK AND NOT nCB1appVal AND nCB2appVal AND NOT nCB1updVal AND nCB2updVal Test.MethodTested("removeUpdateListener()", bOK) Out.Log("Removing Listener 2") oObj.removeUpdateListener(oListener2) Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub Function CB1_approveUpdate As Boolean Out.Log("CallBack for Listener1 approveUpdate was called.") nCB1appVal = TRUE CB1_approveUpdate = TRUE End Function Function CB2_approveUpdate As Boolean Out.Log("CallBack for Listener2 approveUpdate was called.") nCB2appVal = TRUE CB2_approveUpdate = TRUE End Function Sub CB1_Updated Out.Log("CallBack for Listener1 Updated was called.") nCB1updVal = TRUE End Sub Sub CB2_Updated Out.Log("CallBack for Listener2 Updated was called.") nCB2updVal = TRUE End Sub Sub TryToUpdate() Dim i as Integer Dim props as Variant, attr As Variant if hasUnoInterfaces(oObj, "com.sun.star.beans.XPropertySet") then props() = oObj.getPropertySetInfo().getProperties() for i = lbound(props()) to ubound(props()) PropertyTester.TestProperty(props(i).Name) next i else Out.Log("XPropertySet isn't supported.") end if End Sub Sub countersReset() nCB1updVal = FALSE nCB2updVal = FALSE nCB1appVal = FALSE nCB2appVal = FALSE End sub