소스 검색

Working AL code in attributes (read/write)

Yentl Van Tendeloo 7 년 전
부모
커밋
bbcb5d8fbb
3개의 변경된 파일33개의 추가작업 그리고 13개의 파일을 삭제
  1. 6 3
      classes/canvas/canvas_element.xml
  2. 10 3
      classes/window/prompt_window.xml
  3. 17 7
      frontend.py

+ 6 - 3
classes/canvas/canvas_element.xml

@@ -256,8 +256,7 @@
                     <transition event="mv_response" target="../check">
                     <transition event="mv_response" target="../check">
                         <parameter name="result"/>
                         <parameter name="result"/>
                         <script>
                         <script>
-                            print("Got result: " + str(result))
-                            self.prev_results[self.attr_name] = result
+                            self.prev_results[self.attr_name] = result.rstrip() + "\n"
                         </script>
                         </script>
                     </transition>
                     </transition>
                 </state>
                 </state>
@@ -290,7 +289,11 @@
                     <script>
                     <script>
                         for k in results:
                         for k in results:
                             if results[k] != self.prev_results[k]:
                             if results[k] != self.prev_results[k]:
-                                self.diff_results[k] = results[k]
+                                if k in self.al_keys:
+                                    if results[k].strip() != self.prev_results[k].strip():
+                                        self.diff_results[k] = results[k]
+                                else:
+                                    self.diff_results[k] = results[k]
                         self.remaining_responses = len(self.diff_results)
                         self.remaining_responses = len(self.diff_results)
                     </script>
                     </script>
                 </transition>
                 </transition>

+ 10 - 3
classes/window/prompt_window.xml

@@ -22,8 +22,12 @@
             for k, v in entries.items():
             for k, v in entries.items():
                 label = tk.Label(self.frame, text=k)
                 label = tk.Label(self.frame, text=k)
 
 
-                entry = tk.Entry(self.frame, **options.get(k, {}))
-                entry.insert(0, v if v is not None else "")
+                if "\n" in v:
+                    entry = tk.Text(self.frame, **options.get(k, {}))
+                    entry.insert(tk.END, v.strip() if v is not None else "")
+                else:
+                    entry = tk.Entry(self.frame, **options.get(k, {}))
+                    entry.insert(0, v if v is not None else "")
 
 
                 label.grid(row=counter, column=0)
                 label.grid(row=counter, column=0)
                 entry.grid(row=counter, column=1)
                 entry.grid(row=counter, column=1)
@@ -80,7 +84,10 @@
                 <script>
                 <script>
                     results = {}
                     results = {}
                     for k, v in self.entries.items():
                     for k, v in self.entries.items():
-                        results[k] = v.get()
+                        try:
+                            results[k] = v.get()
+                        except:
+                            results[k] = v.get("1.0", tk.END)
                     print("SENDING DATA")
                     print("SENDING DATA")
                 </script>
                 </script>
 
 

+ 17 - 7
frontend.py

@@ -1,7 +1,7 @@
 """
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Tue May 29 16:47:28 2018
+Date:   Wed May 30 09:44:06 2018
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   Modelverse Visual Editor - Tkinter Version 
 Model name:   Modelverse Visual Editor - Tkinter Version 
@@ -5151,8 +5151,12 @@ class PromptWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         for k, v in entries.items():
         for k, v in entries.items():
             label = tk.Label(self.frame, text=k)
             label = tk.Label(self.frame, text=k)
         
         
-            entry = tk.Entry(self.frame, **options.get(k, {}))
-            entry.insert(0, v if v is not None else "")
+            if "\n" in v:
+                entry = tk.Text(self.frame, **options.get(k, {}))
+                entry.insert(tk.END, v.strip() if v is not None else "")
+            else:
+                entry = tk.Entry(self.frame, **options.get(k, {}))
+                entry.insert(0, v if v is not None else "")
         
         
             label.grid(row=counter, column=0)
             label.grid(row=counter, column=0)
             entry.grid(row=counter, column=1)
             entry.grid(row=counter, column=1)
@@ -5259,7 +5263,10 @@ class PromptWindow(RuntimeClassBase, tk.Toplevel, SCCDWidget):
         event_name = parameters[0]
         event_name = parameters[0]
         results = {}
         results = {}
         for k, v in self.entries.items():
         for k, v in self.entries.items():
-            results[k] = v.get()
+            try:
+                results[k] = v.get()
+            except:
+                results[k] = v.get("1.0", tk.END)
         print("SENDING DATA")
         print("SENDING DATA")
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("prompt_results", None, [results])]))
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("prompt_results", None, [results])]))
     
     
@@ -14728,8 +14735,7 @@ class CanvasElement(RuntimeClassBase, SCCDWidget):
     
     
     def _update_attrs_translate_AL_process_0_exec(self, parameters):
     def _update_attrs_translate_AL_process_0_exec(self, parameters):
         result = parameters[0]
         result = parameters[0]
-        print("Got result: " + str(result))
-        self.prev_results[self.attr_name] = result
+        self.prev_results[self.attr_name] = result.rstrip() + "\n"
     
     
     def _update_attrs_prompt_0_exec(self, parameters):
     def _update_attrs_prompt_0_exec(self, parameters):
         name = parameters[0]
         name = parameters[0]
@@ -14740,7 +14746,11 @@ class CanvasElement(RuntimeClassBase, SCCDWidget):
         results = parameters[0]
         results = parameters[0]
         for k in results:
         for k in results:
             if results[k] != self.prev_results[k]:
             if results[k] != self.prev_results[k]:
-                self.diff_results[k] = results[k]
+                if k in self.al_keys:
+                    if results[k].strip() != self.prev_results[k].strip():
+                        self.diff_results[k] = results[k]
+                else:
+                    self.diff_results[k] = results[k]
         self.remaining_responses = len(self.diff_results)
         self.remaining_responses = len(self.diff_results)
     
     
     def _update_attrs_wait_for_results_1_exec(self, parameters):
     def _update_attrs_wait_for_results_1_exec(self, parameters):