a95989c256
2004/12/09 15:19:26 bc 1.8.190.1: #i37927#handling of the filtercomponent improved
203 lines
No EOL
6.9 KiB
XML
203 lines
No EOL
6.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
|
<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> |