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.xba261
1 files changed, 261 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..7ad82a14a229
--- /dev/null
+++ b/qadevOOo/tests/basic/ifc/beans/XMultiPropertySet/beans_XMultiPropertySet.xba
@@ -0,0 +1,261 @@
+<?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">
+
+
+'*************************************************************************
+'
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+'
+' Copyright 2000, 2010 Oracle and/or its affiliates.
+'
+' OpenOffice.org - a multi-platform office productivity suite
+'
+' 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
+' <http://www.openoffice.org/license.html>
+' for a copy of the LGPLv3 License.
+'
+'*************************************************************************
+'*************************************************************************
+
+
+
+' 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>