From 67ea0125a57d9bcfed9c7272b69b26dac437c9d4 Mon Sep 17 00:00:00 2001 From: mistangl Date: Mon, 22 Jan 2024 18:36:26 +0100 Subject: [PATCH] =?UTF-8?q?Umbauarbeiten=20der=20Oberfl=C3=A4che=20entspre?= =?UTF-8?q?chend=20der=20neuen=20.svg=20Vorlage=20umgesetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/gui.py | 543 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 343 insertions(+), 200 deletions(-) diff --git a/lib/gui.py b/lib/gui.py index e0814e2..6cb608a 100644 --- a/lib/gui.py +++ b/lib/gui.py @@ -1,5 +1,6 @@ import tkinter as tk from tkinter import ttk +from tkinter import filedialog from controller import Controller from caditem import CadItem @@ -56,7 +57,7 @@ class TreeView(): def __init__(self, frame, nrow=0): # a treeview # hier Anzahl der sichtbaren Zeilen des Baums angeben: - self.tree = ttk.Treeview(frame, height=47) + self.tree = ttk.Treeview(frame, height=57) # TODO hier anstatt root die Statistik rein schreiben. self.tree.heading('#0', text='root', anchor=tk.W) self.tree.grid(row=nrow, column=0, sticky=tk.NSEW) @@ -210,6 +211,18 @@ class RightFramePDM(AllFrames): frame = self.frame self.rownum = AllFrames.get_rows(self) col_left = 0 + + # Datenbank Schulung oder Produktiv + datenbank_label = ttk.Label(frame, text="Datenbank:" ) + datenbank_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.datenbank = tk.IntVar(value=1) + datenbank_prod = ttk.Radiobutton(frame, text="Produktiv", variable=self.datenbank, value=1) + datenbank_prod .grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + datenbank_schul = ttk.Radiobutton(frame, text="Schulung", variable=self.datenbank, value=2) + datenbank_schul .grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + # pdmkategorie categories = configs.Allgemein.get_options("Kategorien") #"Baugruppe", "Einzelteil", "Kaufteil", "NichtSivas", "Normteil", "Schweissbaugruppe" pdmkategorie_label = ttk.Label(frame, text="PDM-Kategorie:" ) @@ -228,7 +241,7 @@ class RightFramePDM(AllFrames): self.neuaufbau = None neuaufbau_checkbutton = ttk.Checkbutton(frame, - text='ja', + #text='ja', variable=self.neuaufbau, command=lambda: self.callback("neuaufbau"), onvalue=True, @@ -236,6 +249,43 @@ class RightFramePDM(AllFrames): neuaufbau_checkbutton.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.rownum += 1 + # aus Halbzeug + halbzeug_label = ttk.Label(frame, text="aus Halbzeug:") + halbzeug_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.aus_halbzeug_neu = None + aushalbzeug_checkbuttonr = ttk.Checkbutton(frame, + #text='neu', + variable=self.aus_halbzeug_neu, + command=lambda: self.callback("aus_halbzeug_neu"), + onvalue=True, + offvalue=False) + aushalbzeug_checkbuttonr.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + + # Halbzeugnummer + halbzeugnummer_label = ttk.Label(frame, text="Halbzeugnummer:" ) + halbzeugnummer_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.halbzeugnummer_neu = tk.StringVar() + halbzeugnummer_neu_entry = ttk.Entry(frame, textvariable=self.halbzeugnummer_neu) + halbzeugnummer_neu_entry.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + + # Halbzeuglänge + halbzeuglaenge_label = ttk.Label(frame, text="Halbzeuglänge:" ) + halbzeuglaenge_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.halbzeuglaenge_neu = tk.StringVar() + halbzeuglaenge_neu_entry = ttk.Entry(frame, textvariable=self.halbzeuglaenge_neu) + halbzeuglaenge_neu_entry.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + + # HalbzeugOberfläche + halbzeugoberflaeche_label = ttk.Label(frame, text="Halbzeugoberflaeche:" ) + halbzeugoberflaeche_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.halbzeugoberflaeche_neu = tk.StringVar() + halbzeugoberflaeche_neu_entry = ttk.Entry(frame, textvariable=self.halbzeugoberflaeche_neu) + halbzeugoberflaeche_neu_entry.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + # Lebenszyklusstatus lstatus = configs.Allgemein.get_options("Lebenszyklus") # Serie, Prototyp lebenszyklusstatus_label = ttk.Label(frame, text="Lebenszyklusstatus:") @@ -248,53 +298,67 @@ class RightFramePDM(AllFrames): lebenszyklusstatus_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.rownum += 1 - # aus Halbzeug - halbzeug_label = ttk.Label(frame, text="aus Halbzeug:") - halbzeug_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.aus_halbzeug_neu = None - aushalbzeug_checkbuttonr = ttk.Checkbutton(frame, - text='neu', - variable=self.aus_halbzeug_neu, - command=lambda: self.callback("aus_halbzeug_neu"), - onvalue=True, - offvalue=False) - aushalbzeug_checkbuttonr.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.rownum += 1 - - # Zusatzinformationen - zusatzinfos_label = ttk.Label(frame, text="Zusatzinformationen:") - zusatzinfos_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.zusatzinfos_text = tk.StringVar() - zusatzinfos_entry = ttk.Entry(frame, textvariable=self.zusatzinfos_text) - zusatzinfos_entry.grid(column=col_left+1, columnspan=2, row=self.rownum, sticky=tk.EW+tk.NS, padx=3, pady=3) + # 3D Model Filesearch + model3d_label = ttk.Label(frame, text="3D-Modell:" ) + model3d_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.model3d_neu = tk.StringVar() + model3d_neu_entry = ttk.Entry(frame, textvariable=self.model3d_neu) + model3d_neu_entry.grid(column=col_left+1, columnspan=2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + #toplevel = tk.Toplevel() + #toplevel.title("search Window") + #filename = filedialog.askopenfilename( + # parent=toplevel, + # title="Browse File" + #) self.rownum += 1 + separator = ttk.Separator(frame, orient='horizontal') separator.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) self.rownum += 1 + def database_str(self): + if self.datenbank.get() == 1: + datenbank = "produktiv" + else: + datenbank = "schulung" + def value_to_database_str(self, val): + if val == 1: + return "produktiv" + else: + return "schulung" def get_data(self): + return { + "datenbank": self.get_database_str(), "pdm_kategorie_neu": self.pdm_category.get(), "neuaufbau": self.neuaufbau, - "lebenszyklus_status_neu": self.lebenszyklus_status_neu.get(), "aus_halbzeug_neu": self.aus_halbzeug_neu, - "zusatzinfos_txt_neu": self.zusatzinfos_text.get(), + "halbzeugnummer_neu": self.halbzeugnummer_neu.get(), + "halbzeuglaenge_neu": self.halbzeuglaenge_neu.get(), + "halbzeugoberflaeche_neu":self.halbzeugoberflaeche_neu.get(), + "lebenszyklus_status_neu": self.lebenszyklus_status_neu.get(), } def data_from_model(self): data = self.get_controller().get_all_gui_data() + if 'datenbank' in data: + self.datenbank.set(self.value_to_database_str(data["datenbank"])) if 'pdm_kategorie_neu' in data: self.pdm_category.set(data["pdm_kategorie_neu"]) if 'neuaufbau' in data: self.neuaufbau = data["neuaufbau"] + if 'halbzeugnummer_neu' in data: + self.halbzeugnummer_neu.set(data["halbzeugnummer_neu"]) + if 'halbzeuglaenge_neu' in data: + self.halbzeuglaenge_neu.set(data["halbzeuglaenge_neu"]) + if 'halbzeugoberflaeche_neu' in data: + self.halbzeugoberflaeche_neu.set(data["halbzeugoberflaeche_neu"]) if 'lebenszyklus_status_neu' in data: self.lebenszyklus_status_neu.set(data["lebenszyklus_status_neu"]) if 'aus_halbzeug_neu' in data: self.aus_halbzeug_neu= data["aus_halbzeug_neu"] - if 'zusatzinfos_text_neu' in data: - self.zusatzinfos_text.set(data["zusatzinfos_text_neu"]) class RightFrameBezeichnung(AllFrames): def __init__(self, frame, nrow=0, configs=None): @@ -328,6 +392,196 @@ class RightFrameBezeichnung(AllFrames): bezeichnung2_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.rownum += 1 + separator = ttk.Separator(frame, orient='horizontal') + separator.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) + self.rownum += 1 + + + def get_data(self): + return { + "bezeichnung1_sivas": self.bezeichnung1_sivas.get(), + "bezeichnung1_neu": self.bezeichnung1_neu.get(), + "bezeichnung2_sivas": self.bezeichnung2_sivas.get(), + "bezeichnung2_neu": self.bezeichnung2_neu.get(), + } + + def data_from_model(self): + data = self.get_controller().get_all_gui_data() + if 'bezeichnung1_sivas' in data: + self.bezeichnung1_sivas.set(data["bezeichnung1_sivas"]) + if 'bezeichnung1_neu' in data: + self.bezeichnung1_neu.set(data["bezeichnung1_neu"]) + if 'bezeichnung2_sivas' in data: + self.bezeichnung2_sivas.set(data["bezeichnung2_sivas"]) + if 'bezeichnung2_neu' in data: + self.bezeichnung2_neu.set(data["bezeichnung2_neu"]) + +class RightFrameHalbzeugOhneS(AllFrames): + def __init__(self, frame, nrow=0, configs=None): + AllFrames.__init__(self, nrow) + self.frame = frame + self.build_widgets(configs) + + def build_widgets(self, configs): + frame = self.frame + self.rownum = AllFrames.get_rows(self) + col_left = 0 + + categories = configs.Allgemein.get_options("Kategorien") + ruestcodes = configs.Allgemein.get_options("Ruestcode") + + # Halbzeug ohne Sägeliste + halbzeugOhneSaege_label = ttk.Label(frame, text="Halbzeug ohne Sägeliste:" ) + halbzeugOhneSaege_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.halbzeugOhneSaege_sivas = tk.StringVar() + halbzeugOhneSaege_entry = ttk.Entry(frame, textvariable=self.halbzeugOhneSaege_sivas) + halbzeugOhneSaege_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) + + self.halbzeugOhneSaege_neu = tk.StringVar() + halbzeugOhneSaege_neu_combo = ttk.Combobox(frame, textvariable=self.halbzeugOhneSaege_neu) + halbzeugOhneSaege_neu_combo['values'] = categories + halbzeugOhneSaege_neu_combo['state'] = 'readonly' + halbzeugOhneSaege_neu_combo.bind('<>', lambda event:self.callback('halbzeugOhneSaege_neu')) + halbzeugOhneSaege_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + + # Rüstcode + ruestcode_label = ttk.Label(frame, text="Rüstcode:" ) + ruestcode_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.ruestcode_sivas = tk.StringVar() + ruestcode_entry = ttk.Entry(frame, textvariable=self.ruestcode_sivas) + ruestcode_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) + + self.ruestcode_neu = tk.StringVar() + ruestcode_neu_combo = ttk.Combobox(frame, textvariable=self.ruestcode_neu) + ruestcode_neu_combo['values'] = ruestcodes + ruestcode_neu_combo['state'] = 'readonly' + ruestcode_neu_combo.bind('<>', lambda event:self.callback('ruestcode_neu')) + ruestcode_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + + # Fertigungsart + fertigungsart_label = ttk.Label(frame, text="Fertigungsart:" ) + fertigungsart_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.fertigungsart_sivas = tk.StringVar() + fertigungsart_entry = ttk.Entry(frame, textvariable=self.fertigungsart_sivas) + fertigungsart_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) + + self.fertigungsart_neu = tk.StringVar() + fertigungsart_neu_combo = ttk.Combobox(frame, textvariable=self.fertigungsart_neu) + fertigungsart_neu_combo['values'] = categories + fertigungsart_neu_combo['state'] = 'readonly' + fertigungsart_neu_combo.bind('<>', lambda event:self.callback('fertigungsart_neu')) + fertigungsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + + # Allgmeintoleranz + allgemeintoleranz_label = ttk.Label(frame, text="Allgemeintoleranz:" ) + allgemeintoleranz_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.allgemeintoleranz_sivas = tk.StringVar() + allgemeintoleranz_entry = ttk.Entry(frame, textvariable=self.allgemeintoleranz_sivas) + allgemeintoleranz_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) + + self.allgemeintoleranz_neu = tk.StringVar() + allgemeintoleranz_neu_combo = ttk.Combobox(frame, textvariable=self.allgemeintoleranz_neu) + allgemeintoleranz_neu_combo['values'] = categories + allgemeintoleranz_neu_combo['state'] = 'readonly' + allgemeintoleranz_neu_combo.bind('<>', lambda event:self.callback('allgemeintoleranz_neu')) + allgemeintoleranz_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + + # FOS-Gruppe + fosGruppe_label = ttk.Label(frame, text="FOS-Gruppe:" ) + fosGruppe_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.fosGruppe_sivas = tk.StringVar() + fosGruppe_entry = ttk.Entry(frame, textvariable=self.fosGruppe_sivas) + fosGruppe_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) + + self.fosGruppe_neu = tk.StringVar() + fosGruppe_neu_combo = ttk.Combobox(frame, textvariable=self.fosGruppe_neu) + fosGruppe_neu_combo['values'] = categories + fosGruppe_neu_combo['state'] = 'readonly' + fosGruppe_neu_combo.bind('<>', lambda event:self.callback('fosGruppe_neu')) + fosGruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + + # Kalulationsart + kalkulationsart_label = ttk.Label(frame, text="Kalkulationsart:" ) + kalkulationsart_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.kalkulationsart_sivas = tk.StringVar() + kalkulationsart_entry = ttk.Entry(frame, textvariable=self.kalkulationsart_sivas) + kalkulationsart_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) + + self.kalkulationsart_neu = tk.StringVar() + kalkulationsart_neu_combo = ttk.Combobox(frame, textvariable=self.kalkulationsart_neu) + kalkulationsart_neu_combo['values'] = categories + kalkulationsart_neu_combo['state'] = 'readonly' + kalkulationsart_neu_combo.bind('<>', lambda event:self.callback('kalkulationsart_neu')) + kalkulationsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.rownum += 1 + + separator = ttk.Separator(frame, orient='horizontal') + separator.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) + self.rownum += 1 + + def get_data(self): + return { + "halbzeugOhneSaege_sivas": self.halbzeugOhneSaege_sivas.get(), + "halbzeugOhneSaege_neu": self.halbzeugOhneSaege_neu.get(), + "ruestcode_sivas": self.ruestcode_sivas.get(), + "ruestcode_neu": self.ruestcode_neu.get(), + "fertigungsart_sivas": self.fertigungsart_sivas.get(), + "fertigungsart_neu": self.fertigungsart_neu.get(), + "allgemeintoleranz_sivas": self.allgemeintoleranz_sivas.get(), + "allgemeintoleranz_neu": self.allgemeintoleranz_neu.get(), + "fosGruppe_sivas": self.fosGruppe_sivas.get(), + "fosGruppe_neu": self.fosGruppe_neu.get(), + "kalkulationsart_sivas": self.kalkulationsart_sivas.get(), + "kalkulationsart_neu": self.kalkulationsart_neu.get(), + } + + def data_from_model(self): + data = self.get_controller().get_all_gui_data() + + if 'halbzeugOhneSaege_sivas' in data: + self.halbzeugOhneSaege_sivas.set(data["halbzeugOhneSaege_sivas"]) + if 'halbzeugOhneSaege_neu' in data: + self.halbzeugOhneSaege_neu.set(data["halbzeugOhneSaege_neu"]) + if 'ruestcode_sivas' in data: + self.ruestcode_sivas.set(data["ruestcode_sivas"]) + if 'ruestcode_neu' in data: + self.ruestcode_neu.set(data["ruestcode_neu"]) + if 'fertigungsart_sivas' in data: + self.fertigungsart_sivas.set(data["fertigungsart_sivas"]) + if 'fertigungsart_neu' in data: + self.fertigungsart_neu.set(data["fertigungsart_neu"]) + if 'allgemeintoleranz_sivas' in data: + self.allgemeintoleranz_sivas.set(data["allgemeintoleranz_sivas"]) + if 'allgemeintoleranz_neu' in data: + self.allgemeintoleranz_neu.set(data["allgemeintoleranz_neu"]) + if 'fosGruppe_sivas' in data: + self.fosGruppe_sivas.set(data["fosGruppe_sivas"]) + if 'fosGruppe_neu' in data: + self.fosGruppe_neu.set(data["fosGruppe_neu"]) + if 'kalkulationsart_sivas' in data: + self.kalkulationsart_sivas.set(data["kalkulationsart_sivas"]) + if 'kalkulationsart_neu' in data: + self.kalkulationsart_neu.set(data["kalkulationsart_neu"]) + + +class RightFrameBeschaffungsart(AllFrames): + def __init__(self, frame, nrow=0, configs=None): + AllFrames.__init__(self, nrow) + self.frame = frame + self.build_widgets(configs) + + def build_widgets(self, configs): + frame = self.frame + self.rownum = AllFrames.get_rows(self) + col_left = 0 + + categories = configs.Allgemein.get_options("Kategorien") + # Beschaffungsart beschaffungsart_label = ttk.Label(frame, text="Beschaffungsart:" ) beschaffungsart_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -380,10 +634,6 @@ class RightFrameBezeichnung(AllFrames): def get_data(self): return { - "bezeichnung1_sivas": self.bezeichnung1_sivas.get(), - "bezeichnung1_neu": self.bezeichnung1_neu.get(), - "bezeichnung2_sivas": self.bezeichnung2_sivas.get(), - "bezeichnung2_neu": self.bezeichnung2_neu.get(), "beschaffungsart_sivas": self.beschaffungsart_sivas.get(), "beschaffungsart_neu": self.beschaffungsart_neu.get(), "mengeneinheit_sivas": self.mengeneinheit_sivas.get(), @@ -394,14 +644,6 @@ class RightFrameBezeichnung(AllFrames): def data_from_model(self): data = self.get_controller().get_all_gui_data() - if 'bezeichnung1_sivas' in data: - self.bezeichnung1_sivas.set(data["bezeichnung1_sivas"]) - if 'bezeichnung1_neu' in data: - self.bezeichnung1_neu.set(data["bezeichnung1_neu"]) - if 'bezeichnung2_sivas' in data: - self.bezeichnung2_sivas.set(data["bezeichnung2_sivas"]) - if 'bezeichnung2_neu' in data: - self.bezeichnung2_neu.set(data["bezeichnung2_neu"]) if 'beschaffungsart_sivas' in data: self.beschaffungsart_sivas.set(data["beschaffungsart_sivas"]) if 'beschaffungsart_neu' in data: @@ -592,7 +834,7 @@ class RightFrameWerkstoffdiskrepanz(AllFrames): self.werkstoffdiskrepanz= None werkstoffdiskr_checkbutton = ttk.Checkbutton(frame, - text='ja', + #text='ja', variable=self.werkstoffdiskrepanz, command=lambda: self.callback("werkstoffdiskrepanz"), onvalue=True, @@ -683,158 +925,6 @@ class RightFrameWerkstoffdiskrepanz(AllFrames): if 'farbe_neu' in data: self.farbe_neu.set(data["farbe_neu"]) -class RightFrameHalbzeugOhneS(AllFrames): - def __init__(self, frame, nrow=0, configs=None): - AllFrames.__init__(self, nrow) - self.frame = frame - self.build_widgets(configs) - - def build_widgets(self, configs): - frame = self.frame - self.rownum = AllFrames.get_rows(self) - col_left = 0 - - categories = configs.Allgemein.get_options("Kategorien") - ruestcodes = configs.Allgemein.get_options("Ruestcode") - - # Halbzeug ohne Sägeliste - halbzeugOhneSaege_label = ttk.Label(frame, text="Halbzeug ohne Sägeliste:" ) - halbzeugOhneSaege_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.halbzeugOhneSaege_sivas = tk.StringVar() - halbzeugOhneSaege_entry = ttk.Entry(frame, textvariable=self.halbzeugOhneSaege_sivas) - halbzeugOhneSaege_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) - - self.halbzeugOhneSaege_neu = tk.StringVar() - halbzeugOhneSaege_neu_combo = ttk.Combobox(frame, textvariable=self.halbzeugOhneSaege_neu) - halbzeugOhneSaege_neu_combo['values'] = categories - halbzeugOhneSaege_neu_combo['state'] = 'readonly' - halbzeugOhneSaege_neu_combo.bind('<>', lambda event:self.callback('halbzeugOhneSaege_neu')) - halbzeugOhneSaege_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.rownum += 1 - - # Rüstcode - ruestcode_label = ttk.Label(frame, text="Rüstcode:" ) - ruestcode_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.ruestcode_sivas = tk.StringVar() - ruestcode_entry = ttk.Entry(frame, textvariable=self.ruestcode_sivas) - ruestcode_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) - - self.ruestcode_neu = tk.StringVar() - ruestcode_neu_combo = ttk.Combobox(frame, textvariable=self.ruestcode_neu) - ruestcode_neu_combo['values'] = ruestcodes - ruestcode_neu_combo['state'] = 'readonly' - ruestcode_neu_combo.bind('<>', lambda event:self.callback('ruestcode_neu')) - ruestcode_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.rownum += 1 - - # Fertigungsart - fertigungsart_label = ttk.Label(frame, text="Fertigungsart:" ) - fertigungsart_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.fertigungsart_sivas = tk.StringVar() - fertigungsart_entry = ttk.Entry(frame, textvariable=self.fertigungsart_sivas) - fertigungsart_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) - - self.fertigungsart_neu = tk.StringVar() - fertigungsart_neu_combo = ttk.Combobox(frame, textvariable=self.fertigungsart_neu) - fertigungsart_neu_combo['values'] = categories - fertigungsart_neu_combo['state'] = 'readonly' - fertigungsart_neu_combo.bind('<>', lambda event:self.callback('fertigungsart_neu')) - fertigungsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.rownum += 1 - - # Allgmeintoleranz - allgemeintoleranz_label = ttk.Label(frame, text="Allgemeintoleranz:" ) - allgemeintoleranz_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.allgemeintoleranz_sivas = tk.StringVar() - allgemeintoleranz_entry = ttk.Entry(frame, textvariable=self.allgemeintoleranz_sivas) - allgemeintoleranz_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) - - self.allgemeintoleranz_neu = tk.StringVar() - allgemeintoleranz_neu_combo = ttk.Combobox(frame, textvariable=self.allgemeintoleranz_neu) - allgemeintoleranz_neu_combo['values'] = categories - allgemeintoleranz_neu_combo['state'] = 'readonly' - allgemeintoleranz_neu_combo.bind('<>', lambda event:self.callback('allgemeintoleranz_neu')) - allgemeintoleranz_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.rownum += 1 - - # FOS-Gruppe - fosGruppe_label = ttk.Label(frame, text="FOS-Gruppe:" ) - fosGruppe_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.fosGruppe_sivas = tk.StringVar() - fosGruppe_entry = ttk.Entry(frame, textvariable=self.fosGruppe_sivas) - fosGruppe_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) - - self.fosGruppe_neu = tk.StringVar() - fosGruppe_neu_combo = ttk.Combobox(frame, textvariable=self.fosGruppe_neu) - fosGruppe_neu_combo['values'] = categories - fosGruppe_neu_combo['state'] = 'readonly' - fosGruppe_neu_combo.bind('<>', lambda event:self.callback('fosGruppe_neu')) - fosGruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.rownum += 1 - - # Kalulationsart - kalkulationsart_label = ttk.Label(frame, text="Kalkulationsart:" ) - kalkulationsart_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.kalkulationsart_sivas = tk.StringVar() - kalkulationsart_entry = ttk.Entry(frame, textvariable=self.kalkulationsart_sivas) - kalkulationsart_entry.grid(column=col_left+1, row=self.rownum, sticky=tk.W, padx=3, pady=3) - - self.kalkulationsart_neu = tk.StringVar() - kalkulationsart_neu_combo = ttk.Combobox(frame, textvariable=self.kalkulationsart_neu) - kalkulationsart_neu_combo['values'] = categories - kalkulationsart_neu_combo['state'] = 'readonly' - kalkulationsart_neu_combo.bind('<>', lambda event:self.callback('kalkulationsart_neu')) - kalkulationsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) - self.rownum += 1 - - separator = ttk.Separator(frame, orient='horizontal') - separator.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) - self.rownum += 1 - - def get_data(self): - return { - "halbzeugOhneSaege_sivas": self.halbzeugOhneSaege_sivas.get(), - "halbzeugOhneSaege_neu": self.halbzeugOhneSaege_neu.get(), - "ruestcode_sivas": self.ruestcode_sivas.get(), - "ruestcode_neu": self.ruestcode_neu.get(), - "fertigungsart_sivas": self.fertigungsart_sivas.get(), - "fertigungsart_neu": self.fertigungsart_neu.get(), - "allgemeintoleranz_sivas": self.allgemeintoleranz_sivas.get(), - "allgemeintoleranz_neu": self.allgemeintoleranz_neu.get(), - "fosGruppe_sivas": self.fosGruppe_sivas.get(), - "fosGruppe_neu": self.fosGruppe_neu.get(), - "kalkulationsart_sivas": self.kalkulationsart_sivas.get(), - "kalkulationsart_neu": self.kalkulationsart_neu.get(), - } - - def data_from_model(self): - data = self.get_controller().get_all_gui_data() - - if 'halbzeugOhneSaege_sivas' in data: - self.halbzeugOhneSaege_sivas.set(data["halbzeugOhneSaege_sivas"]) - if 'halbzeugOhneSaege_neu' in data: - self.halbzeugOhneSaege_neu.set(data["halbzeugOhneSaege_neu"]) - if 'ruestcode_sivas' in data: - self.ruestcode_sivas.set(data["ruestcode_sivas"]) - if 'ruestcode_neu' in data: - self.ruestcode_neu.set(data["ruestcode_neu"]) - if 'fertigungsart_sivas' in data: - self.fertigungsart_sivas.set(data["fertigungsart_sivas"]) - if 'fertigungsart_neu' in data: - self.fertigungsart_neu.set(data["fertigungsart_neu"]) - if 'allgemeintoleranz_sivas' in data: - self.allgemeintoleranz_sivas.set(data["allgemeintoleranz_sivas"]) - if 'allgemeintoleranz_neu' in data: - self.allgemeintoleranz_neu.set(data["allgemeintoleranz_neu"]) - if 'fosGruppe_sivas' in data: - self.fosGruppe_sivas.set(data["fosGruppe_sivas"]) - if 'fosGruppe_neu' in data: - self.fosGruppe_neu.set(data["fosGruppe_neu"]) - if 'kalkulationsart_sivas' in data: - self.kalkulationsart_sivas.set(data["kalkulationsart_sivas"]) - if 'kalkulationsart_neu' in data: - self.kalkulationsart_neu.set(data["kalkulationsart_neu"]) - class RightFrameVersion(AllFrames): def __init__(self, frame, nrow=0, configs=None): @@ -898,12 +988,6 @@ class RightFrameVersion(AllFrames): separator.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) self.rownum += 1 - speichern_button = ttk.Button(frame, text="Speichern", command=lambda: self.callback("speichern")) - speichern_button.grid(column=col_left, row=self.rownum, sticky=tk.EW, padx=3, pady=3) - migrieren_button = ttk.Button(frame, text="migrieren", command=lambda: self.callback("migrieren")) - migrieren_button.grid(column=col_left+1, row=self.rownum, sticky=tk.EW, padx=3, pady=3) - zuruecksetzen_button = ttk.Button(frame, text="zurücksetzen", command=lambda: self.callback("zurücksetzen")) - zuruecksetzen_button.grid(column=col_left+2, row=self.rownum, sticky=tk.EW, padx=3, pady=3) def get_data(self): return { @@ -936,6 +1020,57 @@ class RightFrameVersion(AllFrames): if 'freigabevermerk_neu' in data: self.freigabevermerk_neu.set(data["freigabevermerk_neu"]) +class RightFrameZusatzinfos(AllFrames): + def __init__(self, frame, nrow=0, configs=None): + AllFrames.__init__(self, nrow) + self.frame = frame + self.build_widgets(configs) + + def build_widgets(self, configs): + frame = self.frame + self.rownum = AllFrames.get_rows(self) + col_left = 0 + + # Zusatzinformationen automatisch + zusatzinfos_auto_label = ttk.Label(frame, text="Zusatzinformationen\nautomatisch:") + zusatzinfos_auto_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.zusatzinfos_auto_text = tk.StringVar() + zusatzinfos_auto_entry = ttk.Entry(frame, textvariable=self.zusatzinfos_auto_text) + zusatzinfos_auto_entry.grid(column=col_left+1, columnspan=2, row=self.rownum, sticky=tk.EW+tk.NS, padx=3, pady=3) + self.rownum += 1 + + # Zusatzinformationen Benutzerdefiniert + zusatzinfos_bendef_label = ttk.Label(frame, text="Zusatzinformationen\nBenutzerdefiniert:") + zusatzinfos_bendef_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) + self.zusatzinfos_bendef_text = tk.StringVar() + zusatzinfos_bendef_entry = ttk.Entry(frame, textvariable=self.zusatzinfos_bendef_text) + zusatzinfos_bendef_entry.grid(column=col_left+1, columnspan=2, row=self.rownum, sticky=tk.EW+tk.NS, padx=3, pady=3) + self.rownum += 1 + + separator = ttk.Separator(frame, orient='horizontal') + separator.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) + self.rownum += 1 + + speichern_button = ttk.Button(frame, text="Speichern", command=lambda: self.callback("speichern")) + speichern_button.grid(column=col_left, row=self.rownum, sticky=tk.EW, padx=3, pady=3) + migrieren_button = ttk.Button(frame, text="migrieren", command=lambda: self.callback("migrieren")) + migrieren_button.grid(column=col_left+1, row=self.rownum, sticky=tk.EW, padx=3, pady=3) + zuruecksetzen_button = ttk.Button(frame, text="zurücksetzen", command=lambda: self.callback("zurücksetzen")) + zuruecksetzen_button.grid(column=col_left+2, row=self.rownum, sticky=tk.EW, padx=3, pady=3) + + def get_data(self): + return { + "zusatzinfos_auto_text": self.zusatzinfos_auto_text.get(), + "zusatzinfos_bendef_text": self.zusatzinfos_bendef_text.get(), + } + + def data_from_model(self): + data = self.get_controller().get_all_gui_data() + if 'zusatzinfos_auto_text' in data: + self.zusatzinfos_text.set(data["zusatzinfos_auto_text"]) + if 'zusatzinfos_bendef_text' in data: + self.zusatzinfos_text.set(data["zusatzinfos_bendef_text"]) + class App(): def __init__(self, root, configs=None): """Standardgui mit Baum zur Anwahl der Teile des Assemblies""" @@ -1003,14 +1138,18 @@ class App(): nrows = self.rf2.get_rows() self.rf3 = RightFrameBezeichnung(right_frame, nrows, configs) nrows = self.rf3.get_rows() - self.rf4 = RightFrameTOSGruppe(right_frame, nrows, configs) + self.rf4 = RightFrameHalbzeugOhneS(right_frame, nrows, configs) nrows = self.rf4.get_rows() - self.rf5 = RightFrameWerkstoffdiskrepanz(right_frame, nrows, configs) + self.rf5 = RightFrameBeschaffungsart(right_frame, nrows, configs) nrows = self.rf5.get_rows() - self.rf6 = RightFrameHalbzeugOhneS(right_frame, nrows, configs) + self.rf6 = RightFrameTOSGruppe(right_frame, nrows, configs) nrows = self.rf6.get_rows() - self.rf7 = RightFrameVersion(right_frame, nrows, configs) + self.rf7 = RightFrameWerkstoffdiskrepanz(right_frame, nrows, configs) nrows = self.rf7.get_rows() + self.rf8 = RightFrameVersion(right_frame, nrows, configs) + nrows = self.rf8.get_rows() + self.rf9 = RightFrameZusatzinfos(right_frame, nrows, configs) + nrows = self.rf9.get_rows() def data_from_model(self): """ methode zum Auslesen aller Daten der Oberfläche aus dem Modell @@ -1025,6 +1164,8 @@ class App(): self.rf5.data_from_model() self.rf6.data_from_model() self.rf7.data_from_model() + self.rf8.data_from_model() + self.rf9.data_from_model() def set_controller(self, controller): """ merken des Handels auf den Controller in jedem Widget""" @@ -1040,6 +1181,8 @@ class App(): self.rf5.set_controller(controller) self.rf6.set_controller(controller) self.rf7.set_controller(controller) + self.rf8.set_controller(controller) + self.rf9.set_controller(controller) def mainloop(self): self.root.mainloop()