123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
- <!--
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * 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 .
- -->
- <script:module xmlns:script="http://openoffice.org/2000/script" script:name="ModuleAgenda" script:language="StarBasic">' All variables must be declared before use
- Option Explicit
- ' Used for "disabling" the cancel button of the dialog
- Public DialogExited As Boolean
- Dim DlgAgenda_gMyName as String
- Public TemplateDialog as Object
- Public DialogModel as Object
- Public sTrueContent as String
- Public Bookmarkname as String
- Sub Initialize()
- ' User sets the type of minutes
- BasicLibraries.LoadLibrary( "Tools" )
- TemplateDialog = LoadDialog("Template", "TemplateDialog")
- DialogModel = TemplateDialog.Model
- DialogModel.Step = 1
- LoadLanguageAgenda()
- DialogModel.OptAgenda2.State = TRUE
- GetOptionValues()
- DialogExited = FALSE
- TemplateDialog.Execute
- End Sub
- Sub LoadLanguageAgenda()
- If InitResources("'Template'") Then
- DlgAgenda_gMyName = GetResText("AgendaDlgName")
- DialogModel.CmdCancel.Label = GetResText("STYLES_2")
- DialogModel.CmdAgdGoon.Label = GetResText("STYLES_3")
- ' DlgAgenda_gMsgNoCancel$ = GetResText("AgendaDlgNoCancel")
- DialogModel.FrmAgenda.Label = GetResText("AgendaDlgFrame")
- DialogModel.OptAgenda1.Label = GetResText("AgendaDlgButton1")
- DialogModel.OptAgenda2.Label = GetResText("AgendaDlgButton2")
- ' DialogModel.OptAgenda1.State = 1
- End If
- End Sub
- Sub ModifyTemplate()
- Dim oDocument, oBookmarks, oBookmark, oBookmarkCursor, oTextField as Object
- Dim i as Integer
- oDocument = ThisComponent
- oBookMarks = oDocument.Bookmarks
- On Local Error Goto NOBOOKMARK
- TemplateDialog.EndExecute
- DialogExited = TRUE
- oBookmarkCursor = CreateBookmarkCursor(oDocument, BookmarkName)
- oBookmarkCursor.Text.insertString(oBookmarkCursor,"",True)
- ' Delete all the Bookmarks except for the one named "NextTopic"
- For i = oBookmarks.Count-1 To 0 Step -1
- oBookMark = oBookMarks.GetByIndex(i)
- If oBookMark.Name <> "NextTopic" Then
- oBookMark.Dispose()
- End If
- Next i
- oBookMarkCursor = CreateBookmarkCursor(oDocument, "NextTopic")
- If Not IsNull(oBookMarkCursor) Then
- oTextField = oBookMarkCursor.TextField
- ' oTextField.TrueContent = sTrueContent
- oTextField.Content = sTrueContent
- End If
- NOBOOKMARK:
- If Err <> 0 Then
- RESUME NEXT
- End If
- End Sub
- Sub NewTopic
- ' Add a new topic to the agenda
- Dim oDocument, oBookmarks, oBookmark, oBookmarkCursor, oTextField as Object
- Dim oBaustein, oAutoText, oAutoGroup as Object
- Dim i as Integer
- oDocument = ThisComponent
- oBookMarkCursor = CreateBookMarkCursor(oDocument, "NextTopic")
- oTextField = oBookMarkCursor.TextField
- oAutoText = CreateUnoService("com.sun.star.text.AutoTextContainer")
- If oAutoText.HasbyName("template") Then
- oAutoGroup = oAutoText.GetbyName("template")
- If oAutoGroup.HasbyName(oTextField.Content) Then
- oBaustein = oAutoGroup.GetbyName(oTextField.Content)
- oBaustein.ApplyTo(oBookMarkCursor)
- Else
- Msgbox("AutoText '" & oTextField.Content & "' is not existing. Cannot insert additional topic!")
- End If
- Else
- Msgbox("AutoGroupField template is not existing. Cannot insert additional topic!", 16, DlgAgenda_gMyName )
- End If
- End Sub
- ' Add initials, date and time at bottom of agenda, disable and hide command buttons
- Sub FinishAgenda
- Dim BtnAddAgendaTopic As Object
- Dim BtnFinishAgenda As Object
- Dim oUserField, oDateTimeField as Object
- Dim oBookmarkCursor as Object
- Dim oFormats, oLocale as Object
- Dim iDateTimeKey as Integer
- BasicLibraries.LoadLibrary( "Tools" )
- oDocument = ThisComponent
- oUserField = oDocument.CreateInstance("com.sun.star.text.TextField.ExtendedUser")
- oUserField.UserDatatype = com.sun.star.text.UserDataPart.SHORTCUT
- oDateTimeField = oDocument.CreateInstance("com.sun.star.text.TextField.DateTime")
- ' Assign Standardformat to Datetime-Textfield
- oFormats = oDocument.Numberformats
- oLocale = oDocument.CharLocale
- iDateTimeKey = oFormats.GetStandardFormat(com.sun.star.util.NumberFormat.DATETIME,oLocale)
- oDateTimeField.NumberFormat = iDateTimeKey
- oBookmarkCursor = CreateBookmarkCursor(oDocument, "NextTopic")
- oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oUserField,False)
- oBookmarkCursor.Text.InsertString(oBookmarkCursor," ",False)
- oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oDateTimeField,False)
- BtnAddAgendaTopic = getControlModel(oDocument, "BtnAddAgendaTopic")
- BtnFinishAgenda = getControlModel(oDocument, "BtnFinishAgenda")
- If Not IsNull(BtnAddAgendaTopic) Then BtnAddAgendaTopic.Enabled = FALSE
- If Not IsNull(BtnFinishAgenda) Then BtnFinishAgenda.Enabled = FALSE
- End Sub
- Function CreateBookMarkCursor(oDocument as Object,sBookmarkName as String)
- oBookMarks = oDocument.Bookmarks
- If oBookmarks.HasbyName(sBookmarkName) Then
- oBookMark = oBookMarks.GetbyName(sBookmarkName)
- CreateBookMarkCursor = oBookMark.Anchor.Text.CreateTextCursorByRange(oBookMark.Anchor)
- Else
- Msgbox "Bookmark " & sBookmarkName & " is not defined!"
- End If
- End Function
- Sub DeleteButtons
- Dim AgendaFinished As Boolean
- Dim BtnAddAgendaTopic As Object
- Dim BtnFinishAgenda As Object
- oDocument = ThisComponent
- BtnAddAgendaTopic = getControlModel(oDocument, "BtnAddAgendaTopic")
- BtnFinishAgenda = getControlModel(oDocument, "BtnFinishAgenda")
- ' If buttons could be accessed: If at least one button is disabled, then agenda is finished
- AgendaFinished = FALSE
- If Not IsNull(BtnAddAgendaTopic) Then
- AgendaFinished = (AgendaFinished Or (BtnAddAgendaTopic.Enabled = FALSE))
- End If
- If Not IsNull(BtnFinishAgenda) Then
- AgendaFinished = (AgendaFinished Or (BtnFinishAgenda.Enabled = FALSE))
- End If
- ' Delete Buttons, empty rows at end of document & macro bindings if agenda is finished
- If AgendaFinished Then
- DisposeControl(oDocument, "BtnAddAgendaTopic")
- DisposeControl(oDocument, "BtnFinishAgenda")
- oBookmarkCursor = CreateBookMarkCursor(oDocument,"NextTopic")
- oBookMarkCursor.GotoEnd(True)
- oBookmarkCursor.Text.insertString(oBookmarkCursor,"",True)
- AttachBasicMacroToEvent(oDocument,"OnNew", "")
- AttachBasicMacroToEvent(oDocument,"OnSave", "")
- AttachBasicMacroToEvent(oDocument,"OnSaveAs", "")
- AttachBasicMacroToEvent(oDocument,"OnPrint", "")
- End If
- End Sub
- Sub GetOptionValues(Optional aEvent as Object)
- Dim CurTag as String
- Dim Taglist() as String
- If Not IsMissing(aEvent) Then
- CurTag = aEvent.Source.Model.Tag
- Else
- If DialogModel.OptAgenda1.State = TRUE Then
- CurTag = DialogModel.OptAgenda1.Tag
- Else
- CurTag = DialogModel.OptAgenda2.Tag
- End If
- End If
- Taglist() = ArrayoutOfString(CurTag, ";")
- Bookmarkname = TagList(0)
- sTrueContent = TagList(1)
- End Sub
- </script:module>
|