' 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 'Dim DlgAgenda_gMsgNoCancel$ 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 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 = StarDesktop.ActiveFrame.Controller.Model oBookMarks = oDocument.Bookmarks On Local Error Goto NOBOOKMARK ' Todo: auch beim Schließen des Dialogs muss was passieren 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 ' Todo: Was ist mit der Property 'TrueContent' geschehen? ' oTextField.TrueContent = sTrueContent oTextField.Content = sTrueContent End If NOBOOKMARK: If Err <> 0 Then RESUME NEXT End If End Sub ' Attention This Sub is also called from the correspondence stuff Sub DisposeDocument TemplateDialog.EndExecute oDocument = StarDesktop.ActiveFrame.Controller.Model oDocument.Dispose 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 = StarDesktop.ActiveFrame.Controller.Model 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 = StarDesktop.ActiveFrame.Controller.Model 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 = StarDesktop.ActiveFrame.Controller.Model 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(aEvent as Object) Dim CurTag as String Dim Taglist() as String CurTag = aEvent.Source.Model.Tag Taglist() = ArrayoutOfString(CurTag, ";") Bookmarkname = TagList(0) sTrueContent = TagList(1) End Sub