1*ef39d40dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*ef39d40dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*ef39d40dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*ef39d40dSAndrew Rist  * distributed with this work for additional information
6*ef39d40dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*ef39d40dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*ef39d40dSAndrew Rist  * "License"); you may not use this file except in compliance
9*ef39d40dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*ef39d40dSAndrew Rist  *
11*ef39d40dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*ef39d40dSAndrew Rist  *
13*ef39d40dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*ef39d40dSAndrew Rist  * software distributed under the License is distributed on an
15*ef39d40dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ef39d40dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*ef39d40dSAndrew Rist  * specific language governing permissions and limitations
18*ef39d40dSAndrew Rist  * under the License.
19*ef39d40dSAndrew Rist  *
20*ef39d40dSAndrew Rist  *************************************************************/
21*ef39d40dSAndrew Rist 
22*ef39d40dSAndrew Rist 
23cdf0e10cSrcweir package util;
24cdf0e10cSrcweir 
25cdf0e10cSrcweir import com.sun.star.beans.PropertyValue;
26cdf0e10cSrcweir import com.sun.star.beans.XPropertySet;
27cdf0e10cSrcweir import com.sun.star.container.XNamed;
28cdf0e10cSrcweir import com.sun.star.drawing.XDrawPage;
29cdf0e10cSrcweir import com.sun.star.drawing.XDrawPageSupplier;
30cdf0e10cSrcweir import com.sun.star.lang.XComponent;
31cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory;
32cdf0e10cSrcweir import com.sun.star.text.XText;
33cdf0e10cSrcweir import com.sun.star.text.XTextContent;
34cdf0e10cSrcweir import com.sun.star.text.XTextCursor;
35cdf0e10cSrcweir import com.sun.star.text.XTextDocument;
36cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime;
37cdf0e10cSrcweir 
38cdf0e10cSrcweir // access the implementations via names
39cdf0e10cSrcweir import com.sun.star.uno.XInterface;
40cdf0e10cSrcweir 
41cdf0e10cSrcweir import util.DesktopTools;
42cdf0e10cSrcweir 
43cdf0e10cSrcweir 
44cdf0e10cSrcweir public class WriterTools {
createTextDoc(XMultiServiceFactory xMSF)45cdf0e10cSrcweir     public static XTextDocument createTextDoc(XMultiServiceFactory xMSF) {
46cdf0e10cSrcweir         PropertyValue[] Args = new PropertyValue[0];
47cdf0e10cSrcweir         XComponent comp = DesktopTools.openNewDoc(xMSF, "swriter", Args);
48cdf0e10cSrcweir         XTextDocument WriterDoc = (XTextDocument) UnoRuntime.queryInterface(
49cdf0e10cSrcweir                                           XTextDocument.class, comp);
50cdf0e10cSrcweir 
51cdf0e10cSrcweir         return WriterDoc;
52cdf0e10cSrcweir     } // finish createTextDoc
53cdf0e10cSrcweir 
loadTextDoc(XMultiServiceFactory xMSF, String url)54cdf0e10cSrcweir     public static XTextDocument loadTextDoc(XMultiServiceFactory xMSF,
55cdf0e10cSrcweir                                             String url) {
56cdf0e10cSrcweir         PropertyValue[] Args = new PropertyValue[0];
57cdf0e10cSrcweir         XTextDocument WriterDoc = loadTextDoc(xMSF, url, Args);
58cdf0e10cSrcweir 
59cdf0e10cSrcweir         return WriterDoc;
60cdf0e10cSrcweir     } // finish createTextDoc
61cdf0e10cSrcweir 
loadTextDoc(XMultiServiceFactory xMSF, String url, PropertyValue[] Args)62cdf0e10cSrcweir     public static XTextDocument loadTextDoc(XMultiServiceFactory xMSF,
63cdf0e10cSrcweir                                             String url, PropertyValue[] Args) {
64cdf0e10cSrcweir         XComponent comp = DesktopTools.loadDoc(xMSF, url, Args);
65cdf0e10cSrcweir         XTextDocument WriterDoc = (XTextDocument) UnoRuntime.queryInterface(
66cdf0e10cSrcweir                                           XTextDocument.class, comp);
67cdf0e10cSrcweir 
68cdf0e10cSrcweir         return WriterDoc;
69cdf0e10cSrcweir     } // finish createTextDoc
70cdf0e10cSrcweir 
getDrawPage(XTextDocument aDoc)71cdf0e10cSrcweir     public static XDrawPage getDrawPage(XTextDocument aDoc) {
72cdf0e10cSrcweir         XDrawPage oDP = null;
73cdf0e10cSrcweir 
74cdf0e10cSrcweir         try {
75cdf0e10cSrcweir             XDrawPageSupplier oDPS = (XDrawPageSupplier) UnoRuntime.queryInterface(
76cdf0e10cSrcweir                                              XDrawPageSupplier.class, aDoc);
77cdf0e10cSrcweir             oDP = (XDrawPage) oDPS.getDrawPage();
78cdf0e10cSrcweir         } catch (Exception e) {
79cdf0e10cSrcweir             throw new IllegalArgumentException("Couldn't get drawpage");
80cdf0e10cSrcweir         }
81cdf0e10cSrcweir 
82cdf0e10cSrcweir         return oDP;
83cdf0e10cSrcweir     }
84cdf0e10cSrcweir 
insertTextGraphic(XTextDocument aDoc, XMultiServiceFactory xMSF, int hpos, int vpos, int width, int height, String pic, String name)85cdf0e10cSrcweir     public static void insertTextGraphic(XTextDocument aDoc,
86cdf0e10cSrcweir                                          XMultiServiceFactory xMSF, int hpos,
87cdf0e10cSrcweir                                          int vpos, int width, int height,
88cdf0e10cSrcweir                                          String pic, String name) {
89cdf0e10cSrcweir         try {
90cdf0e10cSrcweir             Object oGObject = (XInterface) xMSF.createInstance(
91cdf0e10cSrcweir                                       "com.sun.star.text.GraphicObject");
92cdf0e10cSrcweir 
93cdf0e10cSrcweir             XText the_text = aDoc.getText();
94cdf0e10cSrcweir             XTextCursor the_cursor = the_text.createTextCursor();
95cdf0e10cSrcweir             XTextContent the_content = (XTextContent) UnoRuntime.queryInterface(
96cdf0e10cSrcweir                                                XTextContent.class, oGObject);
97cdf0e10cSrcweir             the_text.insertTextContent(the_cursor, the_content, true);
98cdf0e10cSrcweir 
99cdf0e10cSrcweir             XPropertySet oProps = (XPropertySet) UnoRuntime.queryInterface(
100cdf0e10cSrcweir                                           XPropertySet.class, oGObject);
101cdf0e10cSrcweir 
102cdf0e10cSrcweir             String fullURL = util.utils.getFullTestURL(pic);
103cdf0e10cSrcweir             oProps.setPropertyValue("GraphicURL", fullURL);
104cdf0e10cSrcweir             oProps.setPropertyValue("HoriOrientPosition", new Integer(hpos));
105cdf0e10cSrcweir             oProps.setPropertyValue("VertOrientPosition", new Integer(vpos));
106cdf0e10cSrcweir             oProps.setPropertyValue("Width", new Integer(width));
107cdf0e10cSrcweir             oProps.setPropertyValue("Height", new Integer(height));
108cdf0e10cSrcweir 
109cdf0e10cSrcweir             XNamed the_name = (XNamed) UnoRuntime.queryInterface(XNamed.class,
110cdf0e10cSrcweir                                                                  oGObject);
111cdf0e10cSrcweir             the_name.setName(name);
112cdf0e10cSrcweir         } catch (Exception ex) {
113cdf0e10cSrcweir             System.out.println("Exception while insertin TextGraphic");
114cdf0e10cSrcweir             ex.printStackTrace();
115cdf0e10cSrcweir         }
116cdf0e10cSrcweir     }
117cdf0e10cSrcweir }