summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/ui
diff options
context:
space:
mode:
authorXisco Fauli <anistenis@gmail.com>2013-09-08 19:56:06 +0200
committerXisco Fauli <anistenis@gmail.com>2013-09-08 20:00:24 +0200
commit7e5cc31838cf2296139540a23d600e94182e4924 (patch)
tree94a5ae9cbddc17209e3392488892e3dd92cc9008 /wizards/com/sun/star/wizards/ui
parent6f83e4389912967432260ead0db132f373a880bd (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.py13
-rw-r--r--wizards/com/sun/star/wizards/ui/event/UnoDataAware.py21
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;