home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 May / PCWorld_2004-05_cd.bin / akce / openoffice / f_0288 / ModuleAgenda.xba < prev    next >
Extensible Markup Language  |  2003-12-17  |  7KB  |  200 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
  3. <script:module xmlns:script="http://openoffice.org/2000/script" script:name="ModuleAgenda" script:language="StarBasic">' All variables must be declared before use
  4. Option Explicit
  5.  
  6. ' Used for "disabling" the cancel button of the dialog
  7. Public DialogExited As Boolean
  8. Dim DlgAgenda_gMyName as String
  9. Public TemplateDialog as Object
  10. Public DialogModel as Object
  11. Public sTrueContent as String
  12. Public Bookmarkname as String
  13.  
  14.  
  15.  
  16. Sub Initialize()
  17. ' User sets the type of minutes
  18.     BasicLibraries.LoadLibrary( "Tools" )
  19.     TemplateDialog = LoadDialog("Template", "TemplateDialog")
  20.     DialogModel = TemplateDialog.Model
  21.     DialogModel.Step = 1
  22.     LoadLanguageAgenda()
  23.     DialogModel.OptAgenda2.State = TRUE
  24.     GetOptionValues()
  25.     DialogExited = FALSE
  26.     TemplateDialog.Execute
  27. End Sub
  28.  
  29.  
  30. Sub LoadLanguageAgenda()
  31.     If InitResources("'Template'", "tpl") Then
  32.         DlgAgenda_gMyName = GetResText(1200)
  33.         DialogModel.CmdCancel.Label = GetResText(1102)
  34.         DialogModel.CmdAgdGoon.Label = GetResText(1103)
  35.         DialogModel.FrmAgenda.Label = GetResText(1202)
  36.         DialogModel.OptAgenda1.Label = GetResText(1203)
  37.         DialogModel.OptAgenda2.Label = GetResText(1204)
  38.     End If
  39. End Sub
  40.  
  41.  
  42. Sub ModifyTemplate()
  43. Dim oDocument
  44. Dim oBookmarks
  45. Dim oBookmark
  46. Dim oBookmarkCursor
  47. Dim oTextField
  48. Dim i as Integer
  49.  
  50.     oDocument = ThisComponent
  51.     oBookMarks = oDocument.Bookmarks
  52.  
  53.     On Local Error Goto NOBOOKMARK
  54.     TemplateDialog.EndExecute
  55.     DialogExited = TRUE
  56.     oBookmarkCursor = CreateBookmarkCursor(oDocument, "NextTopic")
  57.     oBookmarkCursor.Text.insertString(oBookmarkCursor,"",True)
  58.     ' Delete all the Bookmarks except for the one named "NextTopic"
  59.     For i = oBookmarks.Count-1 To 0 Step -1
  60.         oBookMark = oBookMarks.GetByIndex(i)
  61.         If oBookMark.Name <> "NextTopic" Then
  62.             oBookMark.Dispose()
  63.         End If
  64.     Next i
  65.     oBookMarkCursor = CreateBookmarkCursor(oDocument, "NextTopic")
  66.     If Not IsNull(oBookMarkCursor) Then
  67.         oTextField = oBookMarkCursor.TextField
  68.         oTextField.Content = sTrueContent
  69.     End If
  70.  
  71.     NOBOOKMARK:
  72.     If Err <> 0 Then
  73.         RESUME NEXT
  74.     End If
  75. End Sub
  76.  
  77.  
  78. Sub NewTopic
  79. ' Add a new topic to the agenda
  80. Dim oDocument, oBookmarks, oBookmark, oBookmarkCursor, oTextField as Object
  81. Dim oBaustein, oAutoText, oAutoGroup as Object
  82. Dim i as Integer
  83.  
  84.       oDocument = ThisComponent
  85.     oBookMarkCursor = CreateBookMarkCursor(oDocument, "NextTopic")
  86.     oTextField = oBookMarkCursor.TextField
  87.     oAutoText = CreateUnoService("com.sun.star.text.AutoTextContainer")
  88.     If oAutoText.HasbyName("template") Then
  89.         oAutoGroup = oAutoText.GetbyName("template")
  90.         If oAutoGroup.HasbyName(oTextField.Content) Then
  91.             oBaustein = oAutoGroup.GetbyName(oTextField.Content)
  92.             oBaustein.ApplyTo(oBookMarkCursor)
  93.         Else
  94.             Msgbox("AutoText '" & oTextField.Content & "' is not existing. Cannot insert additional topic!", 48, GetProductName())
  95.         End If
  96.     Else
  97.         Msgbox("AutoGroupField template is not existing. Cannot insert additional topic!", 16, GetProductName())
  98.     End If
  99. End Sub
  100.  
  101.  
  102.  
  103. ' Add initials, date and time at bottom of agenda, disable and hide command buttons
  104. Sub FinishAgenda
  105. Dim BtnAddAgendaTopic As Object
  106. Dim BtnFinishAgenda As Object
  107. Dim oUserField, oDateTimeField as Object
  108. Dim oBookmarkCursor as Object
  109. Dim oFormats, oLocale as Object
  110. Dim iDateTimeKey as Integer
  111.  
  112.     BasicLibraries.LoadLibrary("Tools")
  113.      oDocument = ThisComponent
  114.  
  115.     oUserField = oDocument.CreateInstance("com.sun.star.text.TextField.ExtendedUser")
  116.     oUserField.UserDatatype = com.sun.star.text.UserDataPart.SHORTCUT
  117.  
  118.     oDateTimeField = oDocument.CreateInstance("com.sun.star.text.TextField.DateTime")
  119.  
  120.     ' Assign Standardformat to Datetime-Textfield
  121.     oFormats = oDocument.Numberformats
  122.     oLocale = oDocument.CharLocale
  123.     iDateTimeKey = oFormats.GetStandardFormat(com.sun.star.util.NumberFormat.DATETIME,oLocale)
  124.     oDateTimeField.NumberFormat = iDateTimeKey
  125.  
  126.     oBookmarkCursor = CreateBookmarkCursor(oDocument, "NextTopic")
  127.     oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oUserField,False)
  128.     oBookmarkCursor.Text.InsertString(oBookmarkCursor," ",False)
  129.     oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oDateTimeField,False)
  130.     BtnAddAgendaTopic = getControlModel(oDocument, "BtnAddAgendaTopic")
  131.     BtnFinishAgenda = getControlModel(oDocument, "BtnFinishAgenda")
  132.     If Not IsNull(BtnAddAgendaTopic) Then BtnAddAgendaTopic.Enabled = FALSE
  133.     If Not IsNull(BtnFinishAgenda) Then BtnFinishAgenda.Enabled = FALSE
  134. End Sub
  135.  
  136.  
  137. Function CreateBookMarkCursor(oDocument as Object,sBookmarkName as String)
  138.     oBookMarks = oDocument.Bookmarks
  139.     If oBookmarks.HasbyName(sBookmarkName) Then
  140.         oBookMark = oBookMarks.GetbyName(sBookmarkName)
  141.         CreateBookMarkCursor = oBookMark.Anchor.Text.CreateTextCursorByRange(oBookMark.Anchor)
  142.     Else
  143.         Msgbox("Bookmark " & sBookmarkName &  " is not defined!", 48, GetProductName())
  144.     End If
  145. End Function
  146.  
  147.  
  148.  
  149. Sub DeleteButtons
  150. Dim AgendaFinished As Boolean
  151. Dim BtnAddAgendaTopic As Object
  152. Dim BtnFinishAgenda As Object
  153.  
  154.       oDocument = ThisComponent
  155.     BtnAddAgendaTopic = getControlModel(oDocument, "BtnAddAgendaTopic")
  156.     BtnFinishAgenda = getControlModel(oDocument, "BtnFinishAgenda")
  157.  
  158.     ' If buttons could be accessed: If at least one button is disabled, then agenda is finished
  159.     AgendaFinished = FALSE
  160.     If Not IsNull(BtnAddAgendaTopic) Then
  161.         AgendaFinished = (AgendaFinished Or (BtnAddAgendaTopic.Enabled = FALSE))
  162.     End If
  163.  
  164.     If Not IsNull(BtnFinishAgenda) Then
  165.         AgendaFinished = (AgendaFinished Or (BtnFinishAgenda.Enabled = FALSE))
  166.     End If
  167.  
  168.     ' Delete Buttons, empty rows at end of document & macro bindings if agenda is finished
  169.     If AgendaFinished Then
  170.         DisposeControl(oDocument, "BtnAddAgendaTopic")
  171.         DisposeControl(oDocument, "BtnFinishAgenda")
  172.         oBookmarkCursor = CreateBookMarkCursor(oDocument,"NextTopic")
  173.         oBookMarkCursor.GotoEnd(True)
  174.         oBookmarkCursor.Text.insertString(oBookmarkCursor,"",True)
  175.         AttachBasicMacroToEvent(oDocument,"OnNew", "")
  176.         AttachBasicMacroToEvent(oDocument,"OnSave", "")
  177.         AttachBasicMacroToEvent(oDocument,"OnSaveAs", "")
  178.         AttachBasicMacroToEvent(oDocument,"OnPrint", "")
  179.     End If
  180. End Sub
  181.  
  182.  
  183.  
  184. Sub GetOptionValues(Optional aEvent as Object)
  185. Dim CurTag as String
  186. Dim Taglist() as String
  187.     If Not IsMissing(aEvent) Then
  188.         CurTag = aEvent.Source.Model.Tag
  189.     Else
  190.         If DialogModel.OptAgenda1.State = TRUE Then
  191.             CurTag = DialogModel.OptAgenda1.Tag
  192.         Else
  193.             CurTag = DialogModel.OptAgenda2.Tag
  194.         End If        
  195.     End If
  196.     Taglist() = ArrayoutOfString(CurTag, ";")
  197.     Bookmarkname = TagList(0)
  198.     sTrueContent = TagList(1)
  199. End Sub
  200. </script:module>