oDesktop = UNO.createDesktop()
xComponentLoader = oDesktop~XDesktop~XComponentLoader
url = "private:factory/swriter"
xWriterComponent = xComponentLoader~loadComponentFromURL(url, "_blank", 0, .UNO~noProps)
xDocumentFactory = xWriterComponent~XMultiServiceFactory
xTextDocument = xWriterComponent~XTextDocument
xText = xTextDocument~getText()
xTextCursor = xText~createTextCursor()
xPropertySet = xTextCursor~xPropertySet
xPropertySet~setPropertyValue("ParaStyleName","Heading 1")
xText~insertString(xTextCursor,"Headline",.false)
xDMsf = xTextDocument~XMultiServiceFactory
contentInd = xDMsf~createInstance("com.sun.star.text.ContentIndex")
contentProps = contentInd~XPropertySet
m1=5
m2=2
propsToc = bsf.createArray(.UNO~PropertyValue, m1, m2)
do i1=1 to m1
do i2=1 to m2
propsToc[i1,i2]=.uno~propertyValue~new
if i2=2 then
do
propsToc[i1,2]~name="CharacterStyleName"
propsToc[i1,2]~value=""
end
end
end
propsToc[1,1]~name="TokenType"
propsToc[1,1]~value = "TokenHyperlinkStart"
propsToc[2,1]~name="TokenType"
propsToc[2,1]~value = "TokenEntryText"
propsToc[3,1]~name="TokenType"
propsToc[3,1]~value = "TokenHyperlinkEnd"
propsToc[4,1]~name="TokenType"
propsToc[4,1]~value = "TokenTabStop"
propsToc[4,2]~name = "TabStopRightAligned"
propsToc[4,2]~value = box("boolean", .true)
propsToc[5,1]~name="TokenType"
propsToc[5,1]~value = "TokenPageNumber"
contentProps~setPropertyValue("CreateFromOutline",box("boolean", .true))
contentProps~setPropertyValue("Title","Table of Content")
contentProps~setPropertyValue("IsProtected",box("boolean", .false))
LevelFormat = contentProps~getPropertyValue("LevelFormat")
LevelFormat~xIndexAccess~xIndexReplace~replaceByIndex(1, propsToc)
contentTextContent = contentInd~xTextContent()
contentProps~setPropertyValue("Level",box("short", 2))
xText~insertTextContent(xText, contentTextContent, .false )
contentTextContent~XDocumentIndex~update()
::requires UNO.cls