Schalter -use_local dazu. Keine Datenbankabfrage vom Server, wenn die Dateien schon da sind. EInige Attribute im config manager privatisiert. In die Logik auch die Abhängigkeit der comboboxen definiert. Controller ist jetzt ein Observer (der einzige)
This commit is contained in:
+17
-9
@@ -32,20 +32,29 @@ messages = {
|
||||
|
||||
# Der Beobachter
|
||||
class Observer:
|
||||
def __init__(self, observable):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def attach(self, observable):
|
||||
observable.subscribe(self)
|
||||
|
||||
def notify(self, observable, *args, **kwargs):
|
||||
print(f"Got {args} {kwargs} from {observable}")
|
||||
dependent_cbs = self._model.get_dependent(args[0])
|
||||
for cb in dependent_cbs:
|
||||
model_values = self._model.callback(cb, None)
|
||||
if model_values:
|
||||
self.set_gui_dict(model_values)
|
||||
self.refresh_gui()
|
||||
|
||||
|
||||
class Controller():
|
||||
|
||||
class Controller(Observer):
|
||||
"""
|
||||
Class for manipulating the model and returning data for the view
|
||||
"""
|
||||
def __init__(self, model, view):
|
||||
self._environment = None
|
||||
self._observer = None
|
||||
self.set_model(model)
|
||||
self.set_view(view)
|
||||
|
||||
@@ -69,8 +78,8 @@ class Controller():
|
||||
|
||||
def set_model(self, model):
|
||||
self._model = model
|
||||
if self._observer == None:
|
||||
self._observer = Observer(model)
|
||||
self.attach(model)
|
||||
|
||||
def set_view(self, view):
|
||||
self._view = view
|
||||
|
||||
@@ -157,15 +166,14 @@ class Controller():
|
||||
if not self._model:
|
||||
raise Exception("no model yet added")
|
||||
|
||||
# gib dem observer Bescheid, was aufgerufen wurde
|
||||
if self._observer:
|
||||
self._observer.notify(key,value)
|
||||
|
||||
# Logik um neue Werte in Oberfläche oder Modell zu füllen
|
||||
model_values = self._model.callback(key, value)
|
||||
if model_values:
|
||||
self.set_gui_dict(model_values)
|
||||
self.refresh_gui()
|
||||
|
||||
# gib dem observer Bescheid, was aufgerufen wurde
|
||||
self.notify(self._model, key,value)
|
||||
|
||||
# reine Aktionen
|
||||
if key == 'cb_speichern':
|
||||
|
||||
Reference in New Issue
Block a user