[Libreoffice-commits] core.git: wizards/Package_sfdocuments.mk wizards/source
Jean-Pierre Ledure (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jul 7 07:55:51 UTC 2021
wizards/Package_sfdocuments.mk | 1
wizards/source/scriptforge/SF_Services.xba | 8
wizards/source/scriptforge/python/scriptforge.py | 26 +
wizards/source/sfdocuments/SF_Calc.xba | 2
wizards/source/sfdocuments/SF_Register.xba | 10
wizards/source/sfdocuments/SF_Writer.xba | 446 +++++++++++++++++++++++
wizards/source/sfdocuments/script.xlb | 1
7 files changed, 487 insertions(+), 7 deletions(-)
New commits:
commit c2d69eae17acc93775066e649a3e22d542306ef8
Author: Jean-Pierre Ledure <jp at ledure.be>
AuthorDate: Tue Jul 6 16:42:12 2021 +0200
Commit: Jean-Pierre Ledure <jp at ledure.be>
CommitDate: Wed Jul 7 09:55:20 2021 +0200
ScriptForge - (SFDocuments) New SF_Writer service
Addition of the skeleton of the new SF_Writer service
as a subclass of SF_Document.
Entry points in CreateScriptService are provided
both for Basic and Python user scripts.
Full compatibility with existing user scripts.
Specific properties and methods will be provided in later
commits.
Change-Id: Ib00a9ea52023707d1429e8ad9dcb4dca2ca63174
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118515
Tested-by: Jean-Pierre Ledure <jp at ledure.be>
Tested-by: Jenkins
Reviewed-by: Jean-Pierre Ledure <jp at ledure.be>
diff --git a/wizards/Package_sfdocuments.mk b/wizards/Package_sfdocuments.mk
index 6f9cbf7f5ae2..39211afa88cf 100644
--- a/wizards/Package_sfdocuments.mk
+++ b/wizards/Package_sfdocuments.mk
@@ -26,6 +26,7 @@ $(eval $(call gb_Package_add_files,wizards_basicsrvsfdocuments,$(LIBO_SHARE_FOLD
SF_Form.xba \
SF_FormControl.xba \
SF_Register.xba \
+ SF_Writer.xba \
__License.xba \
dialog.xlb \
script.xlb \
diff --git a/wizards/source/scriptforge/SF_Services.xba b/wizards/source/scriptforge/SF_Services.xba
index 2ae92b79bc2a..4bd57c9e1b64 100644
--- a/wizards/source/scriptforge/SF_Services.xba
+++ b/wizards/source/scriptforge/SF_Services.xba
@@ -125,11 +125,11 @@ Try:
sLibrary = "ScriptForge" ' Yes, the default value !
sService = vSplit(0)
' Accept other default values for associated libraries
- Select Case sService
- Case "Document", "Calc", "Base", "DocumentEvent", "FormEvent"
+ Select Case LCase(sService)
+ Case "document", "calc", "writer", "base", "documentevent", "formevent"
sLibrary = "SFDocuments"
- Case "Dialog", "DialogEvent" : sLibrary = "SFDialogs"
- Case "Database" : sLibrary = "SFDatabases"
+ Case "dialog", "dialogevent" : sLibrary = "SFDialogs"
+ Case "database" : sLibrary = "SFDatabases"
Case Else
End Select
Else
diff --git a/wizards/source/scriptforge/python/scriptforge.py b/wizards/source/scriptforge/python/scriptforge.py
index 0f16613d618f..689d4a9276ec 100644
--- a/wizards/source/scriptforge/python/scriptforge.py
+++ b/wizards/source/scriptforge/python/scriptforge.py
@@ -2071,6 +2071,32 @@ class SFDocuments:
def SetFocus(self):
return self.ExecMethod(self.vbMethod, 'SetFocus')
+ # #########################################################################
+ # SF_Writer CLASS
+ # #########################################################################
+ class SF_Writer(SF_Document, SFServices):
+ """
+ The SF_Writer module is focused on :
+ - TBD
+ """
+ # Mandatory class properties for service registration
+ serviceimplementation = 'basic'
+ servicename = 'SFDocuments.Writer'
+ servicesynonyms = ('writer', 'sfdocuments.writer')
+ serviceproperties = dict(Description = True, DocumentType = False, IsBase = False, IsCalc = False,
+ IsDraw = False, IsImpress = False, IsMath = False, IsWriter = False,
+ Keywords = True, Readonly = False, Subject = True, Title = True,
+ XComponent = False)
+ # Force for each property to get its value from Basic - due to intense interactivity with user
+ forceGetProperty = True
+
+ @classmethod
+ def ReviewServiceArgs(cls, windowname = ''):
+ """
+ Transform positional and keyword arguments into positional only
+ """
+ return (windowname,)
+
# ##############################################False##################################################################
# CreateScriptService() ###
diff --git a/wizards/source/sfdocuments/SF_Calc.xba b/wizards/source/sfdocuments/SF_Calc.xba
index 1b96a981ec3a..75717c57d572 100644
--- a/wizards/source/sfdocuments/SF_Calc.xba
+++ b/wizards/source/sfdocuments/SF_Calc.xba
@@ -2767,7 +2767,7 @@ Const cstSubArgs = ""
_PropertyGet = False
- cstThisSub = "SFDocuments.SF_Calc.get" & psProperty
+ cstThisSub = "SFDocuments.Calc.get" & psProperty
ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs)
If Not _IsStillAlive() Then GoTo Finally
diff --git a/wizards/source/sfdocuments/SF_Register.xba b/wizards/source/sfdocuments/SF_Register.xba
index a8872e4115ed..68b79aed952a 100644
--- a/wizards/source/sfdocuments/SF_Register.xba
+++ b/wizards/source/sfdocuments/SF_Register.xba
@@ -66,8 +66,9 @@ Public Sub RegisterScriptServices() As Variant
With GlobalScope.ScriptForge.SF_Services
.RegisterService("Document", "SFDocuments.SF_Register._NewDocument") ' Reference to the function initializing the service
- .RegisterService("Calc", "SFDocuments.SF_Register._NewDocument") ' Same reference, distinction is made inside the function
.RegisterService("Base", "SFDocuments.SF_Register._NewDocument") ' Same reference, distinction is made inside the function
+ .RegisterService("Calc", "SFDocuments.SF_Register._NewDocument") ' Same reference, distinction is made inside the function
+ .RegisterService("Writer", "SFDocuments.SF_Register._NewDocument") ' Same reference, distinction is made inside the function
.RegisterEventManager("DocumentEvent", "SFDocuments.SF_Register._EventManager") ' Reference to the events manager
.RegisterEventManager("FormEvent", "SFDocuments.SF_Register._FormEventManager")' Reference to the form and controls events manager
End With
@@ -366,7 +367,7 @@ Check:
Set oDocument = Nothing
Try:
- Set oUi = ScriptForge.SF_Register.CreateScriptService("UI")
+ Set oUi = ScriptForge.SF_Services.CreateScriptService("UI")
Select Case VarType(vWindowName)
Case V_STRING
If Len(vWindowName) > 0 Then
@@ -407,6 +408,11 @@ Try:
Set oSuperDocument = New SF_Document
Set oDocument.[_Super] = oSuperDocument ' Now both super and subclass are twinned
Set oSuperDocument.[_SubClass] = oDocument
+ Case "Writer"
+ Set oDocument = New SF_Writer
+ Set oSuperDocument = New SF_Document
+ Set oDocument.[_Super] = oSuperDocument ' Now both super and subclass are twinned
+ Set oSuperDocument.[_SubClass] = oDocument
Case Else ' Only superclass
Set oDocument = New SF_Document
Set oSuperDocument = oDocument
diff --git a/wizards/source/sfdocuments/SF_Writer.xba b/wizards/source/sfdocuments/SF_Writer.xba
new file mode 100644
index 000000000000..d175d64f5e9a
--- /dev/null
+++ b/wizards/source/sfdocuments/SF_Writer.xba
@@ -0,0 +1,446 @@
+<?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="SF_Writer" script:language="StarBasic" script:moduleType="normal">REM =======================================================================================================================
+REM === The ScriptForge library and its associated libraries are part of the LibreOffice project. ===
+REM === The SFDocuments library is one of the associated libraries. ===
+REM === Full documentation is available on https://help.libreoffice.org/ ===
+REM =======================================================================================================================
+
+Option Compatible
+Option ClassModule
+
+Option Explicit
+
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+''' SF_Writer
+''' =========
+'''
+''' The SFDocuments library gathers a number of methods and properties making easy
+''' managing and manipulating LibreOffice documents
+'''
+''' Some methods are generic for all types of documents: they are combined in the SF_Document module.
+''' Specific properties and methods are implemented in the concerned subclass(es) SF_Calc, SF_Writer, SF_Base, ...
+'''
+''' To workaround the absence of class inheritance in LibreOffice Basic, some redundancy is necessary
+''' Each subclass MUST implement also the generic methods and properties, even if they only call
+''' the parent methods and properties.
+''' They should also duplicate some generic private members as a subset of their own set of members
+'''
+''' The SF_Writer module is focused on :
+''' TBD
+'''
+''' The current module is closely related to the "UI" service of the ScriptForge library
+'''
+''' Service invocation examples:
+''' 1) From the UI service
+''' Dim ui As Object, oDoc As Object
+''' Set ui = CreateScriptService("UI")
+''' Set oDoc = ui.CreateDocument("Writer", ...)
+''' ' or Set oDoc = ui.OpenDocument("C:\Me\MyFile.odt")
+''' 2) Directly if the document is already opened
+''' Dim oDoc As Object
+''' Set oDoc = CreateScriptService("SFDocuments.Writer", "Untitled 1") ' Default = ActiveWindow
+''' ' or Set oDoc = CreateScriptService("SFDocuments.Writer", "Untitled 1") ' Untitled 1 is presumed a Writer document
+''' ' The substring "SFDocuments." in the service name is optional
+'''
+''' Definitions:
+''' TBD
+'''
+''' Detailed user documentation:
+''' https://help.libreoffice.org/latest/en-US/text/sbasic/shared/03/SF_Writer.html?DbPAR=BASIC
+'''
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+REM ================================================================== EXCEPTIONS
+
+Private Const UNKNOWNFILEERROR = "UNKNOWNFILEERROR"
+
+REM ============================================================= PRIVATE MEMBERS
+
+Private [Me] As Object
+Private [_Parent] As Object
+Private [_Super] As Object ' Document superclass, which the current instance is a subclass of
+Private ObjectType As String ' Must be WRITER
+Private ServiceName As String
+
+' Window component
+Private _Component As Object ' com.sun.star.lang.XComponent
+
+REM ============================================================ MODULE CONSTANTS
+
+REM ====================================================== CONSTRUCTOR/DESTRUCTOR
+
+REM -----------------------------------------------------------------------------
+Private Sub Class_Initialize()
+ Set [Me] = Nothing
+ Set [_Parent] = Nothing
+ Set [_Super] = Nothing
+ ObjectType = "WRITER"
+ ServiceName = "SFDocuments.Writer"
+ Set _Component = Nothing
+End Sub ' SFDocuments.SF_Writer Constructor
+
+REM -----------------------------------------------------------------------------
+Private Sub Class_Terminate()
+ Call Class_Initialize()
+End Sub ' SFDocuments.SF_Writer Destructor
+
+REM -----------------------------------------------------------------------------
+Public Function Dispose() As Variant
+ If Not IsNull([_Super]) Then Set [_Super] = [_Super].Dispose()
+ Call Class_Terminate()
+ Set Dispose = Nothing
+End Function ' SFDocuments.SF_Writer Explicit Destructor
+
+REM ================================================================== PROPERTIES
+
+REM ===================================================================== METHODS
+
+REM -----------------------------------------------------------------------------
+Public Function GetProperty(Optional ByVal PropertyName As Variant _
+ , Optional ObjectName As Variant _
+ ) As Variant
+''' Return the actual value of the given property
+''' Args:
+''' PropertyName: the name of the property as a string
+''' ObjectName: a sheet or range name
+''' Returns:
+''' The actual value of the property
+''' Exceptions:
+''' ARGUMENTERROR The property does not exist
+
+Const cstThisSub = "SFDocuments.Writer.GetProperty"
+Const cstSubArgs = ""
+
+ If ScriptForge.SF_Utils._ErrorHandling() Then On Local Error GoTo Catch
+ GetProperty = Null
+
+Check:
+ If IsMissing(ObjectName) Or IsEmpty(ObjectName) Then ObjectName = ""
+ If ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs) Then
+ If Not ScriptForge.SF_Utils._Validate(PropertyName, "PropertyName", V_STRING, Properties()) Then GoTo Catch
+ If Not ScriptForge.SF_Utils._Validate(ObjectName, "ObjectName", V_STRING) Then GoTo Catch
+ End If
+
+Try:
+ ' Superclass or subclass property ?
+ If ScriptForge.SF_Array.Contains([_Super].Properties(), PropertyName) Then
+ GetProperty = [_Super].GetProperty(PropertyName)
+ ElseIf Len(ObjectName) = 0 Then
+ GetProperty = _PropertyGet(PropertyName)
+ Else
+ GetProperty = _PropertyGet(PropertyName, ObjectName)
+ End If
+
+Finally:
+ ScriptForge.SF_Utils._ExitFunction(cstThisSub)
+ Exit Function
+Catch:
+ GoTo Finally
+End Function ' SFDocuments.SF_Writer.GetProperty
+
+REM -----------------------------------------------------------------------------
+Public Function Methods() As Variant
+''' Return the list of public methods of the Writer service as an array
+
+ Methods = Array( _
+ "Activate" _
+ , "CloseDocument" _
+ , "RunCommand" _
+ , "Save" _
+ , "SaveAs" _
+ , "SaveCopyAs" _
+ )
+
+End Function ' SFDocuments.SF_Writer.Methods
+
+REM -----------------------------------------------------------------------------
+Public Function Properties() As Variant
+''' Return the list or properties of the Writer class as an array
+
+ Properties = Array( _
+ "CustomProperties" _
+ , "Description" _
+ , "DocumentProperties" _
+ , "DocumentType" _
+ , "IsBase" _
+ , "IsCalc" _
+ , "IsDraw" _
+ , "IsImpress" _
+ , "IsMath" _
+ , "IsWriter" _
+ , "Keywords" _
+ , "Readonly" _
+ , "Subject" _
+ , "Title" _
+ , "XComponent" _
+ )
+
+End Function ' SFDocuments.SF_Writer.Properties
+
+REM -----------------------------------------------------------------------------
+Private Function SetProperty(Optional ByVal psProperty As String _
+ , Optional ByVal pvValue As Variant _
+ ) As Boolean
+''' Set the new value of the named property
+''' Args:
+''' psProperty: the name of the property
+''' pvValue: the new value of the given property
+''' Returns:
+''' True if successful
+
+Dim bSet As Boolean ' Return value
+Static oSession As Object ' Alias of SF_Session
+Dim cstThisSub As String
+Const cstSubArgs = "Value"
+
+ If ScriptForge.SF_Utils._ErrorHandling() Then On Local Error GoTo Catch
+ bSet = False
+
+ cstThisSub = "SFDocuments.Writer.set" & psProperty
+ If IsMissing(pvValue) Then pvValue = Empty
+ 'ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs) ' Validation done in Property Lets
+
+ If IsNull(oSession) Then Set oSession = ScriptForge.SF_Services.CreateScriptService("Session")
+ bSet = True
+ Select Case UCase(psProperty)
+ Case UCase("CustomProperties")
+ CustomProperties = pvValue
+ Case UCase("Description")
+ Description = pvValue
+ Case UCase("Keywords")
+ Keywords = pvValue
+ Case UCase("Subject")
+ Subject = pvValue
+ Case UCase("Title")
+ Title = pvValue
+ Case Else
+ bSet = False
+ End Select
+
+Finally:
+ SetProperty = bSet
+ 'ScriptForge.SF_Utils._ExitFunction(cstThisSub)
+ Exit Function
+Catch:
+ GoTo Finally
+End Function ' SFDocuments.SF_Writer.SetProperty
+
+REM ======================================================= SUPERCLASS PROPERTIES
+
+REM -----------------------------------------------------------------------------
+Property Get CustomProperties() As Variant
+ CustomProperties = [_Super].GetProperty("CustomProperties")
+End Property ' SFDocuments.SF_Writer.CustomProperties
+
+REM -----------------------------------------------------------------------------
+Property Let CustomProperties(Optional ByVal pvCustomProperties As Variant)
+ [_Super].CustomProperties = pvCustomProperties
+End Property ' SFDocuments.SF_Writer.CustomProperties
+
+REM -----------------------------------------------------------------------------
+Property Get Description() As Variant
+ Description = [_Super].GetProperty("Description")
+End Property ' SFDocuments.SF_Writer.Description
+
+REM -----------------------------------------------------------------------------
+Property Let Description(Optional ByVal pvDescription As Variant)
+ [_Super].Description = pvDescription
+End Property ' SFDocuments.SF_Writer.Description
+
+REM -----------------------------------------------------------------------------
+Property Get DocumentProperties() As Variant
+ DocumentProperties = [_Super].GetProperty("DocumentProperties")
+End Property ' SFDocuments.SF_Writer.DocumentProperties
+
+REM -----------------------------------------------------------------------------
+Property Get DocumentType() As String
+ DocumentType = [_Super].GetProperty("DocumentType")
+End Property ' SFDocuments.SF_Writer.DocumentType
+
+REM -----------------------------------------------------------------------------
+Property Get IsBase() As Boolean
+ IsBase = [_Super].GetProperty("IsBase")
+End Property ' SFDocuments.SF_Writer.IsBase
+
+REM -----------------------------------------------------------------------------
+Property Get IsCalc() As Boolean
+ IsCalc = [_Super].GetProperty("IsCalc")
+End Property ' SFDocuments.SF_Writer.IsCalc
+
+REM -----------------------------------------------------------------------------
+Property Get IsDraw() As Boolean
+ IsDraw = [_Super].GetProperty("IsDraw")
+End Property ' SFDocuments.SF_Writer.IsDraw
+
+REM -----------------------------------------------------------------------------
+Property Get IsImpress() As Boolean
+ IsImpress = [_Super].GetProperty("IsImpress")
+End Property ' SFDocuments.SF_Writer.IsImpress
+
+REM -----------------------------------------------------------------------------
+Property Get IsMath() As Boolean
+ IsMath = [_Super].GetProperty("IsMath")
+End Property ' SFDocuments.SF_Writer.IsMath
+
+REM -----------------------------------------------------------------------------
+Property Get IsWriter() As Boolean
+ IsWriter = [_Super].GetProperty("IsWriter")
+End Property ' SFDocuments.SF_Writer.IsWriter
+
+REM -----------------------------------------------------------------------------
+Property Get Keywords() As Variant
+ Keywords = [_Super].GetProperty("Keywords")
+End Property ' SFDocuments.SF_Writer.Keywords
+
+REM -----------------------------------------------------------------------------
+Property Let Keywords(Optional ByVal pvKeywords As Variant)
+ [_Super].Keywords = pvKeywords
+End Property ' SFDocuments.SF_Writer.Keywords
+
+REM -----------------------------------------------------------------------------
+Property Get Readonly() As Variant
+ Readonly = [_Super].GetProperty("Readonly")
+End Property ' SFDocuments.SF_Writer.Readonly
+
+REM -----------------------------------------------------------------------------
+Property Get Subject() As Variant
+ Subject = [_Super].GetProperty("Subject")
+End Property ' SFDocuments.SF_Writer.Subject
+
+REM -----------------------------------------------------------------------------
+Property Let Subject(Optional ByVal pvSubject As Variant)
+ [_Super].Subject = pvSubject
+End Property ' SFDocuments.SF_Writer.Subject
+
+REM -----------------------------------------------------------------------------
+Property Get Title() As Variant
+ Title = [_Super].GetProperty("Title")
+End Property ' SFDocuments.SF_Writer.Title
+
+REM -----------------------------------------------------------------------------
+Property Let Title(Optional ByVal pvTitle As Variant)
+ [_Super].Title = pvTitle
+End Property ' SFDocuments.SF_Writer.Title
+
+REM -----------------------------------------------------------------------------
+Property Get XComponent() As Variant
+ XComponent = [_Super].GetProperty("XComponent")
+End Property ' SFDocuments.SF_Writer.XComponent
+
+REM ========================================================== SUPERCLASS METHODS
+
+REM -----------------------------------------------------------------------------
+Public Function Activate() As Boolean
+ Activate = [_Super].Activate()
+End Function ' SFDocuments.SF_Writer.Activate
+
+REM -----------------------------------------------------------------------------
+Public Function CloseDocument(Optional ByVal SaveAsk As Variant) As Boolean
+ CloseDocument = [_Super].CloseDocument(SaveAsk)
+End Function ' SFDocuments.SF_Writer.CloseDocument
+
+REM -----------------------------------------------------------------------------
+Public Sub RunCommand(Optional ByVal Command As Variant)
+ [_Super].RunCommand(Command)
+End Sub ' SFDocuments.SF_Writer.RunCommand
+
+REM -----------------------------------------------------------------------------
+Public Function Save() As Boolean
+ Save = [_Super].Save()
+End Function ' SFDocuments.SF_Writer.Save
+
+REM -----------------------------------------------------------------------------
+Public Function SaveAs(Optional ByVal FileName As Variant _
+ , Optional ByVal Overwrite As Variant _
+ , Optional ByVal Password As Variant _
+ , Optional ByVal FilterName As Variant _
+ , Optional ByVal FilterOptions As Variant _
+ ) As Boolean
+ SaveAs = [_Super].SaveAs(FileName, Overwrite, Password, FilterName, FilterOptions)
+End Function ' SFDocuments.SF_Writer.SaveAs
+
+REM -----------------------------------------------------------------------------
+Public Function SaveCopyAs(Optional ByVal FileName As Variant _
+ , Optional ByVal Overwrite As Variant _
+ , Optional ByVal Password As Variant _
+ , Optional ByVal FilterName As Variant _
+ , Optional ByVal FilterOptions As Variant _
+ ) As Boolean
+ SaveCopyAs = [_Super].SaveCopyAs(FileName, Overwrite, Password, FilterName, FilterOptions)
+End Function ' SFDocuments.SF_Writer.SaveCopyAs
+
+REM =========================================================== PRIVATE FUNCTIONS
+
+REM -----------------------------------------------------------------------------
+Private Function _FileIdent() As String
+''' Returns a file identification from the information that is currently available
+''' Useful e.g. for display in error messages
+
+ _FileIdent = [_Super]._FileIdent()
+
+End Function ' SFDocuments.SF_Writer._FileIdent
+
+REM -----------------------------------------------------------------------------
+Private Function _IsStillAlive(Optional ByVal pbForUpdate As Boolean _
+ , Optional ByVal pbError As Boolean _
+ ) As Boolean
+''' Returns True if the document has not been closed manually or incidentally since the last use
+''' If dead the actual instance is disposed. The execution is cancelled when pbError = True (default)
+''' Args:
+''' pbForUpdate: if True (default = False), check additionally if document is open for editing
+''' pbError: if True (default), raise a fatal error
+
+Dim bAlive As Boolean ' Return value
+
+ If IsMissing(pbForUpdate) Then pbForUpdate = False
+ If IsMissing(pbError) Then pbError = True
+
+Try:
+ bAlive = [_Super]._IsStillAlive(pbForUpdate, pbError)
+
+Finally:
+ _IsStillAlive = bAlive
+ Exit Function
+End Function ' SFDocuments.SF_Writer._IsStillAlive
+
+REM -----------------------------------------------------------------------------
+Private Function _PropertyGet(Optional ByVal psProperty As String _
+ , Optional ByVal pvArg As Variant _
+ ) As Variant
+''' Return the value of the named property
+''' Args:
+''' psProperty: the name of the property
+
+Dim cstThisSub As String
+Const cstSubArgs = ""
+
+ _PropertyGet = False
+
+ cstThisSub = "SFDocuments.Writer.get" & psProperty
+ ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs)
+ If Not _IsStillAlive() Then GoTo Finally
+
+ Select Case psProperty
+ Case Else
+ _PropertyGet = Null
+ End Select
+
+Finally:
+ ScriptForge.SF_Utils._ExitFunction(cstThisSub)
+ Exit Function
+End Function ' SFDocuments.SF_Writer._PropertyGet
+
+REM -----------------------------------------------------------------------------
+Private Function _Repr() As String
+''' Convert the SF_Writer instance to a readable string, typically for debugging purposes (DebugPrint ...)
+''' Args:
+''' Return:
+''' "[DOCUMENT]: Type/File"
+
+ _Repr = "[Writer]: " & [_Super]._FileIdent()
+
+End Function ' SFDocuments.SF_Writer._Repr
+
+REM ============================================ END OF SFDOCUMENTS.SF_WRITER
+</script:module>
\ No newline at end of file
diff --git a/wizards/source/sfdocuments/script.xlb b/wizards/source/sfdocuments/script.xlb
index b4c70afe4f2b..881ef70e0f6b 100644
--- a/wizards/source/sfdocuments/script.xlb
+++ b/wizards/source/sfdocuments/script.xlb
@@ -8,4 +8,5 @@
<library:element library:name="SF_Base"/>
<library:element library:name="SF_Form"/>
<library:element library:name="SF_FormControl"/>
+ <library:element library:name="SF_Writer"/>
</library:library>
\ No newline at end of file
More information about the Libreoffice-commits
mailing list