src/pyams_gis/zmi/widget/point.py
changeset 68 b0a03a00c83e
parent 55 829abfdd6d27
child 74 31687784fa16
equal deleted inserted replaced
67:42cb3f558fc8 68:b0a03a00c83e
     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)