Statusänderungen der Knöpfe begonnen. Treeview ist noch nicht korrekt.
This commit is contained in:
+28
-7
@@ -124,10 +124,12 @@ class CadItem(DataModel):
|
|||||||
"cb_oberflaeche_neu",
|
"cb_oberflaeche_neu",
|
||||||
"cb_farbe_neu",
|
"cb_farbe_neu",
|
||||||
# buttons
|
# buttons
|
||||||
"cb_suche_asm",
|
|
||||||
"cb_speichern",
|
"cb_speichern",
|
||||||
"cb_migrieren",
|
"cb_migrieren",
|
||||||
|
"cb_suche_asm",
|
||||||
"cb_zurücksetzen",
|
"cb_zurücksetzen",
|
||||||
|
"cb_ladelokal_asm",
|
||||||
|
"cb_3dsuchen",
|
||||||
]
|
]
|
||||||
|
|
||||||
# dies sind die Excel Headel der SIVAS csv Export Datei
|
# dies sind die Excel Headel der SIVAS csv Export Datei
|
||||||
@@ -770,14 +772,22 @@ class GuiLogic():
|
|||||||
ret["bezeichnung1_neu"] = text[0:maxlen]
|
ret["bezeichnung1_neu"] = text[0:maxlen]
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def cb_neuaufbau(self, trueOrfalse):
|
def cb_neuaufbau(self, selected):
|
||||||
ret = dict()
|
ret = dict()
|
||||||
|
|
||||||
pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
||||||
if pdm_kat == "Einzelteil" or pdm_kat == "Kaufteil":
|
if pdm_kat != "Einzelteil" and pdm_kat != "Kaufteil":
|
||||||
if not trueOrfalse is None:
|
self.set_state('neuaufbau', 'disabled')
|
||||||
ret["neuaufbau"] = trueOrfalse
|
|
||||||
else:
|
else:
|
||||||
ret["neuaufbau"] = False
|
self.set_state('neuaufbau', 'normal')
|
||||||
|
|
||||||
|
if selected is None:
|
||||||
|
# Default Vorbelegung
|
||||||
|
if pdm_kat != "Einzelteil" and pdm_kat != "Kaufteil":
|
||||||
|
ret['neuaufbau'] = False
|
||||||
|
else:
|
||||||
|
ret['neuaufbau'] = selected
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def cb_aus_halbzeug_neu(self, trueOrfalse):
|
def cb_aus_halbzeug_neu(self, trueOrfalse):
|
||||||
@@ -794,13 +804,16 @@ class GuiLogic():
|
|||||||
ret["halbzeugnummer_neu"] = ''
|
ret["halbzeugnummer_neu"] = ''
|
||||||
aus_halbzeug = ret["aus_halbzeug_neu"]
|
aus_halbzeug = ret["aus_halbzeug_neu"]
|
||||||
if aus_halbzeug == True:
|
if aus_halbzeug == True:
|
||||||
|
self.set_state('halbzeugnummer_neu', 'normal')
|
||||||
# wenn Kind der aktuellen Teilenummer in RD_Teilenummern.csv ist, dann anzeigen
|
# wenn Kind der aktuellen Teilenummer in RD_Teilenummern.csv ist, dann anzeigen
|
||||||
current_id = self._model.get_current_item_id()
|
current_id = self._model.get_current_item_id()
|
||||||
child_id = self._model.get_child_of_id(current_id)
|
child_id = self._model.get_child_of_id(current_id)
|
||||||
if child_id is not None:
|
if child_id is not None:
|
||||||
Teilenummern = self._config.TeileNummern.get_ruledesigner_ids()
|
Teilenummern = self._config.get_ruledesigner_ids()
|
||||||
if child_id in Teilenummern:
|
if child_id in Teilenummern:
|
||||||
ret["halbzeugnummer_neu"] = child_id
|
ret["halbzeugnummer_neu"] = child_id
|
||||||
|
else:
|
||||||
|
self.set_state('halbzeugnummer_neu', 'disabled')
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
@@ -876,12 +889,16 @@ class GuiLogic():
|
|||||||
# Dropdownwerte = keine
|
# Dropdownwerte = keine
|
||||||
# state_ComboBox = disabled
|
# state_ComboBox = disabled
|
||||||
# state_Button = disabled
|
# state_Button = disabled
|
||||||
|
self.set_state('cb_3Dmodel_neu', 'disabled')
|
||||||
|
self.set_state('cb_3dsuchen', 'disabled')
|
||||||
elif pdm_kategorie_neu == "Kaufteil":
|
elif pdm_kategorie_neu == "Kaufteil":
|
||||||
pfad = self._config.Pfade.get('3D-Modelle', 'Kaufteil')
|
pfad = self._config.Pfade.get('3D-Modelle', 'Kaufteil')
|
||||||
ret['cb_3Dmodel_neu'] = [pfad]
|
ret['cb_3Dmodel_neu'] = [pfad]
|
||||||
# Dropdownwerte = keine
|
# Dropdownwerte = keine
|
||||||
# state_ComboBox = disabled
|
# state_ComboBox = disabled
|
||||||
# state_Button = disabled
|
# state_Button = disabled
|
||||||
|
self.set_state('cb_3Dmodel_neu', 'disabled')
|
||||||
|
self.set_state('cb_3dsuchen', 'disabled')
|
||||||
elif pdm_kategorie_neu == "Einzelteil":
|
elif pdm_kategorie_neu == "Einzelteil":
|
||||||
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||||
neuaufbau = self._model.get_gui_data("neuaufbau")
|
neuaufbau = self._model.get_gui_data("neuaufbau")
|
||||||
@@ -891,6 +908,8 @@ class GuiLogic():
|
|||||||
# Dropdownwerte = keine
|
# Dropdownwerte = keine
|
||||||
# state_ComboBox = disabled
|
# state_ComboBox = disabled
|
||||||
# state_Button = disabled
|
# state_Button = disabled
|
||||||
|
self.set_state('cb_3Dmodel_neu', 'disabled')
|
||||||
|
self.set_state('cb_3dsuchen', 'disabled')
|
||||||
else:
|
else:
|
||||||
search_path = self._config.Pfade.get('3D-Modelle', 'EinzelteilDefault')
|
search_path = self._config.Pfade.get('3D-Modelle', 'EinzelteilDefault')
|
||||||
itemid = str(self._model.get_current_item_id())
|
itemid = str(self._model.get_current_item_id())
|
||||||
@@ -900,6 +919,8 @@ class GuiLogic():
|
|||||||
for root, dirnames, filenames in os.walk(search_path):
|
for root, dirnames, filenames in os.walk(search_path):
|
||||||
pfade.extend(glob.glob(os.path.join(root, itemid+".asm")))
|
pfade.extend(glob.glob(os.path.join(root, itemid+".asm")))
|
||||||
# Dropdownwerte = Dateipfade von allen .par-Dateien, die die aktuelle Teilenummer im Dateinamen aufweisen und sich gleichzeitig in einem der rekursiv durchsuchten Pfade aus der Sektion "3D-Modelle" in "Zielpfade.cfg" befinden.
|
# Dropdownwerte = Dateipfade von allen .par-Dateien, die die aktuelle Teilenummer im Dateinamen aufweisen und sich gleichzeitig in einem der rekursiv durchsuchten Pfade aus der Sektion "3D-Modelle" in "Zielpfade.cfg" befinden.
|
||||||
|
self.set_state('cb_3Dmodel_neu', 'readonly')
|
||||||
|
self.set_state('cb_3dsuchen', 'normal')
|
||||||
# state_ComboBox = readonly
|
# state_ComboBox = readonly
|
||||||
# state_Button = keiner
|
# state_Button = keiner
|
||||||
ret['cb_3Dmodel_neu'] = pfade
|
ret['cb_3Dmodel_neu'] = pfade
|
||||||
|
|||||||
+68
-28
@@ -79,28 +79,47 @@ class TreeView():
|
|||||||
for c in self.tree.get_children():
|
for c in self.tree.get_children():
|
||||||
self.tree.delete(c)
|
self.tree.delete(c)
|
||||||
|
|
||||||
|
def _has_childs(self, sid, parent_children_mapping):
|
||||||
|
'''gibt zurück ob sid ein ein Zwischenknoten eines Baume ist, also kein Blatt hat'''
|
||||||
|
for parent,children in parent_children_mapping.items():
|
||||||
|
if sid == parent:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def create(self, parent_children_mapping, red_ids):
|
def create(self, parent_children_mapping, red_ids):
|
||||||
# adding data of first column after root
|
# adding data of first column after root
|
||||||
pool = set()
|
pool = dict()
|
||||||
for parent,children in parent_children_mapping.items():
|
for parent, children in parent_children_mapping.items():
|
||||||
if parent not in pool:
|
parent_text = parent
|
||||||
self.tree.insert('', tk.END, text=parent, iid=parent, open=True)
|
# parent erzeugen, falls es diese nicht schon gibt
|
||||||
pool.add(parent)
|
if parent_text not in pool:
|
||||||
cn = children
|
parent_id = self.tree.insert('', tk.END, text=parent_text, open=True)
|
||||||
# sortiere die Zahlen im Baum immer aufsteigend
|
pool[parent_text] = parent_id
|
||||||
cn.sort(reverse=True)
|
else:
|
||||||
for child_id in cn:
|
parent_id = pool[parent_text]
|
||||||
if child_id not in pool:
|
|
||||||
pool.add(child_id)
|
|
||||||
if child_id not in red_ids: rowtags = ('good')
|
|
||||||
else: rowtags = ('missing')
|
|
||||||
self.tree.insert('', tk.END, text=child_id, iid=child_id, tags=rowtags, open=True)
|
|
||||||
#self.tree.move(child_id, parent, 0)
|
|
||||||
|
|
||||||
# einmal über alles gehen und alle keys an die richtige Stelle schieben
|
for child in children:
|
||||||
for parent,children in parent_children_mapping.items():
|
child_text = child
|
||||||
for child_id in children:
|
if child_text not in red_ids: rowtags = ('good')
|
||||||
self.tree.move(child_id, parent, 0)
|
else: rowtags = ('missing')
|
||||||
|
if self._has_childs(child_text, parent_children_mapping) == True:
|
||||||
|
# wenn das Objekt ein Kind hat, könnte es bereits erzeugt worden sein
|
||||||
|
if child_text not in pool:
|
||||||
|
child_id = self.tree.insert('', tk.END, text=child_text, tags=rowtags, open=True)
|
||||||
|
pool[child_text] = child_id
|
||||||
|
self.tree.move(child_id, parent_id, 0)
|
||||||
|
else:
|
||||||
|
# die Blätter des Baumes kann man bedenkenlos bauen
|
||||||
|
child_id = self.tree.insert('', tk.END, text=child_text, tags=rowtags, open=True)
|
||||||
|
self.tree.move(child_id, parent_id, 0)
|
||||||
|
pool[child_text] = child_id
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# # einmal über alles gehen und alle keys an die richtige Stelle schieben
|
||||||
|
# for parent,children in parent_children_mapping.items():
|
||||||
|
# for child_id in children:
|
||||||
|
# self.tree.move(child_id, parent, 0)
|
||||||
|
|
||||||
# https://www.askpython.com/python-modules/tkinter/tkinter-colors
|
# https://www.askpython.com/python-modules/tkinter/tkinter-colors
|
||||||
#self.tree.tag_configure('good', background='LawnGreen')
|
#self.tree.tag_configure('good', background='LawnGreen')
|
||||||
@@ -280,16 +299,16 @@ class RightFramePDM(AllFrames):
|
|||||||
halbzeugnummer_label = ttk.Label(frame, text="Halbzeugnummer:" )
|
halbzeugnummer_label = ttk.Label(frame, text="Halbzeugnummer:" )
|
||||||
halbzeugnummer_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
halbzeugnummer_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
||||||
self.halbzeugnummer_neu = tk.StringVar()
|
self.halbzeugnummer_neu = tk.StringVar()
|
||||||
halbzeugnummer_neu_entry = ttk.Entry(frame, textvariable=self.halbzeugnummer_neu, width=AllFrames.get_entry_text_width(self))
|
self.halbzeugnummer_neu_entry = ttk.Entry(frame, textvariable=self.halbzeugnummer_neu, width=AllFrames.get_entry_text_width(self))
|
||||||
halbzeugnummer_neu_entry.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
self.halbzeugnummer_neu_entry.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
||||||
self.rownum += 1
|
self.rownum += 1
|
||||||
|
|
||||||
# Halbzeuglänge
|
# Halbzeuglänge
|
||||||
halbzeuglaenge_label = ttk.Label(frame, text="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)
|
halbzeuglaenge_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
||||||
self.halbzeuglaenge_neu = tk.StringVar()
|
self.halbzeuglaenge_neu = tk.StringVar()
|
||||||
halbzeuglaenge_neu_entry = ttk.Entry(frame, textvariable=self.halbzeuglaenge_neu, width=AllFrames.get_entry_text_width(self))
|
self.halbzeuglaenge_neu_entry = ttk.Entry(frame, textvariable=self.halbzeuglaenge_neu, width=AllFrames.get_entry_text_width(self))
|
||||||
halbzeuglaenge_neu_entry.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
self.halbzeuglaenge_neu_entry.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
||||||
self.rownum += 1
|
self.rownum += 1
|
||||||
|
|
||||||
# HalbzeugOberfläche
|
# HalbzeugOberfläche
|
||||||
@@ -334,8 +353,8 @@ class RightFramePDM(AllFrames):
|
|||||||
self.rownum += 1
|
self.rownum += 1
|
||||||
|
|
||||||
#lambda: self.callback("cb_speichern", None)
|
#lambda: self.callback("cb_speichern", None)
|
||||||
suche3d_button = ttk.Button(frame, text="Durchsuchen..", command=lambda: self.callback("cb_3dsuchen", None))
|
self.suche3d_button = ttk.Button(frame, text="Durchsuchen..", command=lambda: self.callback("cb_3dsuchen", None))
|
||||||
suche3d_button.grid(column=col_left+2, row=self.rownum, sticky=tk.EW)
|
self.suche3d_button.grid(column=col_left+2, row=self.rownum, sticky=tk.EW)
|
||||||
self.rownum += 1
|
self.rownum += 1
|
||||||
|
|
||||||
|
|
||||||
@@ -396,9 +415,30 @@ class RightFramePDM(AllFrames):
|
|||||||
|
|
||||||
def set_states(self):
|
def set_states(self):
|
||||||
data = self.get_controller().get_gui_states()
|
data = self.get_controller().get_gui_states()
|
||||||
pass
|
# if 'datenbank' in data:
|
||||||
# if 'teilenummer' in data:
|
# self.datenbank['state'] = data["datenbank"]
|
||||||
# self.teilenummer_text["state"] = data['teilenummer']
|
if 'neuaufbau' in data:
|
||||||
|
self.neuaufbau_checkbutton['state'] = data["neuaufbau"]
|
||||||
|
if 'halbzeugnummer_neu' in data:
|
||||||
|
self.halbzeugnummer_neu_entry['state'] = data["halbzeugnummer_neu"]
|
||||||
|
if 'halbzeuglaenge_neu' in data:
|
||||||
|
self.halbzeuglaenge_neu_entry['state'] = data["halbzeuglaenge_neu"]
|
||||||
|
if 'aus_halbzeug_neu' in data:
|
||||||
|
self.aushalbzeug_checkbutton['state'] = data["aus_halbzeug_neu"]
|
||||||
|
# ab hier die Dropdowns der Oberfläche
|
||||||
|
if 'cb_pdm_kategorie_neu' in data:
|
||||||
|
self.pdmkategorie_combo['state'] = data["cb_pdm_kategorie_neu"]
|
||||||
|
if 'cb_lebenszyklus_status_neu' in data:
|
||||||
|
self.lebenszyklusstatus_combo['state'] = data["cb_lebenszyklus_status_neu"]
|
||||||
|
if 'cb_halbzeugoberflaeche' in data:
|
||||||
|
self.halbzeugoberflaeche_combo['state'] = data["cb_halbzeugoberflaeche"]
|
||||||
|
if 'cb_halbzeugfarbe' in data:
|
||||||
|
self.halbzeugfarbe_combo['state'] = data["cb_halbzeugfarbe"]
|
||||||
|
if 'cb_3Dmodel_neu' in data:
|
||||||
|
self.model3d_combo['state'] = data["cb_3Dmodel_neu"]
|
||||||
|
# buttons
|
||||||
|
if 'cb_3dsuchen' in data:
|
||||||
|
self.suche3d_button['state'] =data["cb_3dsuchen"]
|
||||||
|
|
||||||
class RightFrameBezeichnung(AllFrames):
|
class RightFrameBezeichnung(AllFrames):
|
||||||
def __init__(self, frame, nrow=0):
|
def __init__(self, frame, nrow=0):
|
||||||
|
|||||||
@@ -458,7 +458,7 @@ class Configs:
|
|||||||
|
|
||||||
self.TOSGruppen = TOSGroupsConfig(cfg_dir)
|
self.TOSGruppen = TOSGroupsConfig(cfg_dir)
|
||||||
self.Materialien = MaterialTransConfig(cfg_dir)
|
self.Materialien = MaterialTransConfig(cfg_dir)
|
||||||
self.TeileNummern = None
|
self._TeileNummern = None
|
||||||
self._env = None
|
self._env = None
|
||||||
|
|
||||||
def get_cfg_path(self):
|
def get_cfg_path(self):
|
||||||
@@ -477,3 +477,9 @@ class Configs:
|
|||||||
return self._env
|
return self._env
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_ruledesigner_ids(self):
|
||||||
|
if not self._TeileNummern:
|
||||||
|
self._TeileNummern = RuleDesignerDatabaseConfig(self._env.data_dir).get_ruledesigner_ids()
|
||||||
|
return self._TeileNummern
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user