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 = '" &amp; cReplInstName &amp; "'")
94        cOldObjName = oOldObject.Name
95        Out.Log("OldObject.name = '" &amp; cOldObjName &amp; "'")
96
97        oObj.replaceByName(cNameToReplace, oReplaceInstance)
98        oNewControl = oObj.getByName(cNameToReplace)
99
100        cReplInstName = oReplaceInstance.Name
101        Out.Log("ReplaceInstance.name = '" &amp; cReplInstName &amp; "'")
102        cNewObjName = oNewControl.Name
103        Out.Log("NewObject.name = '" &amp; cNewObjName &amp; "'")
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