diff options
author | RMZeroFour <ritobroto04@gmail.com> | 2024-04-19 00:19:00 +0530 |
---|---|---|
committer | Hossein <hossein@libreoffice.org> | 2024-06-04 15:16:38 +0200 |
commit | 21d7936b320e084a08ef70211a3a51106503ab98 (patch) | |
tree | b7ed40859c2b52e3a053c634b0c988bd3ea7056e /odk/examples/DevelopersGuide/OfficeDev/PathSubstitution | |
parent | 24ab535087991f1ce8dee9a561476bc0a987bac5 (diff) |
tdf#143123 Port Java PathSubstitution example to Python
This commit ports the PathSubstitution example in
odk/examples/DevelopersGuide/OfficeDev/ to Python.
The original Java example code was moved to a java/ subdirectory, and
the new Python code was added to the python/ subdirectory. Necessary
changes were made in the corresponding Makefiles.
The example can be run with: ./instdir/program/python \
./odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/\
python/path_substitution_test.py
Change-Id: I6c7a8af86cee2dc9cb5384e42bd9644847f28767
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166264
Reviewed-by: Hossein <hossein@libreoffice.org>
Tested-by: Jenkins
Diffstat (limited to 'odk/examples/DevelopersGuide/OfficeDev/PathSubstitution')
-rw-r--r-- | odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/java/Makefile (renamed from odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/Makefile) | 2 | ||||
-rw-r--r-- | odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/java/PathSubstitutionTest.java (renamed from odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/PathSubstitutionTest.java) | 0 | ||||
-rw-r--r-- | odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/python/path_substitution_test.py | 69 |
3 files changed, 70 insertions, 1 deletions
diff --git a/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/Makefile b/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/java/Makefile index 20bb65687613..6e0a6f18eaef 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/Makefile +++ b/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/java/Makefile @@ -34,7 +34,7 @@ # Builds the OfficeDevPathSettingsTest example of the Developers Guide. -PRJ=../../../.. +PRJ=../../../../.. SETTINGS=$(PRJ)/settings include $(SETTINGS)/settings.mk diff --git a/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/PathSubstitutionTest.java b/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/java/PathSubstitutionTest.java index 98fd919c9604..98fd919c9604 100644 --- a/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/PathSubstitutionTest.java +++ b/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/java/PathSubstitutionTest.java diff --git a/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/python/path_substitution_test.py b/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/python/path_substitution_test.py new file mode 100644 index 000000000000..e2d923cbd825 --- /dev/null +++ b/odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/python/path_substitution_test.py @@ -0,0 +1,69 @@ +# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import traceback +import officehelper + +from com.sun.star.container import NoSuchElementException + +# This example demonstrates how to access and use the PathSettings service + +# List of pre-defined path variables supported by the path substitution service. +predefined_path_properties = [ + "$(home)", "$(inst)", "$(prog)", "$(temp)", "$(user)", + "$(username)", "$(work)", "$(path)", "$(langid)", "$(vlang)" +] + +def work_with_path_settings(): + try: + # Get a reference to the remote office context + # If necessary, a new office process is started + context = officehelper.bootstrap() + print("Connected to a running office ...") + + # Get a reference to the service manager and path substitution service + srv_mgr = context.getServiceManager() + path_subst_service = srv_mgr.createInstanceWithContext( + "com.sun.star.comp.framework.PathSubstitution", context) + + work_with_path_variables(path_subst_service) + + except Exception as e: + print(str(e)) + traceback.print_exc() + +def work_with_path_variables(path_subst_service): + if path_subst_service is None: + return + + # Retrieve values for path properties from path settings service + for prop in predefined_path_properties: + try: + value = path_subst_service.getSubstituteVariableValue(prop) + print(prop, '=', value) + except NoSuchElementException as e: + print("NoSuchElementException thrown when accessing", prop) + print(str(e)) + traceback.print_exc() + + try: + # Now try the resubstitution function + path = path_subst_service.getSubstituteVariableValue(predefined_path_properties[0]) + path += "/test" # extend the path + print("Path =", path) + resubst_path = path_subst_service.reSubstituteVariables(path) + print("Resubstituted path =", resubst_path) + except NoSuchElementException as e: + print("NoSuchElementException thrown when accessing", predefined_path_properties[0]) + print(str(e)) + traceback.print_exc() + +if __name__ == "__main__": + work_with_path_settings() + +# vim: set shiftwidth=4 softtabstop=4 expandtab:
\ No newline at end of file |