1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> 3<script:module xmlns:script="http://openoffice.org/2000/script" script:name="container_XNameReplace" script:language="StarBasic"> 4 5 6'************************************************************************* 7' 8' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 9' 10' Copyright 2000, 2010 Oracle and/or its affiliates. 11' 12' OpenOffice.org - a multi-platform office productivity suite 13' 14' This file is part of OpenOffice.org. 15' 16' OpenOffice.org is free software: you can redistribute it and/or modify 17' it under the terms of the GNU Lesser General Public License version 3 18' only, as published by the Free Software Foundation. 19' 20' OpenOffice.org is distributed in the hope that it will be useful, 21' but WITHOUT ANY WARRANTY; without even the implied warranty of 22' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23' GNU Lesser General Public License version 3 for more details 24' (a copy is included in the LICENSE file that accompanied this code). 25' 26' You should have received a copy of the GNU Lesser General Public License 27' version 3 along with OpenOffice.org. If not, see 28' <http://www.openoffice.org/license.html> 29' for a copy of the LGPLv3 License. 30' 31'************************************************************************* 32'************************************************************************* 33 34 35 36' Be sure that all variables are dimensioned: 37option explicit 38 39'************************************************************************* 40' This Interface/Service test depends on the following GLOBAL variables, 41' which must be specified in the object creation: 42 43' Global cNameToReplace As String 'name of instance to be replased 44' Global oReplaceInstance As Variant 'instance, that will be inserted 45' instead old one 46 47'************************************************************************* 48 49Sub RunTest() 50 51'************************************************************************* 52' INTERFACE: 53' com.sun.star.container.XNameReplace 54'************************************************************************* 55On Error Goto ErrHndl 56 Dim bOK As Boolean 57 Dim oOldObject As Object 58 Dim cOldObjName As String 59 Dim oNewControl As Object 60 Dim cNewObjName As String 61 Dim NewAddress As Object 62 Dim InstAddress As Object 63 Dim cReplInstName As String 64 65 Test.StartMethod("replaceByName()") 66 bOK = true 67 68 if (cObjectName = "sc.ScCellRangesObj") then 69 oOldObject = oObj.getByName(cNameToReplace) 70 InstAddress = oReplaceInstance.getRangeAddress 71 72 oObj.replaceByName(cNameToReplace, oReplaceInstance) 73 74 oNewControl = oObj.getByName(cNameToReplace) 75 NewAddress = oNewControl.getRangeAddress 76 77 bOK = bOK AND NewAddress.Sheet = InstAddress.Sheet 78 bOK = bOK AND NewAddress.StartColumn = InstAddress.StartColumn 79 bOK = bOK AND NewAddress.EndColumn = InstAddress.EndColumn 80 bOK = bOK AND NewAddress.StartRow = InstAddress.StartRow 81 bOK = bOK AND NewAddress.EndRow = InstAddress.EndRow 82 83 elseif typename(oReplaceInstance) = "String" then 84 Dim oNewObj as Variant 85 Dim oOldObj as Variant 86 oOldObj = oObj.getByName(cNameToReplace) 87 oObj.replaceByName(cNameToReplace, oReplaceInstance) 88 oNewObj = oObj.getByName(cNameToReplace) 89 bOK = bOK and not PropertyTester.equals(oOldObj, oNewObj) 90 else 91 oOldObject = oObj.getByName(cNameToReplace) 92 cReplInstName = oReplaceInstance.Name 93 Out.Log("ReplaceInstance.name = '" & cReplInstName & "'") 94 cOldObjName = oOldObject.Name 95 Out.Log("OldObject.name = '" & cOldObjName & "'") 96 97 oObj.replaceByName(cNameToReplace, oReplaceInstance) 98 oNewControl = oObj.getByName(cNameToReplace) 99 100 cReplInstName = oReplaceInstance.Name 101 Out.Log("ReplaceInstance.name = '" & cReplInstName & "'") 102 cNewObjName = oNewControl.Name 103 Out.Log("NewObject.name = '" & cNewObjName & "'") 104 105 bOK = bOK AND (oReplaceInstance.Name = cNameToReplace) 106 end if 107 108 Test.MethodTested("replaceByName()", bOK) 109 110Exit Sub 111ErrHndl: 112 Test.Exception() 113 bOK = false 114 resume next 115End Sub 116</script:module> 117