[Libreoffice-commits] .: Branch 'feature/gsoc2011_wizards' - wizards/com

Xisco Fauli xfauli at kemper.freedesktop.org
Tue Aug 2 03:52:22 PDT 2011


 wizards/com/sun/star/wizards/common/Properties.py |   46 ++++++++++++++++++++++
 1 file changed, 46 insertions(+)

New commits:
commit 80eaa8dfbe60078a148f4d4a1858bf15e5797bf6
Author: Xisco Fauli <anistenis at gmail.com>
Date:   Tue Aug 2 12:51:52 2011 +0200

    I forgot to add this file

diff --git a/wizards/com/sun/star/wizards/common/Properties.py b/wizards/com/sun/star/wizards/common/Properties.py
new file mode 100644
index 0000000..fc0abe9
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/Properties.py
@@ -0,0 +1,46 @@
+from com.sun.star.beans import PropertyValue
+
+'''
+Simplifies handling Arrays of PropertyValue.
+To make a use of this class, instantiate it, and call
+the put(propName,propValue) method.
+caution: propName should always be a String.
+When finished, call the getProperties() method to get an array of the set properties.
+ at author  rp
+'''
+
+class Properties(dict):
+
+    @classmethod
+    def getPropertyValue(self, props, propName):
+        for i in props:
+            if propName == i.Name:
+                return i.Value
+
+        raise AttributeError ("Property '" + propName + "' not found.")
+
+    @classmethod
+    def hasPropertyValue(self, props, propName):
+        for i in props:
+            if propName == i.Name:
+                return True
+        return False
+
+    @classmethod
+    def getProperties(self, _map=None):
+        if _map is None:
+            _map = self
+        pv = PropertyValue[_map.size()]
+        it = _map.keySet().iterator()
+        while i in pv:
+            i = createProperty(it.next(), _map)
+        return pv
+
+    @classmethod
+    def createProperty(self, name, value, handle=None):
+        pv = PropertyValue()
+        pv.Name = name
+        pv.Value = value
+        if handle is not None:
+            pv.Handle = handle
+        return pv


More information about the Libreoffice-commits mailing list