ein paar Variablen in caditem protected gemacht. Laden und Speichern der ausgefüllten Oberfläche im json file im Work Ordner implementiert
This commit is contained in:
+41
-33
@@ -178,9 +178,8 @@ class CadItem(DataModel):
|
||||
def get_asm_id(self):
|
||||
return self.get_gui_data("asm_id")
|
||||
|
||||
def get_current_part_id(self):
|
||||
return self.get_gui_data("teilenummer")
|
||||
|
||||
def get_current_item_id(self):
|
||||
return self.get_gui_data('teilenummer')
|
||||
|
||||
def set_parent_children(self, parent_children_mapping):
|
||||
""" contains all id relations below, data of subassemblies etc. in
|
||||
@@ -290,10 +289,10 @@ class CadItem(DataModel):
|
||||
path = os.path.join(subpath, cid + '.json')
|
||||
if os.path.exists(path):
|
||||
self.load(path)
|
||||
return True
|
||||
return False
|
||||
|
||||
def from_json(self, json_str):
|
||||
jsonobj = json.loads(json_str)
|
||||
def from_json(self, jsonobj):
|
||||
|
||||
if "gui_data" in jsonobj:
|
||||
gui_data = jsonobj["gui_data"]
|
||||
@@ -304,12 +303,10 @@ class CadItem(DataModel):
|
||||
if "parent_children_mapping" in jsonobj:
|
||||
parent_children_mapping = jsonobj["parent_children_mapping"]
|
||||
self.set_parent_children(parent_children_mapping)
|
||||
else:
|
||||
raise Exception("no parent_children_mapping given in string")
|
||||
|
||||
if "red_ids" in jsonobj:
|
||||
red_ids = jsonobj["red_ids"]
|
||||
self.set_red_ids(red_ids)
|
||||
return True
|
||||
|
||||
def to_dict(self, tree=False ):
|
||||
jsonobj = dict()
|
||||
@@ -340,11 +337,20 @@ class CadItem(DataModel):
|
||||
except Exception:
|
||||
raise Exception("guid_data, data, parent_children_mapping or red_ids not found")
|
||||
|
||||
def save_to_file(self):
|
||||
"""speichert die bisherigen Eingaben beider Spalten in eine json Datei"""
|
||||
path = os.path.join(self._controller.get_env("out"), str(self.get_current_item_id()) + '.json')
|
||||
if self.get_current_item_id == self.get_asm_id:
|
||||
savePath = True
|
||||
else:
|
||||
savePath = False
|
||||
# die Bauminfos und RedIds dazu werden standardmässig nicht mit gemerkt. Nur im obersten Assemblyfile
|
||||
self.save(path, savePath)
|
||||
|
||||
def save(self, path, tree=False):
|
||||
"""saves all data of model to a json string"""
|
||||
with open(path, 'w') as f:
|
||||
json.dump(self.to_dict(tree), f)
|
||||
json.dump(self.to_dict(tree), f, indent=4, sort_keys=True)
|
||||
|
||||
def callback(self, key, value):
|
||||
if self._logic == None:
|
||||
@@ -400,9 +406,9 @@ class GuiLogic():
|
||||
def __init__(self, model, configs):
|
||||
# das Modell soll hier nur verwendet werden um aktuell Zustände abzufragen!
|
||||
# alles weitere zum Setzen von Daten etc. muss über den Controller laufen, also zurück gegeben werden.
|
||||
self.model = model
|
||||
self._model = model
|
||||
# hier holt man die Daten der Configs
|
||||
self.config = configs
|
||||
self._config = configs
|
||||
# hier sind alle Callbacks bzw. deren Comboboxen
|
||||
|
||||
def set_gui_defaults(self):
|
||||
@@ -413,7 +419,7 @@ class GuiLogic():
|
||||
self.call_and_set_data('cb_halbzeugoberflaeche')
|
||||
|
||||
def call_and_set_data(self, callbackfunc):
|
||||
eval('self.model.set_gui_dict(self.'+callbackfunc+'(None))')
|
||||
eval('self._model.set_gui_dict(self.'+callbackfunc+'(None))')
|
||||
|
||||
def callback(self, key, value):
|
||||
"""gibt ein dict zurück, welches neu im Modell gesetzt wird"""
|
||||
@@ -468,7 +474,9 @@ class GuiLogic():
|
||||
pass
|
||||
elif key == 'cb_farbe_neu':
|
||||
ret = self.cb_farbe_neu(value)
|
||||
# Aktionen
|
||||
elif key == 'cb_speichern':
|
||||
self._model.save_to_file()
|
||||
pass
|
||||
elif key == 'cb_migrieren':
|
||||
pass
|
||||
@@ -548,7 +556,7 @@ class GuiLogic():
|
||||
<undefiniert>, Baugruppe, Einzelteil, Kaufteil, Schweissbaugruppe
|
||||
"""
|
||||
ret = dict()
|
||||
categories = self.config.Allgemein.get_options("Kategorien")
|
||||
categories = self._config.Allgemein.get_options("Kategorien")
|
||||
if selected is None:
|
||||
ret['pdm_kategorie_neu'] = categories[0]
|
||||
ret['cb_pdm_kategorie_neu'] = categories
|
||||
@@ -558,7 +566,7 @@ class GuiLogic():
|
||||
|
||||
def cb_neuaufbau(self, trueOrfalse):
|
||||
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 not trueOrfalse is None:
|
||||
ret["neuaufbau"] = trueOrfalse
|
||||
@@ -568,7 +576,7 @@ class GuiLogic():
|
||||
|
||||
def cb_aus_halbzeug_neu(self, trueOrfalse):
|
||||
ret = dict()
|
||||
pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
|
||||
pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
||||
|
||||
# normalerweise ist der Haken nicht gesetz
|
||||
ret["aus_halbzeug_neu"] = False
|
||||
@@ -581,9 +589,9 @@ class GuiLogic():
|
||||
|
||||
def cb_halbzeugoberflaeche(self, selected):
|
||||
ret = dict()
|
||||
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
||||
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||
if aus_halbzeug == "True":
|
||||
oarten = self.config.Oberfläche.get_oberflächen_behandlungen()
|
||||
oarten = self._config.Oberfläche.get_oberflächen_behandlungen()
|
||||
if selected is None:
|
||||
ret['halbzeugoberflaeche_neu'] = oarten[0]
|
||||
ret['cb_halbzeugoberflaeche'] = oarten
|
||||
@@ -598,7 +606,7 @@ class GuiLogic():
|
||||
|
||||
def cb_lebenszyklus_status_neu(self, selected):
|
||||
ret = dict()
|
||||
lstatus = self.config.Allgemein.get_options("Lebenszyklus") # Serie, Prototyp
|
||||
lstatus = self._config.Allgemein.get_options("Lebenszyklus") # Serie, Prototyp
|
||||
if selected is None:
|
||||
ret['lebenszyklus_status_neu'] = lstatus[0]
|
||||
ret['cb_lebenszyklus_status_neu'] = lstatus
|
||||
@@ -608,8 +616,8 @@ class GuiLogic():
|
||||
|
||||
def cb_halbzeugfarbe(self, selected):
|
||||
ret = dict()
|
||||
halbzeugoberflaeche = self.model.get_gui_data("halbzeugoberflaeche_neu")
|
||||
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
||||
halbzeugoberflaeche = self._model.get_gui_data("halbzeugoberflaeche_neu")
|
||||
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||
|
||||
# setze die Inhalte der abhängigen Comboboxen neu
|
||||
ret = {
|
||||
@@ -618,14 +626,14 @@ class GuiLogic():
|
||||
}
|
||||
if aus_halbzeug == "True":
|
||||
if halbzeugoberflaeche == "eloxieren":
|
||||
farben_elox = self.config.Farben.get_farben_eloxieren()
|
||||
farben_elox = self._config.Farben.get_farben_eloxieren()
|
||||
if selected is None:
|
||||
ret['halbzeugfarbe_neu'] = farben_elox[0] # Default, falls nichts gewählt ist
|
||||
ret['cb_halbzeugfarbe'] = farben_elox # Liste in der Combobox
|
||||
else:
|
||||
ret['halbzeugfarbe_neu'] = selected # vom Nutzer ausgewählter Wert
|
||||
elif halbzeugoberflaeche == "lackieren" or halbzeugoberflaeche == "pulverbeschichten":
|
||||
farbauswahl = self.config.Farben.get_farbauswahl()
|
||||
farbauswahl = self._config.Farben.get_farbauswahl()
|
||||
if selected is None:
|
||||
ret['halbzeugfarbe_neu'] = farbauswahl[0]
|
||||
ret['cb_halbzeugfarbe'] = farbauswahl
|
||||
@@ -637,7 +645,7 @@ class GuiLogic():
|
||||
|
||||
def cb_3Dmodel_neu(self, selected):
|
||||
ret = dict()
|
||||
pdm_kategorie_neu = self.model.get_gui_data("pdm_kategorie_neu")
|
||||
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
||||
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
# Defaultwert = \\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric\baugruppe.asm
|
||||
# Dropdownwerte = keine
|
||||
@@ -655,8 +663,8 @@ class GuiLogic():
|
||||
# state_Button = disabled
|
||||
pass
|
||||
elif pdm_kategorie_neu == "Einzelteil":
|
||||
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
||||
neuaufbau = self.model.get_gui_data("neuaufbau")
|
||||
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||
neuaufbau = self._model.get_gui_data("neuaufbau")
|
||||
if aus_halbzeug == "True" or neuaufbau == "True":
|
||||
# Defaultwert = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen\ET_mit_Volumen.par
|
||||
# Dropdownwerte = keine
|
||||
@@ -697,11 +705,11 @@ class GuiLogic():
|
||||
# # das Feld selbst mit dem Selektierten beschreiben
|
||||
# ret['werkstofftyp_neu']= selected_werkstoff
|
||||
|
||||
# pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
|
||||
# aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
||||
# pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
||||
# aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||
|
||||
# if pdm_kat == 'Einzelteil' and aus_halbzeug is False:
|
||||
# wnamen = self.config.Werkstoffe.get_werkstoffe_of_name(selected_werkstoff)
|
||||
# wnamen = self._config.Werkstoffe.get_werkstoffe_of_name(selected_werkstoff)
|
||||
# # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
|
||||
# ret = {
|
||||
# # das Feld selbst mit dem Selektierten beschreiben
|
||||
@@ -719,11 +727,11 @@ class GuiLogic():
|
||||
# # das Feld selbst mit dem Selektierten beschreiben
|
||||
# ret['oberflaeche_neu']= selected
|
||||
|
||||
# pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
|
||||
# aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
||||
# pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
||||
# aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||
|
||||
# if pdm_kat == 'Einzelteil' and aus_halbzeug is False:
|
||||
# onamen = self.config.Oberfläche.get_oberfläche_of_type(selected)
|
||||
# onamen = self._config.Oberfläche.get_oberfläche_of_type(selected)
|
||||
# # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
|
||||
# ret = {
|
||||
# # die neuen Inhalte der comboboxen setzen
|
||||
@@ -734,8 +742,8 @@ class GuiLogic():
|
||||
# return ret
|
||||
|
||||
def cb_farbe_neu(self, selected):
|
||||
farben_alle = self.config.Farben.get_farbauswahl()
|
||||
farben_elox = self.config.Farben.get_farben_eloxieren()
|
||||
farben_alle = self._config.Farben.get_farbauswahl()
|
||||
farben_elox = self._config.Farben.get_farben_eloxieren()
|
||||
# setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
|
||||
ret = {
|
||||
# das Feld selbst mit dem Selektierten beschreiben
|
||||
|
||||
+1
-21
@@ -118,12 +118,8 @@ class Controller(Observer):
|
||||
# und diese in der Gui setzen
|
||||
set_data = self._model.csv2guidata(loaded)
|
||||
self._model.set_gui_defaults()
|
||||
self.refresh_gui()
|
||||
self.refresh_gui()
|
||||
|
||||
def get_current_item_id(self):
|
||||
return self.get_gui_data('teilenummer')
|
||||
|
||||
|
||||
def set_red_ids(self, red_ids):
|
||||
self._model.set_red_ids(red_ids)
|
||||
def get_red_ids(self):
|
||||
@@ -175,22 +171,6 @@ class Controller(Observer):
|
||||
# gib dem observer Bescheid, was aufgerufen wurde
|
||||
self.notify(self._model, key,value)
|
||||
self.refresh_gui()
|
||||
|
||||
# reine Aktionen
|
||||
if key == 'cb_speichern':
|
||||
self.save_to_file()
|
||||
elif key == 'cb_migrieren':
|
||||
pass
|
||||
elif key == 'cb_zurücksetzen':
|
||||
pass
|
||||
elif key == 'cb_suche_asm':
|
||||
pass
|
||||
|
||||
def save_to_file(self):
|
||||
"""speichert die bisherigen Eingaben beider Spalten in eine json Datei"""
|
||||
path = os.path.join(self.get_env("out"), str(self.get_current_item_id()) + '.json')
|
||||
# die Bauminfos und RedIds dazu werden standardmässig nicht mit gemerkt.
|
||||
self._model.save(path, False)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user