| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> |
| <!--*********************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| ***********************************************************--> |
| <script:module xmlns:script="http://openoffice.org/2000/script" script:name="TutorialOpen" script:language="StarBasic">REM ***** BASIC ***** |
| Dim myOpenDialog As Object |
| Dim oListBox As Object |
| Dim files As Object |
| Dim oUcb As Object |
| Dim oListener As Object |
| |
| Sub TutorialOpenMain |
| GlobalScope.BasicLibraries.LoadLibrary("Tools") |
| myOpenDialog = LoadDialog("Tutorials","TutorialOpenDialog") |
| init() |
| myOpenDialog.Execute() |
| End Sub |
| |
| Sub Init |
| On Local Error Goto NOFILE |
| myOpenDialog.Title = "Tutorials" |
| oListBox = myOpenDialog.GetControl("ListBox") |
| templatePath = GetPathSettings("Template",false, 0) |
| Dim tutorialPath As String |
| iPos = InStr(templatePath,"/") |
| if(iPos > 0) Then |
| tutorialPath = templatePath & "/tutorials" |
| Else |
| tutorialPath = templatePath & "\tutorials" |
| End If |
| oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess") |
| files = oUcb.getFolderContents(tutorialPath,true) |
| size = Ubound( files() ) |
| Dim tempFiles(size) As String |
| tempCount = 0 |
| For iCount = 0 To size |
| completPath = files(iCount) |
| oDocInfo = CreateUnoService("com.sun.star.document.DocumentProperties") |
| oDocInfo.Read(completPath) |
| sDocTitle = oDocInfo.Title |
| if(not isNull(sDocTitle) And len(sDocTitle) > 0) Then |
| oListbox.additem(sDocTitle,0) |
| tempFiles(tempCount) = completPath |
| tempCount = tempCount + 1 |
| End If |
| Next iCount |
| 'printdbgInfo oListbox |
| size = oListbox.ItemCount - 1 |
| Dim tempFiles2(size) As String |
| For iCount = 0 To size |
| tempFiles2(iCount) = tempFiles(iCount) |
| Next iCount |
| files() = tempFiles2() |
| Exit Sub |
| NOFILE: |
| If Err <> 0 Then |
| Msgbox "No file found error!" & CHR(13) & "Path: ...\share\template\...\tutorials\" |
| myOpenDialog.model.Open.enabled = False |
| End If |
| End Sub |
| |
| Sub ItemSelected(oEvent) |
| On Local Error Goto NOFILE |
| completPath = files(Ubound(files()) - oEvent.Selected) |
| oTextField = myOpenDialog.GetControl("Label") 'TextField |
| oTextField.setText("") |
| Dim NoArgs() as new com.sun.star.beans.PropertyValue |
| oDocInfo = CreateUnoService("com.sun.star.document.DocumentProperties") |
| oDocInfo.Read(completPath) |
| sDocDescription = oDocInfo.Description |
| if(not isNull(sDocTitle) And len(sDocDescription) > 0) Then |
| oTextField.setText(sDocDescription) |
| Else |
| oTextField.setText("Not Description!!!.") |
| End If |
| Exit Sub |
| NOFILE: |
| If Err <> 0 Then |
| Msgbox "Open file error!" |
| End If |
| End Sub |
| |
| Sub OpenTutorial(aEvent) |
| completPath = files(Ubound(files()) - oListBox.getSelectedItemPos()) |
| Dim Args(2) as new com.sun.star.beans.PropertyValue |
| Args(1).Name = "MacroExecutionMode" |
| Args(1).Value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE |
| Args(2).Name = "AsTemplate" |
| Args(2).Value = true |
| |
| StarDesktop.LoadComponentFromURL(completPath,"_default",0, Args()) |
| myOpenDialog.endExecute() |
| End Sub |
| |
| Sub Cancel(aEvent) |
| myOpenDialog.endExecute() |
| End Sub |
| </script:module> |