summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/common/Configuration.py
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/com/sun/star/wizards/common/Configuration.py')
-rw-r--r--wizards/com/sun/star/wizards/common/Configuration.py213
1 files changed, 213 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/common/Configuration.py b/wizards/com/sun/star/wizards/common/Configuration.py
new file mode 100644
index 000000000..0e3abe128
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/Configuration.py
@@ -0,0 +1,213 @@
+from PropertyNames import PropertyNames
+from Helper import *
+import traceback
+import uno
+'''
+This class gives access to the OO configuration api.
+It contains 4 get and 4 set convenience methods for getting and settings
+properties in the configuration. <br/>
+For the get methods, two parameters must be given: name and parent, where
+name is the name of the property, parent is a HierarchyElement
+(::com::sun::star::configuration::HierarchyElement)<br/>
+The get and set methods support hieryrchical property names like
+"options/gridX". <br/>
+NOTE: not yet supported, but sometime later,
+If you will ommit the "parent" parameter, then the "name" parameter must be
+in hierarchy form from the root of the registry.
+'''
+
+class Configuration(object):
+
+ @classmethod
+ def getConfigurationRoot(self, xmsf, sPath, updateable):
+ oConfigProvider = xmsf.createInstance(
+ "com.sun.star.configuration.ConfigurationProvider")
+ args = []
+
+ aPathArgument = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ aPathArgument.Name = "nodepath"
+ aPathArgument.Value = sPath
+
+ args.append(aPathArgument)
+ if updateable:
+ sView = "com.sun.star.configuration.ConfigurationUpdateAccess"
+ aModeArgument = uno.createUnoStruct(
+ 'com.sun.star.beans.PropertyValue')
+ aModeArgument.Name = "lazywrite"
+ aModeArgument.Value = False
+ args.append(aModeArgument)
+ else:
+ sView = "com.sun.star.configuration.ConfigurationAccess"
+
+ return oConfigProvider.createInstanceWithArguments(sView, tuple(args))
+
+ @classmethod
+ def getProductName(self, xMSF):
+ try:
+ oProdNameAccess = self.getConfigurationRoot(xMSF,
+ "org.openoffice.Setup/Product", False)
+ ProductName = Helper.getUnoObjectbyName(oProdNameAccess, "ooName")
+ return ProductName
+ except Exception:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def getOfficeLocaleString(self, xMSF):
+ sLocale = ""
+ try:
+ aLocLocale = Locale.Locale()
+ oMasterKey = self.getConfigurationRoot(xMSF,
+ "org.openoffice.Setup/L10N/", False)
+ sLocale = (String)
+ Helper.getUnoObjectbyName(oMasterKey, "ooLocale")
+ except Exception, exception:
+ traceback.print_exc()
+
+ return sLocale
+
+ @classmethod
+ def getOfficeLocale(self, xMSF):
+ aLocLocale = Locale.Locale()
+ sLocale = getOfficeLocaleString(xMSF)
+ sLocaleList = JavaTools.ArrayoutofString(sLocale, "-")
+ aLocLocale.Language = sLocaleList[0]
+ if sLocaleList.length > 1:
+ aLocLocale.Country = sLocaleList[1]
+
+ return aLocLocale
+
+ @classmethod
+ def getOfficeLinguistic(self, xMSF):
+ try:
+ oMasterKey = self.getConfigurationRoot(xMSF,
+ "org.openoffice.Setup/L10N/", False)
+ sLinguistic = Helper.getUnoObjectbyName(oMasterKey, "ooLocale")
+ return sLinguistic
+ except Exception, exception:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def removeNode(self, configView, name):
+
+ if configView.hasByName(name):
+ configView.removeByName(name)
+
+ @classmethod
+ def updateConfiguration(self, xmsf, path, name, node, param):
+ view = self.getConfigurationRoot(xmsf, path, True)
+ addConfigNode(path, name)
+ node.writeConfiguration(view, param)
+ view.commitChanges()
+
+ @classmethod
+ def removeNode(self, xmsf, path, name):
+ view = self.getConfigurationRoot(xmsf, path, True)
+ removeNode(view, name)
+ view.commitChanges()
+
+ @classmethod
+ def getNodeDisplayNames(self, _xNameAccessNode):
+ snames = None
+ return getNodeChildNames(_xNameAccessNode,
+ PropertyNames.PROPERTY_NAME)
+
+ @classmethod
+ def getNodeChildNames(self, xNameAccessNode, _schildname):
+ snames = None
+ try:
+ snames = xNameAccessNode.getElementNames()
+ sdisplaynames = range(snames.length)
+ i = 0
+ while i < snames.length:
+ oContent = Helper.getUnoPropertyValue(
+ xNameAccessNode.getByName(snames[i]), _schildname)
+ if not AnyConverter.isVoid(oContent):
+ sdisplaynames[i] = (String)
+ Helper.getUnoPropertyValue(xNameAccessNode.getByName(
+ snames[i]), _schildname)
+ else:
+ sdisplaynames[i] = snames[i]
+
+ i += 1
+ return sdisplaynames
+ except Exception, e:
+ traceback.print_exc()
+ return snames
+
+ @classmethod
+ def getChildNodebyIndex(self, _xNameAccess, _index):
+ try:
+ snames = _xNameAccess.getElementNames()
+ oNode = _xNameAccess.getByName(snames[_index])
+ return oNode
+ except Exception, e:
+ traceback.print_exc()
+ return None
+
+ @classmethod
+ def getChildNodebyName(self, _xNameAccessNode, _SubNodeName):
+ try:
+ if _xNameAccessNode.hasByName(_SubNodeName):
+ return _xNameAccessNode.getByName(_SubNodeName)
+
+ except Exception, e:
+ traceback.print_exc()
+
+ return None
+
+ @classmethod
+ def getChildNodebyDisplayName(self, _xNameAccessNode, _displayname):
+ snames = None
+ return getChildNodebyDisplayName(_xNameAccessNode, _displayname,
+ PropertyNames.PROPERTY_NAME)
+
+ @classmethod
+ def getChildNodebyDisplayName(self, _xNameAccessNode, _displayname,
+ _nodename):
+
+ snames = None
+ try:
+ snames = _xNameAccessNode.getElementNames()
+ sdisplaynames = range(snames.length)
+ i = 0
+ while i < snames.length:
+ curdisplayname = Helper.getUnoPropertyValue(
+ _xNameAccessNode.getByName(snames[i]), _nodename)
+ if curdisplayname.equals(_displayname):
+ return _xNameAccessNode.getByName(snames[i])
+
+ i += 1
+ except Exception, e:
+ traceback.print_exc()
+
+ return None
+
+ @classmethod
+ def getChildNodebyDisplayName(self, _xMSF, _aLocale, _xNameAccessNode,
+ _displayname, _nodename, _nmaxcharcount):
+
+ snames = None
+ try:
+ snames = _xNameAccessNode.getElementNames()
+ sdisplaynames = range(snames.length)
+ i = 0
+ while i < snames.length:
+ curdisplayname = Helper.getUnoPropertyValue(
+ _xNameAccessNode.getByName(snames[i]), _nodename)
+ if (_nmaxcharcount > 0) and (_nmaxcharcount < \
+ curdisplayname.length()):
+ curdisplayname = curdisplayname.substring(0,
+ _nmaxcharcount)
+
+ curdisplayname = Desktop.removeSpecialCharacters(_xMSF,
+ _aLocale, curdisplayname)
+ if curdisplayname.equals(_displayname):
+ return _xNameAccessNode.getByName(snames[i])
+
+ i += 1
+ except Exception, e:
+ traceback.print_exc()
+ return None