Пример #1
0
 def __init__(self, impl, presenter):
     self._impl = impl
     self._title = ""
     self._presenter = presenter
     self._model = self._presenter.get_viewmodel()
     self._fields = OrderedDict()
     self._groups = OrderedDict()
     self._presenter.set_view(self)
     self._groupcounter = {
     }  # veldnaam => counter, t.b.v. geneste groepen met herhalende records
     self._receiving = False  #  voorkom deadlocks; geef geen events door aan presenter als _receiving True is.
     self._main_group = ViewGroup("main", ViewLayout.VERTICAL)
     if impl:
         impl.set_base(self)
Пример #2
0
    def __new__(cls, clsname, bases, dct):
        new_cls = type.__new__(cls, clsname, bases, dct)
        # Veldattributen moeten worden afgebeeld in volgorde van declaratie.
        new_cls._fieldattrs = OrderedDict()
        for fieldname, field in sorted(
                inspect.getmembers(
                    new_cls, lambda member: isinstance(member, ViewField)),
                key=lambda name_and_field: name_and_field[1]._sequence):
            new_cls._fieldattrs[fieldname] = field

        return new_cls
Пример #3
0
    def __init__(self, **kwargs):
        self._fieldindex = OrderedDict()  #  mapping tussen ids en veldnamen
        self._fltr = None

        #  voor elke instantie van ViewModel krijgen de
        #  veldnamen een uniek id
        for fieldname, classfield in self._fieldattrs.items():
            idx = counter.inc()
            field = classfield.__class__(name=fieldname, config=classfield)
            field._idx = idx
            field.set_model(self)
            object.__setattr__(self, fieldname, field)
            self._fieldindex[idx] = fieldname
Пример #4
0
 def __init__(self, *args, **kwargs):
     super(RelationField, self).__init__(*args[1:], **kwargs)
     if kwargs.get("config"):
         return
     assert args, "Geen relatie opgegeven"
     assert issubclass(
         args[0], ViewModel
     ), "Argument is geen subklasse van ViewModel: %r" % args[0]
     self._relation = args[0]
     if self._group:
         self._group.fieldcount = self.fieldcount
         headers = OrderedDict()
         for fieldname, field in self._relation._fieldattrs.items():
             headers[fieldname] = HeaderField(name=fieldname,
                                              value=fieldname.capitalize())
         HeaderCls = type("%sHeader" % self._relation.__name__,
                          (ViewModel, ), headers)
         self._group.header = HeaderCls()
Пример #5
0
 def clear_groups(self):
     self._groups = OrderedDict()
Пример #6
0
 def clear_fields(self):
     if self._impl:
         self._impl.clear_fields()
     self._fields = OrderedDict()