Jelajahi Sumber

Allow changing attribute values

Yentl Van Tendeloo 8 tahun lalu
induk
melakukan
b2d2a11bc4
2 mengubah file dengan 13 tambahan dan 12 penghapusan
  1. 3 3
      bootstrap/model_management.alc
  2. 10 9
      interface/graphical/main.py

+ 3 - 3
bootstrap/model_management.alc

@@ -176,14 +176,14 @@ Element function model_join(models : Element, metamodel : Element, tracability_m
 				src = cast_id2s(read_edge_src(model["model"][key]))
 				dst = cast_id2s(read_edge_dst(model["model"][key]))
 				if (bool_and(dict_in(elem_map, src), dict_in(elem_map, dst))):
-					new_name = instantiate_link(new_model, retyping_key + type, "", elem_map[src], elem_map[dst])
+					new_name = instantiate_link(new_model, retyping_key + type, key, elem_map[src], elem_map[dst])
 				else:
 					set_add(second_keys, key)
 					new_name = ""
 			elif (has_value(model["model"][key])):
-				new_name = instantiate_value(new_model, retyping_key + type, "", model["model"][key])
+				new_name = instantiate_value(new_model, retyping_key + type, key, model["model"][key])
 			else:
-				new_name = instantiate_node(new_model, retyping_key + type, "")
+				new_name = instantiate_node(new_model, retyping_key + type, key)
 
 			if (new_name != ""):
 				// Add the new name to a map which registers the mapping to the new name

+ 10 - 9
interface/graphical/main.py

@@ -125,8 +125,7 @@ class Window(object):
         x, y = evt.x, evt.y
 
         # Read available attrs and their values
-        elem = self.find_AS(x, y)
-        as_id = elem[2]
+        as_id = self.find_AS(x, y)
         attrs = read_attrs(as_id)
         print("Got attrs: " + str(attrs))
 
@@ -325,15 +324,17 @@ class PromptDialog(tkSimpleDialog.Dialog):
         tkSimpleDialog.Dialog.__init__(self, master)
 
     def body(self, master):
-        self.entries = []
-        for i, q in enumerate(self.query):
-            Label(master, text=q).grid(row=i, column=0)
-            self.entries.append(Entry(master))
-            self.entries[-1].grid(row=i, column=1)
-        return self.entries[0]
+        self.entries = {}
+        for i, q in enumerate(self.query.items()):
+            Label(master, text=q[0]).grid(row=i, column=0)
+            self.entries[q[0]] = Entry(master)
+            if q[1] is not None:
+                self.entries[q[0]].insert(END, q[1])
+            self.entries[q[0]].grid(row=i, column=1)
+        return None
 
     def apply(self):
-        self.result = {self.query[i]: self.entries[i].get() for i in range(len(self.entries))}
+        self.result = {i: self.entries[i].get() for i in self.query}
 
 window = Window()
 root.mainloop()