xref: /aoo4110/main/odk/examples/java/Text/SWriter.java (revision b1cdbd2c)
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 //***************************************************************************
25*b1cdbd2cSJim Jagielski // comment: Step 1: bootstrap UNO and get the remote component context
26*b1cdbd2cSJim Jagielski //          Step 2: open an empty text document
27*b1cdbd2cSJim Jagielski //          Step 3: enter some text
28*b1cdbd2cSJim Jagielski //          Step 4: insert a text table
29*b1cdbd2cSJim Jagielski //          Step 5: insert colored text
30*b1cdbd2cSJim Jagielski //          Step 6: insert a text frame
31*b1cdbd2cSJim Jagielski //***************************************************************************
32*b1cdbd2cSJim Jagielski 
33*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime;
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski public class SWriter  {
36*b1cdbd2cSJim Jagielski 
main(String args[])37*b1cdbd2cSJim Jagielski     public static void main(String args[]) {
38*b1cdbd2cSJim Jagielski 
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski         //oooooooooooooooooooooooooooStep 1oooooooooooooooooooooooooooooooooooooooo
41*b1cdbd2cSJim Jagielski         // bootstrap UNO and get the remote component context. The context can
42*b1cdbd2cSJim Jagielski         // be used to get the service manager
43*b1cdbd2cSJim Jagielski         //*************************************************************************
44*b1cdbd2cSJim Jagielski         com.sun.star.uno.XComponentContext xContext = null;
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski         try {
47*b1cdbd2cSJim Jagielski             // get the remote office component context
48*b1cdbd2cSJim Jagielski             xContext = com.sun.star.comp.helper.Bootstrap.bootstrap();
49*b1cdbd2cSJim Jagielski             if( xContext != null )
50*b1cdbd2cSJim Jagielski                 System.out.println("Connected to a running office ...");
51*b1cdbd2cSJim Jagielski         }
52*b1cdbd2cSJim Jagielski         catch( Exception e) {
53*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
54*b1cdbd2cSJim Jagielski             System.exit(1);
55*b1cdbd2cSJim Jagielski         }
56*b1cdbd2cSJim Jagielski 
57*b1cdbd2cSJim Jagielski         //oooooooooooooooooooooooooooStep 2oooooooooooooooooooooooooooooooooooooooo
58*b1cdbd2cSJim Jagielski         // open an empty document. In this case it's a writer document.
59*b1cdbd2cSJim Jagielski         // For this purpose an instance of com.sun.star.frame.Desktop
60*b1cdbd2cSJim Jagielski         // is created. It's interface XDesktop provides the XComponentLoader,
61*b1cdbd2cSJim Jagielski         // which is used to open the document via loadComponentFromURL
62*b1cdbd2cSJim Jagielski         //*************************************************************************
63*b1cdbd2cSJim Jagielski 
64*b1cdbd2cSJim Jagielski         //Open Writer document
65*b1cdbd2cSJim Jagielski 
66*b1cdbd2cSJim Jagielski         System.out.println("Opening an empty Writer document");
67*b1cdbd2cSJim Jagielski         com.sun.star.text.XTextDocument myDoc = openWriter(xContext);
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski         //*************************************************************************
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski 
72*b1cdbd2cSJim Jagielski         //oooooooooooooooooooooooooooStep 3oooooooooooooooooooooooooooooooooooooooo
73*b1cdbd2cSJim Jagielski         // insert some text.
74*b1cdbd2cSJim Jagielski         // For this purpose get the Text-Object of the document an create the
75*b1cdbd2cSJim Jagielski         // cursor. Now it is possible to insert a text at the cursor-position
76*b1cdbd2cSJim Jagielski         // via insertString
77*b1cdbd2cSJim Jagielski         //*************************************************************************
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski 
80*b1cdbd2cSJim Jagielski         //getting the text object
81*b1cdbd2cSJim Jagielski         com.sun.star.text.XText xText = myDoc.getText();
82*b1cdbd2cSJim Jagielski 
83*b1cdbd2cSJim Jagielski         //create a cursor object
84*b1cdbd2cSJim Jagielski         com.sun.star.text.XTextCursor xTCursor = xText.createTextCursor();
85*b1cdbd2cSJim Jagielski 
86*b1cdbd2cSJim Jagielski         //inserting some Text
87*b1cdbd2cSJim Jagielski         xText.insertString( xTCursor, "The first line in the newly created text document.\n", false );
88*b1cdbd2cSJim Jagielski 
89*b1cdbd2cSJim Jagielski         //inserting a second line
90*b1cdbd2cSJim Jagielski         xText.insertString( xTCursor, "Now we're in the second line\n", false );
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski         //*************************************************************************
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski 
95*b1cdbd2cSJim Jagielski         //oooooooooooooooooooooooooooStep 4oooooooooooooooooooooooooooooooooooooooo
96*b1cdbd2cSJim Jagielski         // insert a text table.
97*b1cdbd2cSJim Jagielski         // For this purpose get MultiServiceFactory of the document, create an
98*b1cdbd2cSJim Jagielski         // instance of com.sun.star.text.TextTable and initialize it. Now it can
99*b1cdbd2cSJim Jagielski         // be inserted at the cursor position via insertTextContent.
100*b1cdbd2cSJim Jagielski         // After that some properties are changed and some data is inserted.
101*b1cdbd2cSJim Jagielski         //*************************************************************************
102*b1cdbd2cSJim Jagielski 
103*b1cdbd2cSJim Jagielski         //inserting a text table
104*b1cdbd2cSJim Jagielski         System.out.println("Inserting a text table");
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski         //getting MSF of the document
107*b1cdbd2cSJim Jagielski         com.sun.star.lang.XMultiServiceFactory xDocMSF =
108*b1cdbd2cSJim Jagielski             (com.sun.star.lang.XMultiServiceFactory) UnoRuntime.queryInterface(
109*b1cdbd2cSJim Jagielski                 com.sun.star.lang.XMultiServiceFactory.class, myDoc);
110*b1cdbd2cSJim Jagielski 
111*b1cdbd2cSJim Jagielski         //create instance of a text table
112*b1cdbd2cSJim Jagielski         com.sun.star.text.XTextTable xTT = null;
113*b1cdbd2cSJim Jagielski 
114*b1cdbd2cSJim Jagielski         try {
115*b1cdbd2cSJim Jagielski             Object oInt = xDocMSF.createInstance("com.sun.star.text.TextTable");
116*b1cdbd2cSJim Jagielski             xTT = (com.sun.star.text.XTextTable)
117*b1cdbd2cSJim Jagielski                 UnoRuntime.queryInterface(com.sun.star.text.XTextTable.class,oInt);
118*b1cdbd2cSJim Jagielski         } catch (Exception e) {
119*b1cdbd2cSJim Jagielski             System.err.println("Couldn't create instance "+ e);
120*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
121*b1cdbd2cSJim Jagielski         }
122*b1cdbd2cSJim Jagielski 
123*b1cdbd2cSJim Jagielski         //initialize the text table with 4 columns an 4 rows
124*b1cdbd2cSJim Jagielski         xTT.initialize(4,4);
125*b1cdbd2cSJim Jagielski 
126*b1cdbd2cSJim Jagielski         com.sun.star.beans.XPropertySet xTTRowPS = null;
127*b1cdbd2cSJim Jagielski 
128*b1cdbd2cSJim Jagielski         //insert the table
129*b1cdbd2cSJim Jagielski         try {
130*b1cdbd2cSJim Jagielski             xText.insertTextContent(xTCursor, xTT, false);
131*b1cdbd2cSJim Jagielski             // get first Row
132*b1cdbd2cSJim Jagielski             com.sun.star.container.XIndexAccess xTTRows = xTT.getRows();
133*b1cdbd2cSJim Jagielski             xTTRowPS = (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
134*b1cdbd2cSJim Jagielski                 com.sun.star.beans.XPropertySet.class, xTTRows.getByIndex(0));
135*b1cdbd2cSJim Jagielski 
136*b1cdbd2cSJim Jagielski         } catch (Exception e) {
137*b1cdbd2cSJim Jagielski             System.err.println("Couldn't insert the table " + e);
138*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
139*b1cdbd2cSJim Jagielski         }
140*b1cdbd2cSJim Jagielski 
141*b1cdbd2cSJim Jagielski 
142*b1cdbd2cSJim Jagielski         // get the property set of the text table
143*b1cdbd2cSJim Jagielski 
144*b1cdbd2cSJim Jagielski         com.sun.star.beans.XPropertySet xTTPS = (com.sun.star.beans.XPropertySet)
145*b1cdbd2cSJim Jagielski             UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xTT);
146*b1cdbd2cSJim Jagielski 
147*b1cdbd2cSJim Jagielski         // Change the BackColor
148*b1cdbd2cSJim Jagielski         try {
149*b1cdbd2cSJim Jagielski             xTTPS.setPropertyValue("BackTransparent", new Boolean(false));
150*b1cdbd2cSJim Jagielski             xTTPS.setPropertyValue("BackColor",new Integer(13421823));
151*b1cdbd2cSJim Jagielski             xTTRowPS.setPropertyValue("BackTransparent", new Boolean(false));
152*b1cdbd2cSJim Jagielski             xTTRowPS.setPropertyValue("BackColor",new Integer(6710932));
153*b1cdbd2cSJim Jagielski 
154*b1cdbd2cSJim Jagielski         } catch (Exception e) {
155*b1cdbd2cSJim Jagielski             System.err.println("Couldn't change the color " + e);
156*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
157*b1cdbd2cSJim Jagielski         }
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski         // write Text in the Table headers
160*b1cdbd2cSJim Jagielski         System.out.println("Write text in the table headers");
161*b1cdbd2cSJim Jagielski 
162*b1cdbd2cSJim Jagielski         insertIntoCell("A1","FirstColumn", xTT);
163*b1cdbd2cSJim Jagielski         insertIntoCell("B1","SecondColumn", xTT) ;
164*b1cdbd2cSJim Jagielski         insertIntoCell("C1","ThirdColumn", xTT) ;
165*b1cdbd2cSJim Jagielski         insertIntoCell("D1","SUM", xTT) ;
166*b1cdbd2cSJim Jagielski 
167*b1cdbd2cSJim Jagielski 
168*b1cdbd2cSJim Jagielski         //Insert Something in the text table
169*b1cdbd2cSJim Jagielski         System.out.println("Insert something in the text table");
170*b1cdbd2cSJim Jagielski 
171*b1cdbd2cSJim Jagielski         (xTT.getCellByName("A2")).setValue(22.5);
172*b1cdbd2cSJim Jagielski         (xTT.getCellByName("B2")).setValue(5615.3);
173*b1cdbd2cSJim Jagielski         (xTT.getCellByName("C2")).setValue(-2315.7);
174*b1cdbd2cSJim Jagielski         (xTT.getCellByName("D2")).setFormula("sum <A2:C2>");
175*b1cdbd2cSJim Jagielski 
176*b1cdbd2cSJim Jagielski         (xTT.getCellByName("A3")).setValue(21.5);
177*b1cdbd2cSJim Jagielski         (xTT.getCellByName("B3")).setValue(615.3);
178*b1cdbd2cSJim Jagielski         (xTT.getCellByName("C3")).setValue(-315.7);
179*b1cdbd2cSJim Jagielski         (xTT.getCellByName("D3")).setFormula("sum <A3:C3>");
180*b1cdbd2cSJim Jagielski 
181*b1cdbd2cSJim Jagielski         (xTT.getCellByName("A4")).setValue(121.5);
182*b1cdbd2cSJim Jagielski         (xTT.getCellByName("B4")).setValue(-615.3);
183*b1cdbd2cSJim Jagielski         (xTT.getCellByName("C4")).setValue(415.7);
184*b1cdbd2cSJim Jagielski         (xTT.getCellByName("D4")).setFormula("sum <A4:C4>");
185*b1cdbd2cSJim Jagielski 
186*b1cdbd2cSJim Jagielski 
187*b1cdbd2cSJim Jagielski         //oooooooooooooooooooooooooooStep 5oooooooooooooooooooooooooooooooooooooooo
188*b1cdbd2cSJim Jagielski         // insert a colored text.
189*b1cdbd2cSJim Jagielski         // Get the propertySet of the cursor, change the CharColor and add a
190*b1cdbd2cSJim Jagielski         // shadow. Then insert the Text via InsertString at the cursor position.
191*b1cdbd2cSJim Jagielski         //*************************************************************************
192*b1cdbd2cSJim Jagielski 
193*b1cdbd2cSJim Jagielski         // get the property set of the cursor
194*b1cdbd2cSJim Jagielski         com.sun.star.beans.XPropertySet xTCPS = (com.sun.star.beans.XPropertySet)
195*b1cdbd2cSJim Jagielski             UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class,
196*b1cdbd2cSJim Jagielski                                       xTCursor);
197*b1cdbd2cSJim Jagielski 
198*b1cdbd2cSJim Jagielski         Object oldValue = null;
199*b1cdbd2cSJim Jagielski 
200*b1cdbd2cSJim Jagielski         // Change the CharColor and add a Shadow
201*b1cdbd2cSJim Jagielski         try {
202*b1cdbd2cSJim Jagielski             xTCPS.setPropertyValue("CharColor",new Integer(255));
203*b1cdbd2cSJim Jagielski             xTCPS.setPropertyValue("CharShadowed", new Boolean(true));
204*b1cdbd2cSJim Jagielski         } catch (Exception e) {
205*b1cdbd2cSJim Jagielski             System.err.println("Couldn't change the color " + e);
206*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
207*b1cdbd2cSJim Jagielski         }
208*b1cdbd2cSJim Jagielski 
209*b1cdbd2cSJim Jagielski         //create a paragraph break
210*b1cdbd2cSJim Jagielski         try {
211*b1cdbd2cSJim Jagielski             xText.insertControlCharacter(xTCursor,
212*b1cdbd2cSJim Jagielski                       com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, false);
213*b1cdbd2cSJim Jagielski 
214*b1cdbd2cSJim Jagielski         } catch (Exception e) {
215*b1cdbd2cSJim Jagielski             System.err.println("Couldn't insert break "+ e);
216*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
217*b1cdbd2cSJim Jagielski         }
218*b1cdbd2cSJim Jagielski 
219*b1cdbd2cSJim Jagielski         //inserting colored Text
220*b1cdbd2cSJim Jagielski         System.out.println("Inserting colored Text");
221*b1cdbd2cSJim Jagielski 
222*b1cdbd2cSJim Jagielski         xText.insertString(xTCursor, " This is a colored Text - blue with shadow\n",
223*b1cdbd2cSJim Jagielski                            false );
224*b1cdbd2cSJim Jagielski 
225*b1cdbd2cSJim Jagielski         //create a paragraph break
226*b1cdbd2cSJim Jagielski         try {
227*b1cdbd2cSJim Jagielski             xText.insertControlCharacter(xTCursor,
228*b1cdbd2cSJim Jagielski                       com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, false);
229*b1cdbd2cSJim Jagielski 
230*b1cdbd2cSJim Jagielski         } catch (Exception e) {
231*b1cdbd2cSJim Jagielski             System.err.println("Couldn't insert break "+ e);
232*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
233*b1cdbd2cSJim Jagielski         }
234*b1cdbd2cSJim Jagielski 
235*b1cdbd2cSJim Jagielski         //oooooooooooooooooooooooooooStep 6oooooooooooooooooooooooooooooooooooooooo
236*b1cdbd2cSJim Jagielski         // insert a text frame.
237*b1cdbd2cSJim Jagielski         // create an instance of com.sun.star.text.TextFrame using the MSF of the
238*b1cdbd2cSJim Jagielski         // document. Change some properties an insert it.
239*b1cdbd2cSJim Jagielski         // Now get the text-Object of the frame an the corresponding cursor.
240*b1cdbd2cSJim Jagielski         // Insert some text via insertString.
241*b1cdbd2cSJim Jagielski         //*************************************************************************
242*b1cdbd2cSJim Jagielski 
243*b1cdbd2cSJim Jagielski         // Create a TextFrame
244*b1cdbd2cSJim Jagielski         com.sun.star.text.XTextFrame xTF = null;
245*b1cdbd2cSJim Jagielski         com.sun.star.drawing.XShape xTFS = null;
246*b1cdbd2cSJim Jagielski 
247*b1cdbd2cSJim Jagielski         try {
248*b1cdbd2cSJim Jagielski             Object oInt = xDocMSF.createInstance("com.sun.star.text.TextFrame");
249*b1cdbd2cSJim Jagielski             xTF = (com.sun.star.text.XTextFrame) UnoRuntime.queryInterface(
250*b1cdbd2cSJim Jagielski                 com.sun.star.text.XTextFrame.class,oInt);
251*b1cdbd2cSJim Jagielski             xTFS = (com.sun.star.drawing.XShape) UnoRuntime.queryInterface(
252*b1cdbd2cSJim Jagielski                 com.sun.star.drawing.XShape.class,oInt);
253*b1cdbd2cSJim Jagielski 
254*b1cdbd2cSJim Jagielski             com.sun.star.awt.Size aSize = new com.sun.star.awt.Size();
255*b1cdbd2cSJim Jagielski             aSize.Height = 400;
256*b1cdbd2cSJim Jagielski             aSize.Width = 15000;
257*b1cdbd2cSJim Jagielski 
258*b1cdbd2cSJim Jagielski             xTFS.setSize(aSize);
259*b1cdbd2cSJim Jagielski         } catch (Exception e) {
260*b1cdbd2cSJim Jagielski             System.err.println("Couldn't create instance "+ e);
261*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
262*b1cdbd2cSJim Jagielski         }
263*b1cdbd2cSJim Jagielski 
264*b1cdbd2cSJim Jagielski         // get the property set of the text frame
265*b1cdbd2cSJim Jagielski         com.sun.star.beans.XPropertySet xTFPS = (com.sun.star.beans.XPropertySet)
266*b1cdbd2cSJim Jagielski             UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xTF);
267*b1cdbd2cSJim Jagielski 
268*b1cdbd2cSJim Jagielski         // Change the AnchorType
269*b1cdbd2cSJim Jagielski         try {
270*b1cdbd2cSJim Jagielski             xTFPS.setPropertyValue("AnchorType",
271*b1cdbd2cSJim Jagielski                       com.sun.star.text.TextContentAnchorType.AS_CHARACTER);
272*b1cdbd2cSJim Jagielski         } catch (Exception e) {
273*b1cdbd2cSJim Jagielski             System.err.println("Couldn't change the color " + e);
274*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
275*b1cdbd2cSJim Jagielski         }
276*b1cdbd2cSJim Jagielski 
277*b1cdbd2cSJim Jagielski         //insert the frame
278*b1cdbd2cSJim Jagielski         System.out.println("Insert the text frame");
279*b1cdbd2cSJim Jagielski 
280*b1cdbd2cSJim Jagielski         try {
281*b1cdbd2cSJim Jagielski             xText.insertTextContent(xTCursor, xTF, false);
282*b1cdbd2cSJim Jagielski         } catch (Exception e) {
283*b1cdbd2cSJim Jagielski             System.err.println("Couldn't insert the frame " + e);
284*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
285*b1cdbd2cSJim Jagielski         }
286*b1cdbd2cSJim Jagielski 
287*b1cdbd2cSJim Jagielski         //getting the text object of Frame
288*b1cdbd2cSJim Jagielski         com.sun.star.text.XText xTextF = xTF.getText();
289*b1cdbd2cSJim Jagielski 
290*b1cdbd2cSJim Jagielski         //create a cursor object
291*b1cdbd2cSJim Jagielski         com.sun.star.text.XTextCursor xTCF = xTextF.createTextCursor();
292*b1cdbd2cSJim Jagielski 
293*b1cdbd2cSJim Jagielski         //inserting some Text
294*b1cdbd2cSJim Jagielski         xTextF.insertString(xTCF,
295*b1cdbd2cSJim Jagielski                  "The first line in the newly created text frame.", false);
296*b1cdbd2cSJim Jagielski 
297*b1cdbd2cSJim Jagielski 
298*b1cdbd2cSJim Jagielski         xTextF.insertString(xTCF,
299*b1cdbd2cSJim Jagielski                  "\nWith this second line the height of the frame raises.", false);
300*b1cdbd2cSJim Jagielski 
301*b1cdbd2cSJim Jagielski         //insert a paragraph break
302*b1cdbd2cSJim Jagielski         try {
303*b1cdbd2cSJim Jagielski             xText.insertControlCharacter(xTCursor,
304*b1cdbd2cSJim Jagielski                       com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, false );
305*b1cdbd2cSJim Jagielski 
306*b1cdbd2cSJim Jagielski         } catch (Exception e) {
307*b1cdbd2cSJim Jagielski             System.err.println("Couldn't insert break "+ e);
308*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
309*b1cdbd2cSJim Jagielski         }
310*b1cdbd2cSJim Jagielski 
311*b1cdbd2cSJim Jagielski         // Change the CharColor and add a Shadow
312*b1cdbd2cSJim Jagielski         try {
313*b1cdbd2cSJim Jagielski             xTCPS.setPropertyValue("CharColor",new Integer(65536));
314*b1cdbd2cSJim Jagielski             xTCPS.setPropertyValue("CharShadowed", new Boolean(false));
315*b1cdbd2cSJim Jagielski         } catch (Exception e) {
316*b1cdbd2cSJim Jagielski             System.err.println("Couldn't change the color " + e);
317*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
318*b1cdbd2cSJim Jagielski         }
319*b1cdbd2cSJim Jagielski 
320*b1cdbd2cSJim Jagielski         xText.insertString(xTCursor, " That's all for now !!", false );
321*b1cdbd2cSJim Jagielski 
322*b1cdbd2cSJim Jagielski         System.out.println("done");
323*b1cdbd2cSJim Jagielski 
324*b1cdbd2cSJim Jagielski         System.exit(0);
325*b1cdbd2cSJim Jagielski     }
326*b1cdbd2cSJim Jagielski 
327*b1cdbd2cSJim Jagielski 
openWriter( com.sun.star.uno.XComponentContext xContext)328*b1cdbd2cSJim Jagielski     public static com.sun.star.text.XTextDocument openWriter(
329*b1cdbd2cSJim Jagielski         com.sun.star.uno.XComponentContext xContext)
330*b1cdbd2cSJim Jagielski     {
331*b1cdbd2cSJim Jagielski         //define variables
332*b1cdbd2cSJim Jagielski         com.sun.star.frame.XComponentLoader xCLoader;
333*b1cdbd2cSJim Jagielski         com.sun.star.text.XTextDocument xDoc = null;
334*b1cdbd2cSJim Jagielski         com.sun.star.lang.XComponent xComp = null;
335*b1cdbd2cSJim Jagielski 
336*b1cdbd2cSJim Jagielski         try {
337*b1cdbd2cSJim Jagielski             // get the remote office service manager
338*b1cdbd2cSJim Jagielski             com.sun.star.lang.XMultiComponentFactory xMCF =
339*b1cdbd2cSJim Jagielski                 xContext.getServiceManager();
340*b1cdbd2cSJim Jagielski 
341*b1cdbd2cSJim Jagielski             Object oDesktop = xMCF.createInstanceWithContext(
342*b1cdbd2cSJim Jagielski                                         "com.sun.star.frame.Desktop", xContext);
343*b1cdbd2cSJim Jagielski 
344*b1cdbd2cSJim Jagielski             xCLoader = (com.sun.star.frame.XComponentLoader)
345*b1cdbd2cSJim Jagielski                 UnoRuntime.queryInterface(com.sun.star.frame.XComponentLoader.class,
346*b1cdbd2cSJim Jagielski                                           oDesktop);
347*b1cdbd2cSJim Jagielski             com.sun.star.beans.PropertyValue [] szEmptyArgs =
348*b1cdbd2cSJim Jagielski                 new com.sun.star.beans.PropertyValue [0];
349*b1cdbd2cSJim Jagielski             String strDoc = "private:factory/swriter";
350*b1cdbd2cSJim Jagielski             xComp = xCLoader.loadComponentFromURL(strDoc, "_blank", 0, szEmptyArgs);
351*b1cdbd2cSJim Jagielski             xDoc = (com.sun.star.text.XTextDocument)
352*b1cdbd2cSJim Jagielski                 UnoRuntime.queryInterface(com.sun.star.text.XTextDocument.class,
353*b1cdbd2cSJim Jagielski                                           xComp);
354*b1cdbd2cSJim Jagielski 
355*b1cdbd2cSJim Jagielski         } catch(Exception e){
356*b1cdbd2cSJim Jagielski             System.err.println(" Exception " + e);
357*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
358*b1cdbd2cSJim Jagielski         }
359*b1cdbd2cSJim Jagielski         return xDoc;
360*b1cdbd2cSJim Jagielski     }
361*b1cdbd2cSJim Jagielski 
insertIntoCell(String CellName, String theText, com.sun.star.text.XTextTable xTTbl)362*b1cdbd2cSJim Jagielski     public static void insertIntoCell(String CellName, String theText,
363*b1cdbd2cSJim Jagielski                                       com.sun.star.text.XTextTable xTTbl) {
364*b1cdbd2cSJim Jagielski 
365*b1cdbd2cSJim Jagielski         com.sun.star.text.XText xTableText = (com.sun.star.text.XText)
366*b1cdbd2cSJim Jagielski             UnoRuntime.queryInterface(com.sun.star.text.XText.class,
367*b1cdbd2cSJim Jagielski                                       xTTbl.getCellByName(CellName));
368*b1cdbd2cSJim Jagielski 
369*b1cdbd2cSJim Jagielski         //create a cursor object
370*b1cdbd2cSJim Jagielski         com.sun.star.text.XTextCursor xTC = xTableText.createTextCursor();
371*b1cdbd2cSJim Jagielski 
372*b1cdbd2cSJim Jagielski         com.sun.star.beans.XPropertySet xTPS = (com.sun.star.beans.XPropertySet)
373*b1cdbd2cSJim Jagielski             UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xTC);
374*b1cdbd2cSJim Jagielski 
375*b1cdbd2cSJim Jagielski         try {
376*b1cdbd2cSJim Jagielski             xTPS.setPropertyValue("CharColor",new Integer(16777215));
377*b1cdbd2cSJim Jagielski         } catch (Exception e) {
378*b1cdbd2cSJim Jagielski             System.err.println(" Exception " + e);
379*b1cdbd2cSJim Jagielski             e.printStackTrace(System.err);
380*b1cdbd2cSJim Jagielski         }
381*b1cdbd2cSJim Jagielski 
382*b1cdbd2cSJim Jagielski         //inserting some Text
383*b1cdbd2cSJim Jagielski         xTableText.setString( theText );
384*b1cdbd2cSJim Jagielski 
385*b1cdbd2cSJim Jagielski     }
386*b1cdbd2cSJim Jagielski }
387