diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /extensions/test/ole/DCOM/scriptComponents | |
parent | Initial commit. (diff) | |
download | libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'extensions/test/ole/DCOM/scriptComponents')
-rw-r--r-- | extensions/test/ole/DCOM/scriptComponents/WriterDemo.wsc | 186 | ||||
-rw-r--r-- | extensions/test/ole/DCOM/scriptComponents/readme.txt | 12 |
2 files changed, 198 insertions, 0 deletions
diff --git a/extensions/test/ole/DCOM/scriptComponents/WriterDemo.wsc b/extensions/test/ole/DCOM/scriptComponents/WriterDemo.wsc new file mode 100644 index 000000000..51419022f --- /dev/null +++ b/extensions/test/ole/DCOM/scriptComponents/WriterDemo.wsc @@ -0,0 +1,186 @@ +<?xml version="1.0"?> +<component> + +<?component error="true" debug="true"?> + +<registration + description="writerdemo script component" + progid="dcomtest.writerdemo.WSC" + version="1.00" + classid="{90c5ca1a-5e38-4c6d-9634-b0c740c569ad}" + remotable="true" +> +</registration> + +<public> + <method name="run"> + </method> +</public> + +<script language="JScript"> +<![CDATA[ + +var description = new jscripttest; + +function jscripttest() +{ + + this.run = run; +} + +function run() +{ +//The service manager is always the starting point +//If there is no office running then an office is started up + +var objServiceManager= new ActiveXObject("com.sun.star.ServiceManager","\\jl-1036"); + +//Create the CoreReflection service that is later used to create structs +var objCoreReflection= objServiceManager.createInstance("com.sun.star.reflection.CoreReflection"); + +//Create the Desktop +var objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop"); + +//Open a new empty writer document +var objCoreReflection= objServiceManager.createInstance("com.sun.star.reflection.CoreReflection"); + +//get a type description class for Size +//var propClass = objCoreReflection.forName( "com.sun.star.beans.PropertyValue" ); + +//var propParam= new Array(); +//propClass.createObject(propParam); +//var prop= propParam[0]; +//prop.Name= "Hidden"; +//prop.Value= true; + +//create the actual object +var args= new Array(); +var objDocument= objDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args); + +//Create a text object +var objText= objDocument.getText(); + +//Create a cursor object +var objCursor= objText.createTextCursor(); + +//Inserting some Text +objText.insertString( objCursor, "The first line in the newly created text document.\n", false); + +//Inserting a second line +objText.insertString( objCursor, "Now we're in the second line", false); + +//Create instance of a text table with 4 columns and 4 rows +var objTable= objDocument.createInstance( "com.sun.star.text.TextTable"); +objTable.initialize( 4, 4); + +//Insert the table +objText.insertTextContent( objCursor, objTable, false); + +//Get first row +var objRows= objTable.getRows(); +var objRow= objRows.getByIndex( 0); + +//Set the table background color +objTable.setPropertyValue( "BackTransparent", false); +objTable.setPropertyValue( "BackColor", 13421823); + +//Set a different background color for the first row +objRow.setPropertyValue( "BackTransparent", false); +objRow.setPropertyValue( "BackColor", 6710932); + +//Fill the first table row +insertIntoCell( "A1","FirstColumn", objTable); +insertIntoCell( "B1","SecondColumn", objTable); +insertIntoCell( "C1","ThirdColumn", objTable); +insertIntoCell( "D1","SUM", objTable); + + +objTable.getCellByName("A2").setValue( 22.5); +objTable.getCellByName("B2").setValue( 5615.3); +objTable.getCellByName("C2").setValue( -2315.7); +objTable.getCellByName("D2").setFormula("sum <A2:C2>"); + +objTable.getCellByName("A3").setValue( 21.5); +objTable.getCellByName("B3").setValue( 615.3); +objTable.getCellByName("C3").setValue( -315.7); +objTable.getCellByName("D3").setFormula( "sum <A3:C3>"); + +objTable.getCellByName("A4").setValue( 121.5); +objTable.getCellByName("B4").setValue( -615.3); +objTable.getCellByName("C4").setValue( 415.7); +objTable.getCellByName("D4").setFormula( "sum <A4:C4>"); + +//Change the CharColor and add a Shadow +objCursor.setPropertyValue( "CharColor", 255); +objCursor.setPropertyValue( "CharShadowed", true); + +//Create a paragraph break +//The second argument is a css::text::ControlCharacter::PARAGRAPH_BREAK constant +objText.insertControlCharacter( objCursor, 0 , false); + +//Inserting colored Text. +objText.insertString( objCursor, " This is a colored Text - blue with shadow\n", false); + +//Create a paragraph break ( ControlCharacter::PARAGRAPH_BREAK). +objText.insertControlCharacter( objCursor, 0, false ); + +//Create a TextFrame. +var objTextFrame= objDocument.createInstance("com.sun.star.text.TextFrame"); + +//Create a Size struct. +var objSize= createStruct("com.sun.star.awt.Size"); +objSize.Width= 15000; +objSize.Height= 400; +objTextFrame.setSize( objSize); + +//TextContentAnchorType.AS_CHARACTER = 1 +objTextFrame.setPropertyValue( "AnchorType", 1); + +//insert the frame +objText.insertTextContent( objCursor, objTextFrame, false); + +//Get the text object of the frame +var objFrameText= objTextFrame.getText(); + +//Create a cursor object +var objFrameTextCursor= objFrameText.createTextCursor(); + +//Inserting some Text +objFrameText.insertString( objFrameTextCursor, "The first line in the newly created text frame.", + false); +objFrameText.insertString(objFrameTextCursor, + "With this second line the height of the frame raises.", false ); + +//Create a paragraph break +//The second argument is a css::text::ControlCharacter::PARAGRAPH_BREAK constant +objFrameText.insertControlCharacter( objCursor, 0 , false); + +//Change the CharColor and add a Shadow +objCursor.setPropertyValue( "CharColor", 65536); +objCursor.setPropertyValue( "CharShadowed", false); + +//Insert another string +objText.insertString( objCursor, " That's all for now !!", false ); + +function insertIntoCell( strCellName, strText, objTable) +{ + var objCellText= objTable.getCellByName( strCellName); + var objCellCursor= objCellText.createTextCursor(); + objCellCursor.setPropertyValue( "CharColor",16777215); + objCellText.insertString( objCellCursor, strText, false); +} +function createStruct( strTypeName) +{ + var classSize= objCoreReflection.forName( strTypeName); + var aStruct= new Array(); + classSize.createObject( aStruct); + return aStruct[0]; +} + + +} + +]]> +</script> + +</component> diff --git a/extensions/test/ole/DCOM/scriptComponents/readme.txt b/extensions/test/ole/DCOM/scriptComponents/readme.txt new file mode 100644 index 000000000..5fa3a8bb7 --- /dev/null +++ b/extensions/test/ole/DCOM/scriptComponents/readme.txt @@ -0,0 +1,12 @@ +WriterDemo.wsc +================================================================================= +Register the component by right-clicking on the file in the file explorer and select +register. +The component registered as being remotable.That is, it has got an AppID entry (with +a DllSurrogate subkey).That enables us to use dcomcnfg.exe in order to set AccessPermissions,etc. +which is necessary because of the use of the JScript Array object. The automation +bridge will query for IDispatchEx,which is a call from server to client.Hence the server +needs the proper right within the client. + +The component implements a run function, which runs the demo example that is written +in JScript. |