|
|
@@ -17,6 +17,7 @@ import urllib
|
|
|
import subprocess
|
|
|
import sys
|
|
|
import os
|
|
|
+import time
|
|
|
|
|
|
global current_model
|
|
|
global current_metamodel
|
|
|
@@ -13289,10 +13290,13 @@ class Listbox(RuntimeClassBase):
|
|
|
|
|
|
def user_defined_constructor(self, constructor_parameters = None):
|
|
|
if constructor_parameters == None: constructor_parameters = {}
|
|
|
- self.entry = tk.Listbox(constructor_parameters['parent'])
|
|
|
+ self.entries = []
|
|
|
+ self.parent = constructor_parameters['parent']
|
|
|
+ self.entry_timers = []
|
|
|
|
|
|
def user_defined_destructor(self):
|
|
|
- self.entry.destroy()
|
|
|
+ for entry in self.entries:
|
|
|
+ entry.destroy()
|
|
|
|
|
|
|
|
|
# builds Statechart structure
|
|
|
@@ -13309,6 +13313,8 @@ class Listbox(RuntimeClassBase):
|
|
|
|
|
|
# state /main/ready
|
|
|
self.states["/main/ready"] = State(3, "/main/ready", self)
|
|
|
+ self.states["/main/ready"].setEnter(self._main_ready_enter)
|
|
|
+ self.states["/main/ready"].setExit(self._main_ready_exit)
|
|
|
|
|
|
# add children
|
|
|
self.states[""].addChild(self.states["/main"])
|
|
|
@@ -13327,25 +13333,41 @@ class Listbox(RuntimeClassBase):
|
|
|
# transition /main/ready
|
|
|
_main_ready_0 = Transition(self, self.states["/main/ready"], [self.states["/main/ready"]])
|
|
|
_main_ready_0.setAction(self._main_ready_0_exec)
|
|
|
- _main_ready_0.setTrigger(Event("append_value", None))
|
|
|
+ _main_ready_0.setTrigger(Event("prepend_value", None))
|
|
|
self.states["/main/ready"].addTransition(_main_ready_0)
|
|
|
_main_ready_1 = Transition(self, self.states["/main/ready"], [self.states["/main/ready"]])
|
|
|
_main_ready_1.setAction(self._main_ready_1_exec)
|
|
|
- _main_ready_1.setTrigger(Event("prepend_value", None))
|
|
|
+ _main_ready_1.setTrigger(Event("_0after"))
|
|
|
self.states["/main/ready"].addTransition(_main_ready_1)
|
|
|
|
|
|
+ def _main_ready_enter(self):
|
|
|
+ self.addTimer(0, min(10000, max(min(self.entry_timers) - time.time(), 0)))
|
|
|
+
|
|
|
+ def _main_ready_exit(self):
|
|
|
+ self.removeTimer(0)
|
|
|
+
|
|
|
def _main_initializing_0_exec(self, parameters):
|
|
|
- self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("tk_widget", None, [self.entry])]))
|
|
|
+ entry = tk.Label(self.parent, text="ABC", bg="red", wraplength=30, width=30)
|
|
|
+ self.entries.append(entry)
|
|
|
+ entry = tk.Label(self.parent, text="DDD", bg="red", wraplength=30, width=30)
|
|
|
+ self.entries.append(entry)
|
|
|
+ entry = tk.Label(self.parent, text="EFG", bg="red", wraplength=30, width=30)
|
|
|
+ self.entries.append(entry)
|
|
|
+ [i.pack(anchor=tk.N, fill=tk.X) for i in reversed(self.entries)]
|
|
|
+ self.entry_timers = [time.time() + 4, time.time() + 2, time.time() + 1]
|
|
|
|
|
|
def _main_ready_0_exec(self, parameters):
|
|
|
new_value = parameters[0]
|
|
|
- self.entry.insert(tk.END, new_value)
|
|
|
- self.entry.see(tk.END)
|
|
|
+ [i.pack_forget() for i in self.entries]
|
|
|
+ entry = tk.Label(self.parent, text=new_value, wraplength=30, bg="red", width=30)
|
|
|
+ self.entries.append(entry)
|
|
|
+ [i.pack(anchor=tk.N, fill=tk.X) for i in reversed(self.entries)]
|
|
|
|
|
|
def _main_ready_1_exec(self, parameters):
|
|
|
- new_value = parameters[0]
|
|
|
- self.entry.insert(0, new_value)
|
|
|
- self.entry.see(0)
|
|
|
+ for i, v in enumerate(self.entry_timers):
|
|
|
+ if v < time.time():
|
|
|
+ self.entries[i].config(bg="lightgrey")
|
|
|
+ self.entry_timers[i] = float('inf')
|
|
|
|
|
|
def initializeStatechart(self):
|
|
|
# enter default state
|