home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 January / PCWorld_2004-01_cd.bin / akce / openoffice / f_0282 / ModuleAgenda.xba < prev    next >
Extensible Markup Language  |  2002-09-17  |  7KB  |  192 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.     DialogExited = FALSE
  25.     TemplateDialog.Execute
  26. End Sub
  27.  
  28.  
  29. Sub LoadLanguageAgenda()
  30.     If InitResources("'Template'", "tpl") Then
  31.         DlgAgenda_gMyName = GetResText(1200)
  32.         DialogModel.CmdCancel.Label = GetResText(1102)
  33.         DialogModel.CmdAgdGoon.Label = GetResText(1103)
  34. '        DlgAgenda_gMsgNoCancel$ = GetResText(1201)
  35.         DialogModel.FrmAgenda.Label = GetResText(1202)
  36.         DialogModel.OptAgenda1.Label = GetResText(1203)
  37.         DialogModel.OptAgenda2.Label = GetResText(1204)
  38. '        DialogModel.OptAgenda1.State = 1
  39.     End If
  40. End Sub
  41.  
  42.  
  43. Sub ModifyTemplate()
  44. Dim oDocument, oBookmarks, oBookmark, oBookmarkCursor, oTextField as Object
  45. Dim i as Integer
  46.  
  47.   oDocument = ThisComponent
  48.     oBookMarks = oDocument.Bookmarks
  49.  
  50.     On Local Error Goto NOBOOKMARK
  51.     TemplateDialog.EndExecute
  52.     DialogExited = TRUE
  53.     oBookmarkCursor = CreateBookmarkCursor(oDocument, BookmarkName)
  54.     oBookmarkCursor.Text.insertString(oBookmarkCursor,"",True)
  55.     ' Delete all the Bookmarks except for the one named "NextTopic"
  56.     For i = oBookmarks.Count-1 To 0 Step -1
  57.         oBookMark = oBookMarks.GetByIndex(i)
  58.         If oBookMark.Name <> "NextTopic" Then
  59.             oBookMark.Dispose()
  60.         End If
  61.     Next i
  62.     oBookMarkCursor = CreateBookmarkCursor(oDocument, "NextTopic")
  63.     If Not IsNull(oBookMarkCursor) Then
  64.         oTextField = oBookMarkCursor.TextField
  65. '        oTextField.TrueContent =     sTrueContent
  66.         oTextField.Content = sTrueContent
  67.     End If
  68.  
  69.     NOBOOKMARK:
  70.     If Err <> 0 Then
  71.         RESUME NEXT
  72.     End If
  73. End Sub
  74.  
  75.  
  76. Sub NewTopic
  77. ' Add a new topic to the agenda
  78. Dim oDocument, oBookmarks, oBookmark, oBookmarkCursor, oTextField as Object
  79. Dim oBaustein, oAutoText, oAutoGroup as Object
  80. Dim i as Integer
  81.  
  82.       oDocument = ThisComponent
  83.     oBookMarkCursor = CreateBookMarkCursor(oDocument, "NextTopic")
  84.     oTextField = oBookMarkCursor.TextField
  85.     oAutoText = CreateUnoService("com.sun.star.text.AutoTextContainer")
  86.     If oAutoText.HasbyName("template") Then
  87.         oAutoGroup = oAutoText.GetbyName("template")
  88.         If oAutoGroup.HasbyName(oTextField.Content) Then
  89.             oBaustein = oAutoGroup.GetbyName(oTextField.Content)
  90.             oBaustein.ApplyTo(oBookMarkCursor)
  91.         Else
  92.             Msgbox("AutoText '" & oTextField.Content & "' is not existing. Cannot insert additional topic!")
  93.         End If
  94.     Else
  95.         Msgbox("AutoGroupField template is not existing. Cannot insert additional topic!", 16, DlgAgenda_gMyName )
  96.     End If
  97. End Sub
  98.  
  99.  
  100.  
  101. ' Add initials, date and time at bottom of agenda, disable and hide command buttons
  102. Sub FinishAgenda
  103. Dim BtnAddAgendaTopic As Object
  104. Dim BtnFinishAgenda As Object
  105. Dim oUserField, oDateTimeField as Object
  106. Dim oBookmarkCursor as Object
  107. Dim oFormats, oLocale as Object
  108. Dim iDateTimeKey as Integer
  109.  
  110.         BasicLibraries.LoadLibrary( "Tools" )
  111.   oDocument = ThisComponent
  112.  
  113.     oUserField = oDocument.CreateInstance("com.sun.star.text.TextField.ExtendedUser")
  114.     oUserField.UserDatatype = com.sun.star.text.UserDataPart.SHORTCUT
  115.  
  116.     oDateTimeField = oDocument.CreateInstance("com.sun.star.text.TextField.DateTime")
  117.  
  118.     ' Assign Standardformat to Datetime-Textfield
  119.     oFormats = oDocument.Numberformats
  120.     oLocale = oDocument.CharLocale
  121.     iDateTimeKey = oFormats.GetStandardFormat(com.sun.star.util.NumberFormat.DATETIME,oLocale)
  122.     oDateTimeField.NumberFormat = iDateTimeKey
  123.  
  124.     oBookmarkCursor = CreateBookmarkCursor(oDocument, "NextTopic")
  125.     oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oUserField,False)
  126.     oBookmarkCursor.Text.InsertString(oBookmarkCursor," ",False)
  127.     oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oDateTimeField,False)
  128.     BtnAddAgendaTopic = getControlModel(oDocument, "BtnAddAgendaTopic")
  129.     BtnFinishAgenda = getControlModel(oDocument, "BtnFinishAgenda")
  130.     If Not IsNull(BtnAddAgendaTopic) Then BtnAddAgendaTopic.Enabled = FALSE
  131.     If Not IsNull(BtnFinishAgenda) Then BtnFinishAgenda.Enabled = FALSE
  132. End Sub
  133.  
  134.  
  135. Function CreateBookMarkCursor(oDocument as Object,sBookmarkName as String)
  136.     oBookMarks = oDocument.Bookmarks
  137.     If oBookmarks.HasbyName(sBookmarkName) Then
  138.         oBookMark = oBookMarks.GetbyName(sBookmarkName)
  139.         CreateBookMarkCursor = oBookMark.Anchor.Text.CreateTextCursorByRange(oBookMark.Anchor)
  140.     Else
  141.         Msgbox "Bookmark " & sBookmarkName &  " is not defined!"
  142.     End If
  143. End Function
  144.  
  145.  
  146.  
  147. Sub DeleteButtons
  148. Dim AgendaFinished As Boolean
  149. Dim BtnAddAgendaTopic As Object
  150. Dim BtnFinishAgenda As Object
  151.  
  152.   oDocument = ThisComponent
  153.  
  154.     BtnAddAgendaTopic = getControlModel(oDocument, "BtnAddAgendaTopic")
  155.     BtnFinishAgenda = getControlModel(oDocument, "BtnFinishAgenda")
  156.  
  157.     ' If buttons could be accessed: If at least one button is disabled, then agenda is finished
  158.     AgendaFinished = FALSE
  159.     If Not IsNull(BtnAddAgendaTopic) Then
  160.         AgendaFinished = (AgendaFinished Or (BtnAddAgendaTopic.Enabled = FALSE))
  161.     End If
  162.  
  163.     If Not IsNull(BtnFinishAgenda) Then
  164.         AgendaFinished = (AgendaFinished Or (BtnFinishAgenda.Enabled = FALSE))
  165.     End If
  166.  
  167.     ' Delete Buttons, empty rows at end of document & macro bindings if agenda is finished
  168.     If AgendaFinished Then
  169.         DisposeControl(oDocument, "BtnAddAgendaTopic")
  170.         DisposeControl(oDocument, "BtnFinishAgenda")
  171.  
  172.         oBookmarkCursor = CreateBookMarkCursor(oDocument,"NextTopic")
  173.         oBookMarkCursor.GotoEnd(True)
  174.         oBookmarkCursor.Text.insertString(oBookmarkCursor,"",True)
  175.  
  176.         AttachBasicMacroToEvent(oDocument,"OnNew", "")
  177.         AttachBasicMacroToEvent(oDocument,"OnSave", "")
  178.         AttachBasicMacroToEvent(oDocument,"OnSaveAs", "")
  179.         AttachBasicMacroToEvent(oDocument,"OnPrint", "")
  180.     End If
  181. End Sub
  182.  
  183.  
  184. Sub GetOptionValues(aEvent as Object)
  185. Dim CurTag as String
  186. Dim Taglist() as String
  187.     CurTag = aEvent.Source.Model.Tag
  188.     Taglist() = ArrayoutOfString(CurTag, ";")
  189.     Bookmarkname = TagList(0)
  190.     sTrueContent = TagList(1)
  191. End Sub
  192. </script:module>