merge the formfield patch from ooo-build
[ooovba.git] / testautomation / global / tools / includes / optional / t_ole.inc
blob457704f20b13c62e7586460438daf3d0495b900a
1 'encoding UTF-8  Do not remove or change this line!
2 '*******************************************************************************
3 '* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 '* 
5 '* Copyright 2008 by Sun Microsystems, Inc.
6 '*
7 '* OpenOffice.org - a multi-platform office productivity suite
8 '*
9 '* $RCSfile: basic_delete_modules.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 12:18:13 $
15 '* This file is part of OpenOffice.org.
17 '* OpenOffice.org is free software: you can redistribute it and/or modify
18 '* it under the terms of the GNU Lesser General Public License version 3
19 '* only, as published by the Free Software Foundation.
21 '* OpenOffice.org is distributed in the hope that it will be useful,
22 '* but WITHOUT ANY WARRANTY; without even the implied warranty of
23 '* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24 '* GNU Lesser General Public License version 3 for more details
25 '* (a copy is included in the LICENSE file that accompanied this code).
27 '* You should have received a copy of the GNU Lesser General Public License
28 '* version 3 along with OpenOffice.org.  If not, see
29 '* <http://www.openoffice.org/license.html>
30 '* for a copy of the LGPLv3 License.
32 '/******************************************************************************
34 '*  owner : joerg.skottke@sun.com
36 '*  short description : Tools for OLE objects
38 '\******************************************************************************
40 private const VERBOSE = FALSE
42 '*******************************************************************************
44 function hGetOfficeVersion() as string
46     dim cPath as string
47     dim aItemList( 20 ) as string
48     
49     const CFN = "global::tools::includes::optional::t_ole.inc::hGetOfficeVersion(): "
51     ' Path to info file
52     cPath = convertpath( gTesttoolPath & "global/input/officeinfo.txt" )
53     if ( VERBOSE ) then printlog( CFN & "Reading: " & cPath )
54     
55     ' Read the file
56     hGetDatafileSection( cPath, aItemList(), "", "", "" )
57     
58     ' Set global variable
59     gOfficeVersion = hGetValueForKeyAsString( aItemList(), gProductName )
60     
61     ' Set returnvalue
62     hGetOfficeVersion() = gOfficeVersion
63     
64 end function
66 '*******************************************************************************
68 function hGetOleObjectName( ObjectType as string ) as string\r
70     dim oUnoOfficeConnection as object\r
71     dim oUnoConfigurationAccess as object\r
72     dim aPropertyValue(1) as new com.sun.star.beans.PropertyValue\r
73     dim xViewRoot as object
74     dim cConfigString as string
75     dim cString as string\r
77     const CFN = "global::tools::includes::optional::t_ole.inc::hGetOleObjectName(): "
78     
79     ' Test function parameters. They are <> gApplication as the API is case sensitive
80     select case ObjectType
81     case "Writer"
82     case "Calc"
83     case "Impress"
84     case "Draw"
85     case "Math"
86     case "Chart"
87     case else
88         warnlog( CFN & "Invalid object type passed to function: " & ObjectType )
89         warnlog( CFN & "This function is case sensitive." )
90         warnlog( CFN & "Supported are: Writer, Calc, Impress, Draw, Math, Chart" )
91         hGetOleObjectName() = ""
92         exit function
93     end select
94     
95     if ( VERBOSE ) then printlog( CFN & "Retrieving OLE name for: " & ObjectType )
97     ' ...Embedding is physical path, ObjectNames the top node\r
98     aPropertyValue( 0 ).Name  = "nodepath"\r
99     aPropertyValue( 0 ).Value = "/org.openoffice.Office.Embedding/ObjectNames/" & ObjectType
100     
101     ' Connect to remote UNO\r
102     oUnoOfficeConnection = hGetUnoService( TRUE )\r
103     \r
104     if ( isNull( oUnoOfficeConnection )) then\r
105         warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )\r
106         hGetOleObjectName() = ""\r
107     else
108         ' Get a configuration provider\r
109         oUnoConfigurationAccess = oUnoOfficeConnection.createInstance( "com.sun.star.configuration.ConfigurationProvider" )
110         
111         ' Get access
112         xViewRoot = oUnoConfigurationAccess.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationAccess", aPropertyValue() )\r
113         cConfigString = xViewRoot.getByName( "ObjectUIName" )
114         
115         ' The string contains placeholders %PRODUCTNAME and %PRODUCTVERSION which have to be replaced
116         if ( gOfficeVersion = "" ) then
117             warnlog( CFN & "gOOoBaseVersion is empty, run hGetOfficeVersion() first" )
118             cString = right( cConfigString, len( cConfigString ) - 29 )
119         else
120             cString = gProductName & " " & gOfficeVersion & " " & right( cConfigString, len( cConfigString ) - 29 )
121         endif
122         \r
123     endif
124     
125     hGetOleObjectName() = cString\r
127 end function
129 '*******************************************************************************
131 function GetOleDefaultNames()
133     const CFN = "global::tools::includes::optional::t_ole.inc::GetOleDefaultNames(): "
134     if ( VERBOSE ) then printlog( CFN & "Retrieving OLE names" )
136     hGetOfficeVersion()
137     gOLEWriter  = hGetOleObjectName( "Writer"  )
138     gOLECalc    = hGetOleObjectName( "Calc"    )
139     gOLEChart   = hGetOleObjectName( "Chart"   )
140     gOLEImpress = hGetOleObjectName( "Impress" )
141     gOLEDraw    = hGetOleObjectName( "Draw"    )
142     gOLEMath    = hGetOleObjectName( "Math"    )    \r
144 end function
146 '*******************************************************************************