summaryrefslogtreecommitdiff
path: root/qadevOOo/tests/basic/ifc/beans/XMultiPropertySet/beans_XMultiPropertySet.xba
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/basic/ifc/beans/XMultiPropertySet/beans_XMultiPropertySet.xba')
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XMultiPropertySet/beans_XMultiPropertySet.xba295
1 files changed, 295 insertions, 0 deletions
diff --git a/qadevOOo/tests/basic/ifc/beans/XMultiPropertySet/beans_XMultiPropertySet.xba b/qadevOOo/tests/basic/ifc/beans/XMultiPropertySet/beans_XMultiPropertySet.xba
new file mode 100644
index 000000000000..f006b961f937
--- /dev/null
+++ b/qadevOOo/tests/basic/ifc/beans/XMultiPropertySet/beans_XMultiPropertySet.xba
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="beans_XMultiPropertySet" script:language="StarBasic">
+
+
+'*************************************************************************
+'*
+'* $RCSfile: beans_XMultiPropertySet.xba,v $
+'*
+'* $Revision: 1.1 $
+'*
+'* last change:$Date: 2003-01-27 17:44:56 $
+'*
+'* The Contents of this file are made available subject to the terms of
+'* either of the following licenses
+'*
+'* - GNU Lesser General Public License Version 2.1
+'* - Sun Industry Standards Source License Version 1.1
+'*
+'* Sun Microsystems Inc., October, 2000
+'*
+'* GNU Lesser General Public License Version 2.1
+'* =============================================
+'* Copyright 2000 by Sun Microsystems, Inc.
+'* 901 San Antonio Road, Palo Alto, CA 94303, USA
+'*
+'* This library is free software; you can redistribute it and/or
+'* modify it under the terms of the GNU Lesser General Public
+'* License version 2.1, as published by the Free Software Foundation.
+'*
+'* This library 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 for more details.
+'*
+'* You should have received a copy of the GNU Lesser General Public
+'* License along with this library; if not, write to the Free Software
+'* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+'* MA 02111-1307 USA
+'*
+'*
+'* Sun Industry Standards Source License Version 1.1
+'* =================================================
+'* The contents of this file are subject to the Sun Industry Standards
+'* Source License Version 1.1 (the "License"); You may not use this file
+'* except in compliance with the License. You may obtain a copy of the
+'* License at http://www.openoffice.org/license.html.
+'*
+'* Software provided under this License is provided on an "AS IS" basis,
+'* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+'* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+'* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+'* See the License for the specific provisions governing your rights and
+'* obligations concerning the Software.
+'*
+'* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+'*
+'* Copyright: 2000 by Sun Microsystems, Inc.
+'*
+'* All Rights Reserved.
+'*
+'* Contributor(s): _______________________________________
+'*
+'*
+'*************************************************************************
+'*************************************************************************
+
+
+
+' Be sure that all variables are dimensioned:
+option explicit
+
+
+Dim nCB1Val As Integer, nCB2Val As Integer
+
+
+Sub RunTest()
+
+'*************************************************************************
+' INTERFACE:
+' com.sun.star.beans.XMultiPropertySet
+'*************************************************************************
+On Error Goto ErrHndl
+ Dim bOK As Boolean
+ Dim oPropertySetInfo As Object
+ Dim oProperties As Variant
+ Dim aProp(0 to 1) As new com.sun.star.beans.PropertyValue
+ Dim cType As String
+ Dim oListener1 As Object, oListener2 As Object
+ Dim n As Integer, nMem As Integer, nIndex As Integer
+ Dim m As Integer
+ Dim bFound As Boolean
+ Dim nCount As Integer
+ Dim bBoolean As Boolean
+ Dim nInteger As Integer
+ Dim nLong As Long
+ Dim nSingle As Single
+ Dim nDouble As Double
+ Dim vMemVal As Variant
+ Dim nCB1ValMem As Integer
+ Dim nCB2ValMem As Integer
+
+ bOK = true
+ bFound = false
+ nCB1Val = 0
+ nCB2Val = 0
+ m = 0
+ oPropertySetInfo = oObj.GetPropertySetInfo
+ oProperties = oPropertySetInfo.Properties
+ nCount = uBound(oProperties)
+ Out.Log("The Object has " + nCount + " properties"
+
+ Out.Log("Create linsteners...")
+ oListener1 = createUNOListener("CB1_","com.sun.star.beans.XPropertiesChangeListener")
+ oListener2 = createUNOListener("CB2_","com.sun.star.beans.XPropertiesChangeListener")
+ Out.Log("oListener1 and oListener2 created"
+
+ 'create sequences of Propertie-Names and Values
+ 'fist get the amount of valid properties
+ for n = 0 to (nCount)
+ 'look for readonly-properties
+ If (oProperties(n).Attributes AND com.sun.star.beans.PropertyAttribute.READONLY) = 0 Then
+ 'look for MAYBEVOID-Properties
+ If (oProperties(n).Attributes AND com.sun.star.beans.PropertyAttribute.MAYBEVOID) = 0 Then
+ 'is the Property testable
+ m = m + 1
+ End If
+ End If
+ next n
+
+ Out.Log("Amount of testable properites (without readonly and MAYBEVOID) is " + m)
+
+ 'now store the names in sProperites
+ Dim searchProperties(0 to m-1) As String
+ m = 0
+ for n = 0 to (nCount)
+ 'kick off readonly-properties
+ If (oProperties(n).Attributes AND com.sun.star.beans.PropertyAttribute.READONLY) = 0 Then
+ 'kick off MYBEVOID-Properties
+ If (oProperties(n).Attributes AND com.sun.star.beans.PropertyAttribute.MAYBEVOID) = 0 Then
+ searchProperties(m) = oProperties(n).Name
+ Out.Log("" + m + " " + searchProperties(m) + " " + oObj.getPropertySetInfo.getPropertyByName(searchProperties(m)).Type.Name + " " + n)
+ Dim pVal As Variant
+
+ pVal = oObj.getPropertyValue(searchProperties(m))
+ oObj.setPropertyValues(Array(searchProperties(m)), Array(pVal))
+ m = m + 1
+ End If
+ End If
+ next n
+ nCount = m - 1
+
+ Dim sProperties(0 to nCount) As String
+ Dim vValues(0 to nCount) As Variant
+ For n = 0 to nCount
+ sProperties(n) = searchProperties(n)
+ next n
+
+ vValues() = oObj.getPropertyValues(sProperties())
+
+ 'add ChangeListener
+ oObj.addPropertiesChangeListener(sProperties(),oListener1)
+ oObj.addPropertiesChangeListener(sProperties(),oListener2)
+ Out.Log("oListener1 and oListener2 added to object")
+
+ nIndex = 0
+ nMem = nIndex
+ 'find at first a Boolean Value, if not available a String Property
+ While (NOT bFound) AND ((nCount &gt;= nIndex))
+ 'get the property-type
+ cType = oObj.getPropertySetInfo.getPropertyByName(sProperties(nIndex)).Type.Name
+ If cType = "boolean" Then ' it is a Boolean Proerty
+ bFound = true
+ nMem = nIndex
+ else
+ If cType = "string" Then ' it is a String Property
+ nMem = nIndex
+ end if
+ end if
+ nIndex = nIndex + 1
+ Wend
+
+ nIndex = nIndex - 1
+ Out.Log("Property to change is: """ + sProperties(nIndex) + """ Type: """ + oObj.getPropertySetInfo.getPropertyByName(sProperties(nIndex)).Type.Name + """")
+ nIndex = nMem
+
+ 'memory the old Value
+ vMemVal = vValues(nIndex)
+
+ 'change a value of a property, hopefully a boolean or string property
+ select case VarType(vValues(nIndex)
+ case 11 'boolean
+ bBoolean = NOT vValues(nIndex)
+ vValues(nIndex) = bBoolean
+ case 2 'integer
+ nInteger = vValues(nIndex) + 1
+ vValues(nIndex) = nInteger
+ case 3 'long
+ nLong = vValues(nIndex) + 1
+ vValues(nIndex) = nLong
+ case 4 'single
+ nSingle = vValues(nIndex) + 1
+ vValues(nIndex) = nSingle
+ case 5 'double
+ nDouble = vValues(nIndex) + 1
+ vValues(nIndex) = nDouble
+ case 8 'string
+ vValues(nIndex) = vValues(nIndex) + cIfcShortName
+ end select
+
+ Test.StartMethod("getPropertySetInfo()")
+ bOK = bOK AND (uBound(oProperties) &gt; 0)
+ Test.MethodTested("getPropertySetInfo()", bOK)
+
+ Test.StartMethod("getPropertyValues()")
+ bOK = bOK AND (uBound(vValues()) &gt; 0)
+ Test.MethodTested("getPropertyValues()", bOK)
+
+ Test.StartMethod("setPropertyValues()")
+ oObj.setPropertyValues(sProperties(), vValues())
+ vValues() = oObj.getPropertyValues(sProperties())
+ bOK = bOK AND (vValues(nIndex) &lt;&gt; vMemVal)
+ Test.MethodTested("setPropertyValues()", bOK)
+
+ Test.StartMethod("addPropertiesChangeListener()")
+ bOK = (nCB1Val &gt;= 1) AND (nCB2Val &gt;= 1)
+ nCB1ValMem = nCB1Val
+ nCB2ValMem = nCb2Val
+ Test.MethodTested("addPropertiesChangeListener()", bOK)
+
+ 'fire !!!
+ Out.Log("Try to fire property change event...")
+ oObj.firePropertiesChangeEvent(sProperties(),oListener1)
+ oObj.firePropertiesChangeEvent(sProperties(),oListener2)
+
+ Test.StartMethod("firePropertiesChangeEvent()")
+ bOK = (nCB1Val &gt;= nCB1ValMem) AND (nCB2Val &gt;= nCB2ValMem)
+ Test.MethodTested("firePropertiesChangeEvent()", bOK)
+ nCB1ValMem = nCB1Val
+ nCB2ValMem = nCb2Val
+
+
+ 'remove one Listener and fire
+ Test.StartMethod("removePropertiesChangeListener()")
+ oObj.removePropertiesChangeListener(oListener1)
+ Out.Log("oListener1 removed")
+ select case VarType(vValues(nIndex)
+ case 11 'boolean
+ bBoolean = NOT vValues(nIndex)
+ vValues(nIndex) = bBoolean
+ case 2 'integer
+ nInteger = vValues(nIndex) + 1
+ vValues(nIndex) = nInteger
+ case 3 'long
+ nLong = vValues(nIndex) + 1
+ vValues(nIndex) = nLong
+ case 4 'single
+ nSingle = vValues(nIndex) + 1
+ vValues(nIndex) = nSingle
+ case 5 'double
+ nDouble = vValues(nIndex) + 1
+ vValues(nIndex) = nDouble
+ case 8 'string
+ vValues(nIndex) = vValues(nIndex) + cIfcShortName
+ end select
+
+ Out.Log("The property '" + sProperties(nIndex) + "' was changed")
+
+ oObj.setPropertyValues(sProperties(), vValues())
+
+ bOK = (nCB1Val = nCB1ValMem) AND (nCB2Val &gt;= nCB2ValMem)
+ Test.MethodTested("removePropertiesChangeListener()", bOK)
+
+ 'remove the last Listener
+ oObj.removePropertiesChangeListener(oListener2)
+ Out.Log("oListener2 removed")
+
+
+Exit Sub
+ErrHndl:
+ Test.Exception()
+ bOK = false
+ resume next
+End Sub
+'callback routine called firePropertiesChangeEvent
+Sub CB1_propertiesChange
+ Out.Log("CallBack for Listener 1 was called.")
+ nCB1Val = nCB1Val + 1
+end Sub
+
+Sub CB2_propertiesChange
+ Out.Log("CallBack for Listener 2 was called.")
+ nCB2Val = nCB2Val + 1
+end Sub
+</script:module>