1*b1cdbd2cSJim Jagielski<?xml version="1.0"?>
2*b1cdbd2cSJim Jagielski<component>
3*b1cdbd2cSJim Jagielski
4*b1cdbd2cSJim Jagielski<?component error="true" debug="true"?>
5*b1cdbd2cSJim Jagielski
6*b1cdbd2cSJim Jagielski<registration
7*b1cdbd2cSJim Jagielski	description="writerdemo script component"
8*b1cdbd2cSJim Jagielski	progid="dcomtest.writerdemo.WSC"
9*b1cdbd2cSJim Jagielski	version="1.00"
10*b1cdbd2cSJim Jagielski	classid="{90c5ca1a-5e38-4c6d-9634-b0c740c569ad}"
11*b1cdbd2cSJim Jagielski	remotable="true"
12*b1cdbd2cSJim Jagielski>
13*b1cdbd2cSJim Jagielski</registration>
14*b1cdbd2cSJim Jagielski
15*b1cdbd2cSJim Jagielski<public>
16*b1cdbd2cSJim Jagielski	<method name="run">
17*b1cdbd2cSJim Jagielski	</method>
18*b1cdbd2cSJim Jagielski</public>
19*b1cdbd2cSJim Jagielski
20*b1cdbd2cSJim Jagielski<script language="JScript">
21*b1cdbd2cSJim Jagielski<![CDATA[
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielskivar description = new jscripttest;
24*b1cdbd2cSJim Jagielski
25*b1cdbd2cSJim Jagielskifunction jscripttest()
26*b1cdbd2cSJim Jagielski{
27*b1cdbd2cSJim Jagielski
28*b1cdbd2cSJim Jagielski	this.run = run;
29*b1cdbd2cSJim Jagielski}
30*b1cdbd2cSJim Jagielski
31*b1cdbd2cSJim Jagielskifunction run()
32*b1cdbd2cSJim Jagielski{
33*b1cdbd2cSJim Jagielski//The service manager is always the starting point
34*b1cdbd2cSJim Jagielski//If there is no office running then an office is started up
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielskivar objServiceManager= new ActiveXObject("com.sun.star.ServiceManager","\\jl-1036");
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski//Create the CoreReflection service that is later used to create structs
39*b1cdbd2cSJim Jagielskivar objCoreReflection= objServiceManager.createInstance("com.sun.star.reflection.CoreReflection");
40*b1cdbd2cSJim Jagielski
41*b1cdbd2cSJim Jagielski//Create the Desktop
42*b1cdbd2cSJim Jagielskivar objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop");
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielski//Open a new empty writer document
45*b1cdbd2cSJim Jagielskivar objCoreReflection= objServiceManager.createInstance("com.sun.star.reflection.CoreReflection");
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim Jagielski//get a type description class for Size
48*b1cdbd2cSJim Jagielski//var propClass = objCoreReflection.forName( "com.sun.star.beans.PropertyValue" );
49*b1cdbd2cSJim Jagielski
50*b1cdbd2cSJim Jagielski//var propParam= new Array();
51*b1cdbd2cSJim Jagielski//propClass.createObject(propParam);
52*b1cdbd2cSJim Jagielski//var prop= propParam[0];
53*b1cdbd2cSJim Jagielski//prop.Name= "Hidden";
54*b1cdbd2cSJim Jagielski//prop.Value= true;
55*b1cdbd2cSJim Jagielski
56*b1cdbd2cSJim Jagielski//create the actual object
57*b1cdbd2cSJim Jagielskivar args= new Array();
58*b1cdbd2cSJim Jagielskivar objDocument= objDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args);
59*b1cdbd2cSJim Jagielski
60*b1cdbd2cSJim Jagielski//Create a text object
61*b1cdbd2cSJim Jagielskivar objText= objDocument.getText();
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielski//Create a cursor object
64*b1cdbd2cSJim Jagielskivar objCursor= objText.createTextCursor();
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski//Inserting some Text
67*b1cdbd2cSJim JagielskiobjText.insertString( objCursor, "The first line in the newly created text document.\n", false);
68*b1cdbd2cSJim Jagielski
69*b1cdbd2cSJim Jagielski//Inserting a second line
70*b1cdbd2cSJim JagielskiobjText.insertString( objCursor, "Now we're in the second line", false);
71*b1cdbd2cSJim Jagielski
72*b1cdbd2cSJim Jagielski//Create instance of a text table with 4 columns and 4 rows
73*b1cdbd2cSJim Jagielskivar objTable= objDocument.createInstance( "com.sun.star.text.TextTable");
74*b1cdbd2cSJim JagielskiobjTable.initialize( 4, 4);
75*b1cdbd2cSJim Jagielski
76*b1cdbd2cSJim Jagielski//Insert the table
77*b1cdbd2cSJim JagielskiobjText.insertTextContent( objCursor, objTable, false);
78*b1cdbd2cSJim Jagielski
79*b1cdbd2cSJim Jagielski//Get first row
80*b1cdbd2cSJim Jagielskivar objRows= objTable.getRows();
81*b1cdbd2cSJim Jagielskivar objRow= objRows.getByIndex( 0);
82*b1cdbd2cSJim Jagielski
83*b1cdbd2cSJim Jagielski//Set the table background color
84*b1cdbd2cSJim JagielskiobjTable.setPropertyValue( "BackTransparent", false);
85*b1cdbd2cSJim JagielskiobjTable.setPropertyValue( "BackColor", 13421823);
86*b1cdbd2cSJim Jagielski
87*b1cdbd2cSJim Jagielski//Set a different background color for the first row
88*b1cdbd2cSJim JagielskiobjRow.setPropertyValue( "BackTransparent", false);
89*b1cdbd2cSJim JagielskiobjRow.setPropertyValue( "BackColor", 6710932);
90*b1cdbd2cSJim Jagielski
91*b1cdbd2cSJim Jagielski//Fill the first table row
92*b1cdbd2cSJim JagielskiinsertIntoCell( "A1","FirstColumn", objTable);
93*b1cdbd2cSJim JagielskiinsertIntoCell( "B1","SecondColumn", objTable);
94*b1cdbd2cSJim JagielskiinsertIntoCell( "C1","ThirdColumn", objTable);
95*b1cdbd2cSJim JagielskiinsertIntoCell( "D1","SUM", objTable);
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski
98*b1cdbd2cSJim JagielskiobjTable.getCellByName("A2").setValue( 22.5);
99*b1cdbd2cSJim JagielskiobjTable.getCellByName("B2").setValue( 5615.3);
100*b1cdbd2cSJim JagielskiobjTable.getCellByName("C2").setValue( -2315.7);
101*b1cdbd2cSJim JagielskiobjTable.getCellByName("D2").setFormula("sum <A2:C2>");
102*b1cdbd2cSJim Jagielski
103*b1cdbd2cSJim JagielskiobjTable.getCellByName("A3").setValue( 21.5);
104*b1cdbd2cSJim JagielskiobjTable.getCellByName("B3").setValue( 615.3);
105*b1cdbd2cSJim JagielskiobjTable.getCellByName("C3").setValue( -315.7);
106*b1cdbd2cSJim JagielskiobjTable.getCellByName("D3").setFormula( "sum <A3:C3>");
107*b1cdbd2cSJim Jagielski
108*b1cdbd2cSJim JagielskiobjTable.getCellByName("A4").setValue( 121.5);
109*b1cdbd2cSJim JagielskiobjTable.getCellByName("B4").setValue( -615.3);
110*b1cdbd2cSJim JagielskiobjTable.getCellByName("C4").setValue( 415.7);
111*b1cdbd2cSJim JagielskiobjTable.getCellByName("D4").setFormula( "sum <A4:C4>");
112*b1cdbd2cSJim Jagielski
113*b1cdbd2cSJim Jagielski//Change the CharColor and add a Shadow
114*b1cdbd2cSJim JagielskiobjCursor.setPropertyValue( "CharColor", 255);
115*b1cdbd2cSJim JagielskiobjCursor.setPropertyValue( "CharShadowed", true);
116*b1cdbd2cSJim Jagielski
117*b1cdbd2cSJim Jagielski//Create a paragraph break
118*b1cdbd2cSJim Jagielski//The second argument is a com::sun::star::text::ControlCharacter::PARAGRAPH_BREAK constant
119*b1cdbd2cSJim JagielskiobjText.insertControlCharacter( objCursor, 0 , false);
120*b1cdbd2cSJim Jagielski
121*b1cdbd2cSJim Jagielski//Inserting colored Text.
122*b1cdbd2cSJim JagielskiobjText.insertString( objCursor, " This is a colored Text - blue with shadow\n", false);
123*b1cdbd2cSJim Jagielski
124*b1cdbd2cSJim Jagielski//Create a paragraph break ( ControlCharacter::PARAGRAPH_BREAK).
125*b1cdbd2cSJim JagielskiobjText.insertControlCharacter( objCursor, 0, false );
126*b1cdbd2cSJim Jagielski
127*b1cdbd2cSJim Jagielski//Create a TextFrame.
128*b1cdbd2cSJim Jagielskivar objTextFrame= objDocument.createInstance("com.sun.star.text.TextFrame");
129*b1cdbd2cSJim Jagielski
130*b1cdbd2cSJim Jagielski//Create a Size struct.
131*b1cdbd2cSJim Jagielskivar objSize= createStruct("com.sun.star.awt.Size");
132*b1cdbd2cSJim JagielskiobjSize.Width= 15000;
133*b1cdbd2cSJim JagielskiobjSize.Height= 400;
134*b1cdbd2cSJim JagielskiobjTextFrame.setSize( objSize);
135*b1cdbd2cSJim Jagielski
136*b1cdbd2cSJim Jagielski//TextContentAnchorType.AS_CHARACTER = 1
137*b1cdbd2cSJim JagielskiobjTextFrame.setPropertyValue( "AnchorType", 1);
138*b1cdbd2cSJim Jagielski
139*b1cdbd2cSJim Jagielski//insert the frame
140*b1cdbd2cSJim JagielskiobjText.insertTextContent( objCursor, objTextFrame, false);
141*b1cdbd2cSJim Jagielski
142*b1cdbd2cSJim Jagielski//Get the text object of the frame
143*b1cdbd2cSJim Jagielskivar objFrameText= objTextFrame.getText();
144*b1cdbd2cSJim Jagielski
145*b1cdbd2cSJim Jagielski//Create a cursor object
146*b1cdbd2cSJim Jagielskivar objFrameTextCursor= objFrameText.createTextCursor();
147*b1cdbd2cSJim Jagielski
148*b1cdbd2cSJim Jagielski//Inserting some Text
149*b1cdbd2cSJim JagielskiobjFrameText.insertString( objFrameTextCursor, "The first line in the newly created text frame.",
150*b1cdbd2cSJim Jagielski                          false);
151*b1cdbd2cSJim JagielskiobjFrameText.insertString(objFrameTextCursor,
152*b1cdbd2cSJim Jagielski                          "With this second line the height of the frame raises.", false );
153*b1cdbd2cSJim Jagielski
154*b1cdbd2cSJim Jagielski//Create a paragraph break
155*b1cdbd2cSJim Jagielski//The second argument is a com::sun::star::text::ControlCharacter::PARAGRAPH_BREAK constant
156*b1cdbd2cSJim JagielskiobjFrameText.insertControlCharacter( objCursor, 0 , false);
157*b1cdbd2cSJim Jagielski
158*b1cdbd2cSJim Jagielski//Change the CharColor and add a Shadow
159*b1cdbd2cSJim JagielskiobjCursor.setPropertyValue( "CharColor", 65536);
160*b1cdbd2cSJim JagielskiobjCursor.setPropertyValue( "CharShadowed", false);
161*b1cdbd2cSJim Jagielski
162*b1cdbd2cSJim Jagielski//Insert another string
163*b1cdbd2cSJim JagielskiobjText.insertString( objCursor, " That's all for now !!", false );
164*b1cdbd2cSJim Jagielski
165*b1cdbd2cSJim Jagielskifunction insertIntoCell( strCellName, strText, objTable)
166*b1cdbd2cSJim Jagielski{
167*b1cdbd2cSJim Jagielski    var objCellText= objTable.getCellByName( strCellName);
168*b1cdbd2cSJim Jagielski    var objCellCursor= objCellText.createTextCursor();
169*b1cdbd2cSJim Jagielski    objCellCursor.setPropertyValue( "CharColor",16777215);
170*b1cdbd2cSJim Jagielski    objCellText.insertString( objCellCursor, strText, false);
171*b1cdbd2cSJim Jagielski}
172*b1cdbd2cSJim Jagielskifunction createStruct( strTypeName)
173*b1cdbd2cSJim Jagielski{
174*b1cdbd2cSJim Jagielski    var classSize= objCoreReflection.forName( strTypeName);
175*b1cdbd2cSJim Jagielski    var aStruct= new Array();
176*b1cdbd2cSJim Jagielski    classSize.createObject( aStruct);
177*b1cdbd2cSJim Jagielski    return aStruct[0];
178*b1cdbd2cSJim Jagielski}
179*b1cdbd2cSJim Jagielski
180*b1cdbd2cSJim Jagielski
181*b1cdbd2cSJim Jagielski}
182*b1cdbd2cSJim Jagielski
183*b1cdbd2cSJim Jagielski]]>
184*b1cdbd2cSJim Jagielski</script>
185*b1cdbd2cSJim Jagielski
186*b1cdbd2cSJim Jagielski</component>
187