wizards/source/sfdocuments/SF_Base.xba | 68 ++++++++++++++++++++++++++--- wizards/source/sfdocuments/SF_Calc.xba | 4 - wizards/source/sfdocuments/SF_Document.xba | 6 +- wizards/source/sfdocuments/SF_Form.xba | 2 4 files changed, 69 insertions(+), 11 deletions(-)
New commits: commit 3bec3349e9898ee69645a88bbd0b722222a8dfa8 Author: Jean-Pierre Ledure <j...@ledure.be> AuthorDate: Sat Dec 19 15:12:10 2020 +0100 Commit: Jean-Pierre Ledure <j...@ledure.be> CommitDate: Sun Dec 20 10:42:17 2020 +0100 ScriptForge - (SF_Base) new OpenFormDocument() method OpenFormDocument has 2 arguments - the form document hierarchical name - the mode: normal or design If the form document is already open, the focus is set on it Change-Id: I6fb055cde2e856d7dad17af99b11bc2fd15060c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108023 Tested-by: Jean-Pierre Ledure <j...@ledure.be> Tested-by: Jenkins Reviewed-by: Jean-Pierre Ledure <j...@ledure.be> diff --git a/wizards/source/sfdocuments/SF_Base.xba b/wizards/source/sfdocuments/SF_Base.xba index d0900849255f..92101c6f41d8 100644 --- a/wizards/source/sfdocuments/SF_Base.xba +++ b/wizards/source/sfdocuments/SF_Base.xba @@ -349,9 +349,9 @@ Public Function IsLoaded(Optional ByVal FormDocument As Variant) As Boolean ''' Args: ''' FormDocument: a valid document form name as a case-sensitive string ''' Returns: -''' True if the form document is currently open, otherise False +''' True if the form document is currently open, otherwise False ''' Exceptions: -''' Form is invalid +''' Form name is invalid ''' Example: ''' MsgBox oDoc.IsLoaded("Folder1/myFormDocument") @@ -374,7 +374,6 @@ Check: End If Try: - Set oMainForm = _FormDocuments.getByHierarchicalName(FormDocument) ' A document form that has never been opened has no component ' If ever opened and closed afterwards, it keeps the Component but loses its Controller @@ -391,7 +390,7 @@ End Function ' SFDocuments.SF_Base.IsLoaded REM ----------------------------------------------------------------------------- Public Function Methods() As Variant -''' Return the list of public methods of the Model service as an array +''' Return the list of public methods of the Base class as an array Methods = Array( _ "Activate" _ @@ -407,9 +406,68 @@ Public Function Methods() As Variant End Function ' SFDocuments.SF_Base.Methods +REM ----------------------------------------------------------------------------- +Public Function OpenFormDocument(Optional ByVal FormDocument As Variant _ + , Optional ByVal DesignMode As Variant _ + ) As Boolean +''' Open the FormDocument given by its hierarchical name either in normal or in design mode +''' If the form document is already open, the form document is made active without changing its mode +''' Args: +''' FormDocument: a valid document form name as a case-sensitive string +''' DesignMode: when True the form document is opened in design mode (Default = False) +''' Returns: +''' True if the form document could be opened, otherwise False +''' Exceptions: +''' Form name is invalid +''' Example: +''' oDoc.OpenFormDocument("Folder1/myFormDocument") + +Dim bOpen As Boolean ' Return value +Dim vFormNames As Variant ' Array of all document form names present in the document +Dim oContainer As Object ' com.sun.star.awt.XWindow +Const cstThisSub = "SFDocuments.Base.OpenFormDocument" +Const cstSubArgs = "FormDocument, [DesignMode=False]" + + If ScriptForge.SF_Utils._ErrorHandling() Then On Local Error GoTo Catch + bOpen = False + +Check: + If IsMissing(DesignMode) Or IsEmpty(DesignMode) Then DesignMode = False + If ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs) Then + If Not _IsStillAlive() Then GoTo Finally + ' Build list of available FormDocuments recursively with _CollectFormDocuments + If IsNull(_FormDocuments) Then Set _FormDocuments = _Component.getFormDocuments() + vFormNames = Split(_CollectFormDocuments(_FormDocuments), cstToken) + If Not ScriptForge.SF_Utils._Validate(FormDocument, "FormDocument", V_STRING, vFormNames) Then GoTo Finally + If Not ScriptForge.SF_Utils._Validate(DesignMode, "DesignMode", ScriptForge.V_BOOLEAN) Then GoTo Finally + End If + +Try: + If IsLoaded(FormDocument) Then ' Activate + Set oContainer = _FormDocuments.getByHierarchicalName(FormDocument).Component.CurrentController.Frame.ContainerWindow + With oContainer + If .isVisible() = False Then .setVisible(True) + .IsMinimized = False + .setFocus() + .toFront() ' Force window change in Linux + Wait 1 ' Bypass desynchro issue in Linux + End With + Else ' Open + _Component.CurrentController.loadComponent(com.sun.star.sdb.application.DatabaseObject.FORM, FormDocument, DesignMode) + bOpen = True + End If + +Finally: + OpenFormDocument = bOpen + ScriptForge.SF_Utils._ExitFunction(cstThisSub) + Exit Function +Catch: + GoTo Finally +End Function ' SFDocuments.SF_Base.OpenFormDocument + REM ----------------------------------------------------------------------------- Public Function Properties() As Variant -''' Return the list or properties of the Timer class as an array +''' Return the list or properties of the Base class as an array Properties = Array( _ "DocumentType" _ diff --git a/wizards/source/sfdocuments/SF_Calc.xba b/wizards/source/sfdocuments/SF_Calc.xba index aeb19ffed9c7..48f35fed98f0 100644 --- a/wizards/source/sfdocuments/SF_Calc.xba +++ b/wizards/source/sfdocuments/SF_Calc.xba @@ -1329,7 +1329,7 @@ End Function ' SFDocuments.SF_Calc.InsertSheet REM ----------------------------------------------------------------------------- Public Function Methods() As Variant -''' Return the list of public methods of the Model service as an array +''' Return the list of public methods of the Calc service as an array Methods = Array( _ "Activate" _ @@ -1548,7 +1548,7 @@ End Function ' SF_Documents.SF_Calc.Offset REM ----------------------------------------------------------------------------- Public Function Properties() As Variant -''' Return the list or properties of the Timer class as an array +''' Return the list or properties of the Calc class as an array Properties = Array( _ "CurrentSelection" _ diff --git a/wizards/source/sfdocuments/SF_Document.xba b/wizards/source/sfdocuments/SF_Document.xba index 227638e99efa..d7dc14e5e9ed 100644 --- a/wizards/source/sfdocuments/SF_Document.xba +++ b/wizards/source/sfdocuments/SF_Document.xba @@ -570,7 +570,7 @@ End Function ' SFDocuments.SF_Document.GetProperty REM ----------------------------------------------------------------------------- Public Function Methods() As Variant -''' Return the list of public methods of the Model service as an array +''' Return the list of public methods of the Document service as an array Methods = Array( _ "Activate" _ @@ -585,7 +585,7 @@ End Function ' SFDocuments.SF_Document.Methods REM ----------------------------------------------------------------------------- Public Function Properties() As Variant -''' Return the list or properties of the Timer class as an array +''' Return the list or properties of the Document class as an array Properties = Array( _ "CustomProperties" _ @@ -594,7 +594,7 @@ Public Function Properties() As Variant , "DocumentType" _ , "IsBase" _ , "IsCalc" _ - , "IsDraw " _ + , "IsDraw" _ , "IsImpress" _ , "IsMath" _ , "IsWriter" _ diff --git a/wizards/source/sfdocuments/SF_Form.xba b/wizards/source/sfdocuments/SF_Form.xba index 0b9303fae9b6..ee905e729581 100644 --- a/wizards/source/sfdocuments/SF_Form.xba +++ b/wizards/source/sfdocuments/SF_Form.xba @@ -416,7 +416,7 @@ End Function ' SFDocuments.SF_Form.GetProperty REM ----------------------------------------------------------------------------- Public Function Methods() As Variant -''' Return the list of public methods of the Model service as an array +''' Return the list of public methods of the Form service as an array Methods = Array( _ "Activate" _ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits