set_states methoden für alles in der gui implementiert. Bugfix im Tree: Zuordnung tree-Id und Sivas-Id in einem dict merken, um den Doppelklick verarbeiten zu können

This commit is contained in:
2024-03-08 18:44:24 +01:00
parent 05392ef5e9
commit c470729918
2 changed files with 185 additions and 16 deletions
+149 -11
View File
@@ -68,6 +68,8 @@ class TreeView():
#self.tree.bind('<<TreeviewSelect>>', self.item_selected) # Einfachklick
self.tree.bind('<Double-Button-1>', self.item_selected) # Doppelklick:
self.trid2sivasId = dict()
def set_controller(self, controller):
self._controller = controller
@@ -95,6 +97,7 @@ class TreeView():
else: rowtags = ('missing')
parent_id = self.tree.insert('', tk.END, text=parent, tags=rowtags, open=True)
self.trid2sivasId[parent_id] = parent # merken für Doppelklick
pool[parent] = parent_id
else:
parent_id = pool[parent]
@@ -108,12 +111,14 @@ class TreeView():
if child not in pool:
child_id = self.tree.insert('', tk.END, text=child, tags=rowtags, open=True)
pool[child] = child_id
self.trid2sivasId[child_id] = child # merken für Doppelklick
else:
child_id = pool[child]
else:
# die Blätter des Baumes kann man bedenkenlos immer bauen. Diese können redundante Texte haben.
child_id = self.tree.insert('', tk.END, text=child, tags=rowtags, open=True)
pool[child] = child_id
pool[child] = child_id # hier werden die keys - sivas Nummern auch überschrieben
self.trid2sivasId[child_id] = child # merken der eindeutigen Zuordnung für den späteren Doppelklick
self.tree.move(child_id, parent_id, 'end')
# https://www.askpython.com/python-modules/tkinter/tkinter-colors
@@ -131,8 +136,9 @@ class TreeView():
def item_selected(self, event):
"""callback of TK if an item in the tree has been selected
"""
cid = self.tree.selection()[0]
trid = self.tree.selection()[0]
# trage die neue ID ins Modell ein
cid = self.trid2sivasId[trid]
self._controller.set_current_item_id(cid)
class LeftFrameAsm(AllFrames):
@@ -519,7 +525,12 @@ class RightFrameBezeichnung(AllFrames):
def set_states(self):
data = self.get_controller().get_gui_states()
pass
if 'bezeichnung1_sivas' in data:
self.bezeichnung1_sivas['state'] = data["bezeichnung1_sivas"]
if 'bezeichnung1_neu' in data:
self.bezeichnung1_neu['state'] = data["bezeichnung1_neu"]
if 'bezeichnung2_sivas' in data:
self.bezeichnung2_sivas['state'] = data["bezeichnung2_sivas"]
class RightFrameHalbzeugOhneS(AllFrames):
def __init__(self, frame, nrow=0):
@@ -695,7 +706,43 @@ class RightFrameHalbzeugOhneS(AllFrames):
def set_states(self):
data = self.get_controller().get_gui_states()
pass
if 'halbzeugOhneSaege_sivas' in data:
self.halbzeugOhneSaege_sivas['status'] = data["halbzeugOhneSaege_sivas"]
if 'halbzeugOhneSaege_neu' in data:
self.halbzeugOhneSaege_neu['status'] = data["halbzeugOhneSaege_neu"]
if 'ruestcode_sivas' in data:
self.ruestcode_sivas['status'] = data["ruestcode_sivas"]
if 'ruestcode_neu' in data:
self.ruestcode_neu['status'] = data["ruestcode_neu"]
if 'fertigungsart_sivas' in data:
self.fertigungsart_sivas['status'] = data["fertigungsart_sivas"]
if 'fertigungsart_neu' in data:
self.fertigungsart_neu['status'] = data["fertigungsart_neu"]
if 'allgemeintoleranz_sivas' in data:
self.allgemeintoleranz_sivas['status'] = data["allgemeintoleranz_sivas"]
if 'allgemeintoleranz_neu' in data:
self.allgemeintoleranz_neu['status'] = data["allgemeintoleranz_neu"]
if 'fosGruppe_sivas' in data:
self.fosGruppe_sivas['status'] = data["fosGruppe_sivas"]
if 'fosGruppe_neu' in data:
self.fosGruppe_neu['status'] = data["fosGruppe_neu"]
if 'kalkulationsart_sivas' in data:
self.kalkulationsart_sivas['status'] = data["kalkulationsart_sivas"]
if 'kalkulationsart_neu' in data:
self.kalkulationsart_neu['status'] = data["kalkulationsart_neu"]
# ab hier die Dropdowns der Oberfläche befüllen.
if 'cb_halbzeugOhneSaege_neu' in data:
self.halbzeugOhneSaege_neu_combo['status'] = data['cb_halbzeugOhneSaege_neu']
if 'cb_ruestcode_neu' in data:
self.ruestcode_neu_combo['status'] = data['cb_ruestcode_neu']
if 'cb_fertigungsart_neu' in data:
self.fertigungsart_neu_combo['status'] = data['cb_fertigungsart_neu']
if 'cb_allgemeintoleranz_neu' in data:
self.allgemeintoleranz_neu_combo['status'] = data['cb_allgemeintoleranz_neu']
if 'cb_fosGruppe_neu' in data:
self.fosGruppe_neu_combo['status'] = data['cb_fosGruppe_neu']
if 'cb_kalkulationsart_neu' in data:
self.kalkulationsart_neu_combo['status'] = data['cb_kalkulationsart_neu']
class RightFrameBeschaffungsart(AllFrames):
def __init__(self, frame, nrow=0):
@@ -796,7 +843,25 @@ class RightFrameBeschaffungsart(AllFrames):
def set_states(self):
data = self.get_controller().get_gui_states()
pass
if "beschaffungsart_sivas" in data:
self.beschaffungsart_sivas['status'] = data["beschaffungsart_sivas"]
if "beschaffungsart_neu" in data:
self.beschaffungsart_neu['status'] = data["beschaffungsart_neu"]
if "mengeneinheit_sivas" in data:
self.mengeneinheit_sivas['status'] = data["mengeneinheit_sivas"]
if "mengeneinheit_neu" in data:
self.mengeneinheit_neu['status'] = data["mengeneinheit_neu"]
if "halbzeug_sivas" in data:
self.halbzeug_sivas['status'] = data["halbzeug_sivas"]
if "halbzeug_neu" in data:
self.halbzeug_neu['status'] = data["halbzeug_neu"]
# ab hier die Dropdowns der Oberfläche befüllen.
if "cb_beschaffungsart_neu" in data:
self.beschaffungsart_combo['status'] = data["cb_beschaffungsart_neu"]
if "cb_mengeneinheit_neu" in data:
self.mengeneinheit_combo['status'] = data["cb_mengeneinheit_neu"]
if "cb_halbzeug_neu" in data:
self.halbzeug_combo['status'] = data["cb_halbzeug_neu"]
class RightFrameTOSGruppe(AllFrames):
def __init__(self, frame, nrow=0):
@@ -967,6 +1032,41 @@ class RightFrameTOSGruppe(AllFrames):
def set_states(self):
data = self.get_controller().get_gui_states()
if 'tosgruppe_sivas' in data:
self.tosgruppe_sivas['status'] = data["tosgruppe_sivas"]
if 'tosgruppe_neu' in data:
self.tosgruppe_neu['status'] = data["tosgruppe_neu"]
if 'dispogruppe_sivas' in data:
self.dispogruppe_sivas['status'] = data["dispogruppe_sivas"]
if 'dispogruppe_neu' in data:
self.dispogruppe_neu['status'] = data["dispogruppe_neu"]
if 'dispolaufgruppe_sivas' in data:
self.dispolaufgruppe_sivas['status'] = data["dispolaufgruppe_sivas"]
if 'dispolaufgruppe_neu' in data:
self.dispolaufgruppe_neu['status'] = data["dispolaufgruppe_neu"]
if 'ersatzfuer_sivas' in data:
self.ersatzfuer_sivas['status'] = data["ersatzfuer_sivas"]
if 'ersatzfuer_neu' in data:
self.ersatzfuer_neu['status'] = data["ersatzfuer_neu"]
if 'ersetztdurch_sivas' in data:
self.ersetztdurch_sivas['status'] = data["ersetztdurch_sivas"]
if 'ersetztdurch_neu' in data:
self.ersetztdurch_neu['status'] = data["ersetztdurch_neu"]
if 'hersteller_sivas' in data:
self.hersteller_sivas['status'] = data["hersteller_sivas"]
if 'hersteller_neu' in data:
self.hersteller_neu['status'] = data["hersteller_neu"]
if 'herstteilenr_sivas' in data:
self.herstteilenr_sivas['status'] = data["herstteilenr_sivas"]
if 'herstteilenr_neu' in data:
self.herstteilenr_neu['status'] = data["herstteilenr_neu"]
# ab hier die Dropdowns der Oberfläche befüllen.
if "cb_dispogruppe_neu" in data:
self.dispogruppe_neu_combo['values'] = data["cb_dispogruppe_neu"]
if "cb_dispolaufgruppe_neu" in data:
self.dispolaufgruppe_neu_combo['values'] = data["cb_dispolaufgruppe_neu"]
if "cb_hersteller_neu" in data:
self.hersteller_neu_combo['values'] = data["cb_hersteller_neu"]
pass
class RightFrameWerkstoffdiskrepanz(AllFrames):
@@ -987,13 +1087,13 @@ class RightFrameWerkstoffdiskrepanz(AllFrames):
werkstoffdiskr_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3)
self.werkstoffdiskr_sivas= tk.BooleanVar()
werkstoffdiskr_checkbutton = ttk.Checkbutton(frame,
self.werkstoffdiskr_checkbutton = ttk.Checkbutton(frame,
#text='ja',
variable=self.werkstoffdiskr_sivas,
command=lambda: self.callback("cb_werkstoffdiskrepanz", self.werkstoffdiskr_sivas.get()),
onvalue=True,
offvalue=False)
werkstoffdiskr_checkbutton.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
self.werkstoffdiskr_checkbutton.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
self.rownum += 1
# Werkstofftyp
@@ -1066,7 +1166,7 @@ class RightFrameWerkstoffdiskrepanz(AllFrames):
def data_from_model(self):
data = self.get_controller().get_all_gui_data()
if 'werkstoffdiskr_sivas' in data:
self.werkstoffdiskr_sivas.set((data["werkstoffdiskr_sivas"]))
self.werkstoffdiskr_sivas.set(data["werkstoffdiskr_sivas"])
if 'werkstofftyp_neu' in data:
self.werkstofftyp_neu.set(data["werkstofftyp_neu"])
if 'material_sivas' in data:
@@ -1089,7 +1189,27 @@ class RightFrameWerkstoffdiskrepanz(AllFrames):
def set_states(self):
data = self.get_controller().get_gui_states()
pass
if 'werkstoffdiskr_sivas' in data:
self.werkstoffdiskr_checkbutton['status'] = data["werkstoffdiskr_sivas"]
if 'werkstofftyp_neu' in data:
self.werkstofftyp_neu['status'] = data["werkstofftyp_neu"]
if 'material_sivas' in data:
self.material_sivas['status'] = data["material_sivas"]
if 'material_neu' in data:
self.material_neu['status'] = data["material_neu"]
if 'oberflaeche_neu' in data:
self.oberflaeche_neu['status'] = data["oberflaeche_neu"]
if 'farbe_neu' in data:
self.farbe_neu['status'] = data["farbe_neu"]
# ab hier die Dropdowns der Oberfläche befüllen.
if 'cb_werkstofftyp_neu' in data:
self.werkstofftyp_neu_combo['status'] = data["cb_werkstofftyp_neu"]
if 'cb_material_neu' in data:
self.material_neu_combo['status'] = data["cb_material_neu"]
if 'cb_oberflaeche_neu' in data:
self.oberflaeche_neu_combo['status'] = data["cb_oberflaeche_neu"]
if 'cb_farbe_neu' in data:
self.farbe_neu_combo['status'] = data["cb_farbe_neu"]
class RightFrameVersion(AllFrames):
def __init__(self, frame, nrow=0):
@@ -1193,7 +1313,22 @@ class RightFrameVersion(AllFrames):
def set_states(self):
data = self.get_controller().get_gui_states()
pass
if 'version_sivas' in data:
self.version_sivas['status'] = data["version_sivas"]
if 'version_neu' in data:
self.version_neu['status'] = data["version_neu"]
if 'aenderungsindex_sivas' in data:
self.aenderungsindex_sivas['status'] = data["aenderungsindex_sivas"]
if 'aenderungsindex_neu' in data:
self.aenderungsindex_neu['status'] = data["aenderungsindex_neu"]
if 'aenderungstext_sivas' in data:
self.aenderungstext_sivas['status'] = data["aenderungstext_sivas"]
if 'aenderungstext_neu' in data:
self.aenderungstext_neu['status'] = data["freigabevermerk_neu"]
if 'freigabevermerk_sivas' in data:
self.freigabevermerk_sivas['status'] = data["freigabevermerk_neu"]
if 'freigabevermerk_neu' in data:
self.freigabevermerk_neu['status'] = data["freigabevermerk_neu"]
def clear_texts(self):
self.aenderungstext_sivas.delete('1.0', 'end')
@@ -1258,7 +1393,10 @@ class RightFrameZusatzinfos(AllFrames):
def set_states(self):
data = self.get_controller().get_gui_states()
pass
if 'zusatzinfos_auto_text' in data:
self.zusatzinfos_auto_text['status'] = data["zusatzinfos_auto_text"]
if 'zusatzinfos_bendef_text' in data:
self.zusatzinfos_bendef_text['status'] = data["zusatzinfos_bendef_text"]
def clear_texts(self):
self.zusatzinfos_auto_text.delete('1.0', 'end')