1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // __________ Imports __________
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime;
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski public class Helper
29*b1cdbd2cSJim Jagielski {
30*b1cdbd2cSJim Jagielski     // __________ static helper methods __________
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski     /** Connect to an office, if no office is running a new instance is started.
33*b1cdbd2cSJim Jagielski      * A new connection is established and the service manger from the running
34*b1cdbd2cSJim Jagielski      * offic eis returned.
35*b1cdbd2cSJim Jagielski      */
connect()36*b1cdbd2cSJim Jagielski     static public com.sun.star.uno.XComponentContext connect()
37*b1cdbd2cSJim Jagielski 		throws Exception
38*b1cdbd2cSJim Jagielski     {
39*b1cdbd2cSJim Jagielski         // get the remote office component context
40*b1cdbd2cSJim Jagielski         com.sun.star.uno.XComponentContext xOfficeContext =
41*b1cdbd2cSJim Jagielski             com.sun.star.comp.helper.Bootstrap.bootstrap();
42*b1cdbd2cSJim Jagielski 
43*b1cdbd2cSJim Jagielski         // if connection fails an exception is thrown
44*b1cdbd2cSJim Jagielski         System.out.println("Connected to a running office ...");
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski 		return xOfficeContext;
47*b1cdbd2cSJim Jagielski     }
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski     /** creates and instantiates new document
50*b1cdbd2cSJim Jagielski 	*/
createDocument( com.sun.star.uno.XComponentContext xOfficeContext, String sURL, String sTargetFrame, int nSearchFlags, com.sun.star.beans.PropertyValue[] aArgs )51*b1cdbd2cSJim Jagielski 	static public com.sun.star.lang.XComponent createDocument(
52*b1cdbd2cSJim Jagielski         com.sun.star.uno.XComponentContext xOfficeContext,
53*b1cdbd2cSJim Jagielski 		String sURL, String sTargetFrame, int nSearchFlags,
54*b1cdbd2cSJim Jagielski         com.sun.star.beans.PropertyValue[] aArgs )
55*b1cdbd2cSJim Jagielski 			throws Exception
56*b1cdbd2cSJim Jagielski 	{
57*b1cdbd2cSJim Jagielski 		com.sun.star.lang.XComponent xComponent = null;
58*b1cdbd2cSJim Jagielski 		com.sun.star.frame.XComponentLoader aLoader =
59*b1cdbd2cSJim Jagielski             (com.sun.star.frame.XComponentLoader)UnoRuntime.queryInterface(
60*b1cdbd2cSJim Jagielski                 com.sun.star.frame.XComponentLoader.class,
61*b1cdbd2cSJim Jagielski 				xOfficeContext.getServiceManager().createInstanceWithContext(
62*b1cdbd2cSJim Jagielski                     "com.sun.star.frame.Desktop", xOfficeContext));
63*b1cdbd2cSJim Jagielski 
64*b1cdbd2cSJim Jagielski 		xComponent = (com.sun.star.lang.XComponent)UnoRuntime.queryInterface(
65*b1cdbd2cSJim Jagielski             com.sun.star.lang.XComponent.class, aLoader.loadComponentFromURL(
66*b1cdbd2cSJim Jagielski 				sURL, sTargetFrame, nSearchFlags, aArgs ) );
67*b1cdbd2cSJim Jagielski 
68*b1cdbd2cSJim Jagielski 		if ( xComponent == null )
69*b1cdbd2cSJim Jagielski 			throw new Exception( "could not create document: " + sURL );
70*b1cdbd2cSJim Jagielski 		return xComponent;
71*b1cdbd2cSJim Jagielski 	}
72*b1cdbd2cSJim Jagielski }
73