Abstrakte Klasse hinzugefügt um nur noch die unterschiedlichen Widgets in den Klassen bauen zu müssen.

This commit is contained in:
2024-01-15 17:31:55 +01:00
parent 26f1820a72
commit 404e241ba0
+16 -32
View File
@@ -78,13 +78,14 @@ class TreeView():
return self.tree return self.tree
class AllRightFrames(): class AllRightFrames():
def __init__(self, frame, nrow=0): """ enthält alle gleichen Methoden für die Widgets in der rechte Spalte
self.frame = frame """
self.build_widgets() def __init__(self, nrow=0):
self.set_start_rwo(nrow) self.set_start_rwo(nrow)
def get_rows(self): def get_rows(self):
return self.rownum return self.rownum
def set_start_rwo(self, nrow): def set_start_rwo(self, nrow):
if nrow < 0: if nrow < 0:
raise Exception("this row can not be set") raise Exception("this row can not be set")
@@ -94,18 +95,14 @@ class AllRightFrames():
data = self.get_data() data = self.get_data()
controller.set_gui_dict(data) controller.set_gui_dict(data)
class RightFrameLabels(): def data_to_model(self, controller, key, value):
controller.set_gui_data(key, value)
class RightFrameLabels(AllRightFrames):
def __init__(self, frame, nrow=0): def __init__(self, frame, nrow=0):
AllRightFrames.__init__(self, nrow)
self.frame = frame self.frame = frame
self.build_widgets() self.build_widgets()
self.set_start_rwo(nrow)
def get_rows(self):
return self.rownum
def set_start_rwo(self, nrow):
if nrow < 0:
raise Exception("this row can not be set")
self.rownum = nrow
def build_widgets(self): def build_widgets(self):
frame = self.frame frame = self.frame
@@ -145,27 +142,16 @@ class RightFrameLabels():
"teilennummer": self.teilenummer_text.get(), "teilennummer": self.teilenummer_text.get(),
} }
def data_to_model(self, controller):
data = self.get_data()
controller.set_gui_dict(data)
def data_from_model(self, controller): def data_from_model(self, controller):
data = controller.get_all_gui_data() data = controller.get_all_gui_data()
if 'teilenummer' in data: if 'teilenummer' in data:
self.teilenummer_text.set(data["teilenummer"]) self.teilenummer_text.set(data["teilenummer"])
class RightFramePDM(): class RightFramePDM(AllRightFrames):
def __init__(self, frame, nrow=0): def __init__(self, frame, nrow=0):
AllRightFrames.__init__(self, nrow)
self.frame = frame self.frame = frame
self.build_widgets() self.build_widgets()
self.set_start_rwo(nrow)
def get_rows(self):
return self.rownum
def set_start_rwo(self, nrow):
if nrow < 0:
raise Exception("this row can not be set")
self.rownum = nrow
def build_widgets(self): def build_widgets(self):
frame = self.frame frame = self.frame
@@ -235,13 +221,6 @@ class RightFramePDM():
"zusatzinfos_txt_neu": self.zusatzinfos_text.get(), "zusatzinfos_txt_neu": self.zusatzinfos_text.get(),
} }
def data_to_model(self, controller):
data = self.get_data()
controller.set_gui_dict(data)
def data_to_model(self, controller, key, value):
controller.set_gui_data(key, value)
def data_from_model(self, controller): def data_from_model(self, controller):
data = controller.get_all_gui_data() data = controller.get_all_gui_data()
if 'pdm_kategorie_neu' in data: if 'pdm_kategorie_neu' in data:
@@ -264,6 +243,7 @@ class RightFramePDM():
class App(): class App():
def __init__(self, root): def __init__(self, root):
"""Standardgui mit Baum zur Anwahl der Teile des Assemblies"""
self.root = root self.root = root
@@ -295,12 +275,16 @@ class App():
# TODO usw. # TODO usw.
def data_from_model(self): def data_from_model(self):
""" methode zum auslesen aller Daten der Oberfläche aus dem Modell
"""
self.tv.data_from_model(self.controller) self.tv.data_from_model(self.controller)
self.rf0.data_from_model(self.controller) self.rf0.data_from_model(self.controller)
self.rf1.data_from_model(self.controller) self.rf1.data_from_model(self.controller)
def set_controller(self, controller): def set_controller(self, controller):
# merken des Handels auf den Controller
self.controller = controller self.controller = controller
# der Tree braucht aufgrund des Callbacks der Selektion auch einen Verweis
self.tv.set_controller(controller) self.tv.set_controller(controller)
def mainloop(self): def mainloop(self):