| <?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="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'", "tpl") Then |
| DlgAgenda_gMyName = GetResText(1200) |
| DialogModel.CmdCancel.Label = GetResText(1102) |
| DialogModel.CmdAgdGoon.Label = GetResText(1103) |
| ' DlgAgenda_gMsgNoCancel$ = GetResText(1201) |
| DialogModel.FrmAgenda.Label = GetResText(1202) |
| DialogModel.OptAgenda1.Label = GetResText(1203) |
| DialogModel.OptAgenda2.Label = GetResText(1204) |
| ' 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> |