1cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?> 2cdf0e10cSrcweir<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> 3*3e02b54dSAndrew Rist<!--*********************************************************** 4*3e02b54dSAndrew Rist * 5*3e02b54dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 6*3e02b54dSAndrew Rist * or more contributor license agreements. See the NOTICE file 7*3e02b54dSAndrew Rist * distributed with this work for additional information 8*3e02b54dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 9*3e02b54dSAndrew Rist * to you under the Apache License, Version 2.0 (the 10*3e02b54dSAndrew Rist * "License"); you may not use this file except in compliance 11*3e02b54dSAndrew Rist * with the License. You may obtain a copy of the License at 12*3e02b54dSAndrew Rist * 13*3e02b54dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 14*3e02b54dSAndrew Rist * 15*3e02b54dSAndrew Rist * Unless required by applicable law or agreed to in writing, 16*3e02b54dSAndrew Rist * software distributed under the License is distributed on an 17*3e02b54dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18*3e02b54dSAndrew Rist * KIND, either express or implied. See the License for the 19*3e02b54dSAndrew Rist * specific language governing permissions and limitations 20*3e02b54dSAndrew Rist * under the License. 21*3e02b54dSAndrew Rist * 22*3e02b54dSAndrew Rist ***********************************************************--> 23cdf0e10cSrcweir<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Samples" script:language="StarBasic">Option Explicit 24cdf0e10cSrcweir 25cdf0e10cSrcweirConst SAMPLES = 1000 26cdf0e10cSrcweirConst STYLES = 1100 27cdf0e10cSrcweirConst aTempFileName = "Berend_Ilko_Tom_Stella_Volker.stc" 28cdf0e10cSrcweirPublic Const Twip = 425 29cdf0e10cSrcweirDim oUcbObject as Object 30cdf0e10cSrcweirPublic StylesDir as String 31cdf0e10cSrcweirPublic StylesDialog as Object 32cdf0e10cSrcweirPublic PathSeparator as String 33cdf0e10cSrcweirPublic oFamilies as Object 34cdf0e10cSrcweirPublic aOptions(0) as New com.sun.star.beans.PropertyValue 35cdf0e10cSrcweirPublic sQueryPath as String 36cdf0e10cSrcweirPublic NoArgs()as New com.sun.star.beans.PropertyValue 37cdf0e10cSrcweirPublic aTempURL as String 38cdf0e10cSrcweir 39cdf0e10cSrcweirPublic Files(100) as String 40cdf0e10cSrcweir 41cdf0e10cSrcweir 42cdf0e10cSrcweir'-------------------------------------------------------------------------------------- 43cdf0e10cSrcweir'Miscellaneous Section starts here 44cdf0e10cSrcweir 45cdf0e10cSrcweirFunction PrepareForEditing(Optional ByVal oDocument) 46cdf0e10cSrcweir'This sub is called when sample documents are loaded (load event). 47cdf0e10cSrcweir'It checks whether the documents is read-only, in which case it 48cdf0e10cSrcweir'offers the user to create a new (writable) document using the original 49cdf0e10cSrcweir'as a template. 50cdf0e10cSrcweirDim DocPath as String 51cdf0e10cSrcweirDim MMessage as String 52cdf0e10cSrcweirDim MTitle as String 53cdf0e10cSrcweirDim RValue as Integer 54cdf0e10cSrcweirDim oNewDocument as Object 55cdf0e10cSrcweirDim mFileProperties(1) as New com.sun.star.beans.PropertyValue 56cdf0e10cSrcweir PrepareForEditing = NULL 57cdf0e10cSrcweir BasicLibraries.LoadLibrary( "Tools" ) 58cdf0e10cSrcweir If InitResources("'Template'", "tpl") then 59cdf0e10cSrcweir If IsMissing(oDocument) Then 60cdf0e10cSrcweir oDocument = ThisComponent 61cdf0e10cSrcweir End If 62cdf0e10cSrcweir If oDocument.IsReadOnly then 63cdf0e10cSrcweir MMessage = GetResText(SAMPLES) 64cdf0e10cSrcweir MTitle = GetResText(SAMPLES + 1) 65cdf0e10cSrcweir RValue = Msgbox(MMessage, (128+48+1), MTitle) 66cdf0e10cSrcweir If RValue = 1 Then 67cdf0e10cSrcweir DocPath = oDocument.URL 68cdf0e10cSrcweir mFileProperties(0).Name = "AsTemplate" 69cdf0e10cSrcweir mFileProperties(0).Value = True 70cdf0e10cSrcweir mFileProperties(1).Name = "MacroExecutionMode" 71cdf0e10cSrcweir mFileProperties(1).Value = com.sun.star.document.MacroExecMode.USE_CONFIG 72cdf0e10cSrcweir 73cdf0e10cSrcweir oNewDocument = StarDesktop.LoadComponentFromURL(DocPath,"_default",0, mFileProperties()) 74cdf0e10cSrcweir PrepareForEditing() = oNewDocument 75cdf0e10cSrcweir DisposeDocument(oDocument) 76cdf0e10cSrcweir Else 77cdf0e10cSrcweir PrepareForEditing() = NULL 78cdf0e10cSrcweir End If 79cdf0e10cSrcweir Else 80cdf0e10cSrcweir PrepareForEditing() = oDocument 81cdf0e10cSrcweir End If 82cdf0e10cSrcweir End If 83cdf0e10cSrcweirEnd Function 84cdf0e10cSrcweir 85cdf0e10cSrcweir 86cdf0e10cSrcweir 87cdf0e10cSrcweir'-------------------------------------------------------------------------------------- 88cdf0e10cSrcweir'Calc Style Section starts here 89cdf0e10cSrcweir 90cdf0e10cSrcweirSub ShowStyles 91cdf0e10cSrcweir'This sub displays the style selection dialog if the current document is a calc document. 92cdf0e10cSrcweirDim TemplateDir, ActFileTitle, DisplayDummy as String 93cdf0e10cSrcweirDim sFilterName(0) as String 94cdf0e10cSrcweirDim StyleNames() as String 95cdf0e10cSrcweirDim t as Integer 96cdf0e10cSrcweirDim MaxIndex as Integer 97cdf0e10cSrcweir BasicLibraries.LoadLibrary("Tools") 98cdf0e10cSrcweir If InitResources("'Template'", "tpl") then 99cdf0e10cSrcweir oDocument = ThisComponent 100cdf0e10cSrcweir If oDocument.SupportsService("com.sun.star.sheet.SpreadsheetDocument") Then 101cdf0e10cSrcweir ToggleWindow(False) 102cdf0e10cSrcweir oUcbObject = createUnoService("com.sun.star.ucb.SimpleFileAccess") 103cdf0e10cSrcweir oFamilies = oDocument.StyleFamilies 104cdf0e10cSrcweir SaveCurrentStyles(oDocument) 105cdf0e10cSrcweir StylesDialog = LoadDialog("Template", "DialogStyles") 106cdf0e10cSrcweir DialogModel = StylesDialog.Model 107cdf0e10cSrcweir TemplateDir = GetPathSettings("Template", False, 0) 108cdf0e10cSrcweir StylesDir = GetOfficeSubPath("Template", "wizard/styles/") 109cdf0e10cSrcweir sQueryPath = GetOfficeSubPath("Template", "../wizard/bitmap/") 110cdf0e10cSrcweir DialogModel.Title = GetResText(STYLES) 111cdf0e10cSrcweir DialogModel.cmdCancel.Label = GetResText(STYLES+2) 112cdf0e10cSrcweir DialogModel.cmdOk.Label = GetResText(STYLES+3) 113cdf0e10cSrcweir Stylenames() = ReadDirectories(StylesDir, False, False, True,) 114cdf0e10cSrcweir MaxIndex = Ubound(Stylenames()) 115cdf0e10cSrcweir BubbleSortList(Stylenames(),True) 116cdf0e10cSrcweir Dim cStyles(MaxIndex) 117cdf0e10cSrcweir For t = 0 to MaxIndex 118cdf0e10cSrcweir Files(t) = StyleNames(t,0) 119cdf0e10cSrcweir cStyles(t) = StyleNames(t,1) 120cdf0e10cSrcweir Next t 121cdf0e10cSrcweir On Local Error Resume Next 122cdf0e10cSrcweir DialogModel.lbStyles.StringItemList() = cStyles() 123cdf0e10cSrcweir ToggleWindow(True) 124cdf0e10cSrcweir StylesDialog.Execute 125cdf0e10cSrcweir End If 126cdf0e10cSrcweir End If 127cdf0e10cSrcweirEnd Sub 128cdf0e10cSrcweir 129cdf0e10cSrcweir 130cdf0e10cSrcweirSub SelectStyle 131cdf0e10cSrcweir'This sub loads the specific styles from a style document and loads them into the 132cdf0e10cSrcweir'current document. 133cdf0e10cSrcweirDim StylePath as String 134cdf0e10cSrcweirDim NewStyle as String 135cdf0e10cSrcweirDim Position as Integer 136cdf0e10cSrcweir Position = DialogModel.lbStyles.SelectedItems(0) 137cdf0e10cSrcweir If Position > -1 Then 138cdf0e10cSrcweir ToggleWindow(False) 139cdf0e10cSrcweir StylePath = Files(Position) 140cdf0e10cSrcweir aOptions(0).Name = "OverwriteStyles" 141cdf0e10cSrcweir aOptions(0).Value = true 142cdf0e10cSrcweir oFamilies.loadStylesFromURL(StylePath, aOptions()) 143cdf0e10cSrcweir ToggleWindow(True) 144cdf0e10cSrcweir End If 145cdf0e10cSrcweirEnd Sub 146cdf0e10cSrcweir 147cdf0e10cSrcweir 148cdf0e10cSrcweirSub SaveCurrentStyles(oDocument as Object) 149cdf0e10cSrcweir'This sub stores the current document in the user work directory 150cdf0e10cSrcweir On Error Goto ErrorOcurred 151cdf0e10cSrcweir aTempURL = GetPathSettings("Work", False) 152cdf0e10cSrcweir Dim aRightMost as String 153cdf0e10cSrcweir aRightMost = Right(aTempURL, 1) 154cdf0e10cSrcweir if aRightMost = "/" Then 155cdf0e10cSrcweir aTempURL = aTempURL & aTempFileName 156cdf0e10cSrcweir Else 157cdf0e10cSrcweir aTempURL = aTempURL & "/" & aTempFileName 158cdf0e10cSrcweir End If 159cdf0e10cSrcweir 160cdf0e10cSrcweir While FileExists(aTempURL) 161cdf0e10cSrcweir aTempURL=Left(aTempURL,(Len(aTempURL)-4)) & "_1.stc" 162cdf0e10cSrcweir Wend 163cdf0e10cSrcweir oDocument.storeToURL(aTempURL, NoArgs()) 164cdf0e10cSrcweir Exit Sub 165cdf0e10cSrcweir 166cdf0e10cSrcweirErrorOcurred: 167cdf0e10cSrcweir MsgBox(GetResText( STYLES+1 ), 16, GetResText( STYLES )) 168cdf0e10cSrcweir On Local Error Goto 0 169cdf0e10cSrcweirEnd Sub 170cdf0e10cSrcweir 171cdf0e10cSrcweir 172cdf0e10cSrcweirSub RestoreCurrentStyles 173cdf0e10cSrcweir'This sub retrieves the styles from the temporarily save document 174cdf0e10cSrcweir ToggleWindow(False) 175cdf0e10cSrcweir On Local Error Goto NoFile 176cdf0e10cSrcweir If FileExists(aTempURL) Then 177cdf0e10cSrcweir aOptions(0).Name = "OverwriteStyles" 178cdf0e10cSrcweir aOptions(0).Value = true 179cdf0e10cSrcweir oFamilies.LoadStylesFromURL(aTempURL, aOptions()) 180cdf0e10cSrcweir KillTempFile() 181cdf0e10cSrcweir End If 182cdf0e10cSrcweir StylesDialog.EndExecute 183cdf0e10cSrcweir ToggleWindow(True) 184cdf0e10cSrcweirNOFILE: 185cdf0e10cSrcweir If Err <> 0 Then 186cdf0e10cSrcweir Msgbox("Cannot load Document from " & aTempUrl, 64, GetProductname()) 187cdf0e10cSrcweir End If 188cdf0e10cSrcweir On Local Error Goto 0 189cdf0e10cSrcweirEnd Sub 190cdf0e10cSrcweir 191cdf0e10cSrcweir 192cdf0e10cSrcweirSub CloseStyleDialog 193cdf0e10cSrcweir KillTempFile() 194cdf0e10cSrcweir DialogExited = True 195cdf0e10cSrcweir StylesDialog.Endexecute 196cdf0e10cSrcweirEnd Sub 197cdf0e10cSrcweir 198cdf0e10cSrcweir 199cdf0e10cSrcweirSub KillTempFile() 200cdf0e10cSrcweir If oUcbObject.Exists(aTempUrl) Then 201cdf0e10cSrcweir oUcbObject.Kill(aTempUrl) 202cdf0e10cSrcweir End If 203cdf0e10cSrcweirEnd Sub 204cdf0e10cSrcweir 205*3e02b54dSAndrew Rist</script:module> 206