diff options
author | Xisco Fauli <anistenis@gmail.com> | 2013-09-08 19:56:06 +0200 |
---|---|---|
committer | Xisco Fauli <anistenis@gmail.com> | 2013-09-08 20:00:24 +0200 |
commit | 7e5cc31838cf2296139540a23d600e94182e4924 (patch) | |
tree | 94a5ae9cbddc17209e3392488892e3dd92cc9008 /wizards/com/sun/star/wizards/ui | |
parent | 6f83e4389912967432260ead0db132f373a880bd (diff) |
pywizards: Fix date and time fields
Change-Id: I7be16558bab7c4dde2d326808b9fb115a6878894
Diffstat (limited to 'wizards/com/sun/star/wizards/ui')
-rw-r--r-- | wizards/com/sun/star/wizards/ui/event/DataAware.py | 13 | ||||
-rw-r--r-- | wizards/com/sun/star/wizards/ui/event/UnoDataAware.py | 21 |
2 files changed, 25 insertions, 9 deletions
diff --git a/wizards/com/sun/star/wizards/ui/event/DataAware.py b/wizards/com/sun/star/wizards/ui/event/DataAware.py index 5c8c5aabaae5..323257a1705e 100644 --- a/wizards/com/sun/star/wizards/ui/event/DataAware.py +++ b/wizards/com/sun/star/wizards/ui/event/DataAware.py @@ -20,6 +20,10 @@ import uno from abc import ABCMeta, abstractmethod from ...common.PropertyNames import PropertyNames +from com.sun.star.util import Date +from com.sun.star.util import Time +from datetime import datetime + ''' @author rpiterman DataAware objects are used to live-synchronize UI and DataModel/DataObject. @@ -118,9 +122,12 @@ class DataAware(object): data = uno.invoke(self._dataObject, "get" + self._field, ()) ui = self.getFromUI() if data is not ui: - #if isinstance(ui,tuple): - #Selected Element listbox - # ui = ui[0] + if isinstance(ui,Date): + d = datetime(ui.Year, ui.Month, ui.Day) + ui = d.strftime('%d/%m/%y') + elif isinstance(ui,Time): + t = datetime(1, 1, 1, ui.Hours, ui.Minutes) + ui = t.strftime('%H:%M') if useUno: uno.invoke(self._dataObject, "set" + self._field, (ui,)) else: diff --git a/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py b/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py index ea728b9687f6..1ed80a10dbc6 100644 --- a/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py +++ b/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py @@ -17,7 +17,9 @@ # import uno from .CommonListener import ItemListenerProcAdapter, TextListenerProcAdapter -from .DataAware import DataAware, PropertyNames +from .DataAware import DataAware, PropertyNames, datetime, Date, Time + +from com.sun.star.script import CannotConvertException ''' @author rpiterman @@ -47,14 +49,21 @@ class UnoDataAware(DataAware): def setToUI(self, value): if (isinstance(value, list)): - length = len(value) value = tuple(value) elif self.isShort: value = uno.Any("[]short", (value,)) - if (hasattr(self.unoModel, self.unoPropName)): - setattr(self.unoModel, self.unoPropName, value) - else: - uno.invoke(self.unoModel, "set" + self.unoPropName, (value,)) + if value: + if(hasattr(self.unoModel, self.unoPropName)): + if self.unoPropName == "Date": + d = datetime.strptime(value, '%d/%m/%y') + value = Date(d.day, d.month, d.year) + elif self.unoPropName == "Time": + t = datetime.strptime(value, '%H:%M') + value = Time(0, 0, t.minute, t.hour, False) + + setattr(self.unoModel, self.unoPropName, value) + else: + uno.invoke(self.unoModel, "set" + self.unoPropName, (value,)) # Try to get from an arbitrary object a boolean value. # Null returns Boolean.FALSE; |