8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 |
12 |
13 __docformat__ = 'restructuredtext' |
13 import json |
|
14 |
|
15 from z3c.form.browser.object import ObjectWidget |
|
16 from z3c.form.interfaces import IFieldWidget, IObjectFactory |
|
17 from z3c.form.object import getIfName |
|
18 from z3c.form.widget import FieldWidget |
|
19 from zope.interface import Interface, alsoProvides, implementer_only |
|
20 |
|
21 from pyams_form.interfaces.form import IForm, IFormLayer |
|
22 from pyams_form.widget import widgettemplate_config |
|
23 from pyams_gis.interfaces import IGeoPointZ |
|
24 from pyams_gis.interfaces.widget import IGeoPointWidget, IGeoPointZWidget |
|
25 from pyams_gis.point import GeoPoint, GeoPointZ |
|
26 from pyams_gis.schema import IGeoPoint, IGeoPointField, IGeoPointZField |
|
27 from pyams_utils.adapter import adapter_config |
|
28 from pyams_utils.interfaces.data import IObjectData |
14 |
29 |
15 |
30 |
16 # import standard library |
31 __docformat__ = 'restructuredtext' |
17 import json |
|
18 |
|
19 # import interfaces |
|
20 from pyams_gis.interfaces import IGeoPointZ |
|
21 from pyams_form.interfaces.form import IFormLayer, IForm |
|
22 from pyams_gis.interfaces.widget import IGeoPointWidget, IGeoPointZWidget |
|
23 from pyams_gis.schema import IGeoPoint, IGeoPointField, IGeoPointZField |
|
24 from pyams_utils.interfaces.data import IObjectData |
|
25 from z3c.form.interfaces import IFieldWidget, IObjectFactory |
|
26 |
|
27 # import packages |
|
28 from pyams_form.widget import widgettemplate_config |
|
29 from pyams_gis.point import GeoPoint, GeoPointZ |
|
30 from pyams_utils.adapter import adapter_config |
|
31 from z3c.form.browser.object import ObjectWidget |
|
32 from z3c.form.object import getIfName |
|
33 from z3c.form.widget import FieldWidget |
|
34 from zope.interface import implementer_only, alsoProvides, Interface |
|
35 |
32 |
36 |
33 |
37 @adapter_config(name=getIfName(IGeoPoint), |
34 @adapter_config(name=getIfName(IGeoPoint), |
38 context=(Interface, IFormLayer, IForm, IGeoPointWidget), provides=IObjectFactory) |
35 context=(Interface, IFormLayer, IForm, IGeoPointWidget), provides=IObjectFactory) |
39 class GeoPointObjectFactory(object): |
36 class GeoPointObjectFactory(object): |
54 class GeoPointWidget(ObjectWidget): |
51 class GeoPointWidget(ObjectWidget): |
55 """GeoPoint widget""" |
52 """GeoPoint widget""" |
56 |
53 |
57 def updateWidgets(self, setErrors=True): |
54 def updateWidgets(self, setErrors=True): |
58 super(GeoPointWidget, self).updateWidgets(setErrors) |
55 super(GeoPointWidget, self).updateWidgets(setErrors) |
59 widgets = self.subform.widgets |
56 widgets = self.widgets |
60 longitude = widgets['longitude'] |
57 longitude = widgets['longitude'] |
61 longitude.label_css_class = 'control-label col-md-3' |
58 longitude.label_css_class = 'control-label col-md-3' |
62 longitude.input_css_class = 'col-md-2' |
59 longitude.input_css_class = 'col-md-2' |
63 longitude.object_data = {'ams-change-handler': 'PyAMS_GIS.position.changedCoordinate'} |
60 longitude.object_data = {'ams-change-handler': 'PyAMS_GIS.position.changedCoordinate'} |
64 alsoProvides(longitude, IObjectData) |
61 alsoProvides(longitude, IObjectData) |
111 class GeoPointZWidget(ObjectWidget): |
108 class GeoPointZWidget(ObjectWidget): |
112 """GeoPointZ widget""" |
109 """GeoPointZ widget""" |
113 |
110 |
114 def updateWidgets(self, setErrors=True): |
111 def updateWidgets(self, setErrors=True): |
115 super(GeoPointZWidget, self).updateWidgets(setErrors) |
112 super(GeoPointZWidget, self).updateWidgets(setErrors) |
116 widgets = self.subform.widgets |
113 widgets = self.widgets |
117 longitude = widgets['longitude'] |
114 longitude = widgets['longitude'] |
118 longitude.label_css_class = 'control-label col-md-3' |
115 longitude.label_css_class = 'control-label col-md-3' |
119 longitude.input_css_class = 'col-md-2' |
116 longitude.input_css_class = 'col-md-2' |
120 longitude.object_data = {'ams-change-handler': 'PyAMS_GIS.position.changedCoordinate'} |
117 longitude.object_data = {'ams-change-handler': 'PyAMS_GIS.position.changedCoordinate'} |
121 alsoProvides(longitude, IObjectData) |
118 alsoProvides(longitude, IObjectData) |