12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <class name="Entry">
- <relationships>
- <association name="parent" class="A"/>
- </relationships>
- <method name="construct_strvar">
- <parameter name="parent"/>
- <parameter name="value"/>
- <body>
- self.strvar = tk.StringVar(parent)
- self.strvar.set(value)
- self.strvar.trace('w', lambda a, b, c: self.controller.addInput(Event("change_entry", "input", [id(self), self.strvar.get()])))
- return self.strvar
- </body>
- </method>
- <constructor>
- <parameter name="constructor_parameters" type='dict' default='{}' />
- <body>
- self.name = constructor_parameters['name']
- self.entry = tk.Entry(constructor_parameters['parent'], textvariable=self.construct_strvar(constructor_parameters['parent'], constructor_parameters['value']))
- if constructor_parameters.get('readonly', False):
- self.entry.config(state=tk.DISABLED)
- </body>
- </constructor>
- <destructor>
- <body>
- self.entry.destroy()
- </body>
- </destructor>
- <scxml initial="main">
- <state id="main" initial='initializing'>
- <state id="initializing">
- <transition target="../ready">
- <raise event="tk_widget" scope="narrow" target="'parent'">
- <parameter expr="self.entry"/>
- </raise>
- </transition>
- </state>
- <state id="ready">
- <transition port='input' event="change_entry" target='.' cond='tagorid == id(self)'>
- <parameter name='tagorid'/>
- <parameter name='new_value'/>
- <raise event="changed_entry" scope="narrow" target="'parent'">
- <parameter expr="self.name"/>
- <parameter expr="new_value"/>
- </raise>
- <script>
- print("Got entry change Tk event!")
- </script>
- </transition>
- <transition event="change_bg" target=".">
- <parameter name="colour"/>
- <script>
- self.entry.configure(bg=colour, disabledbackground=colour)
- </script>
- </transition>
- <transition event="change_event_name" target=".">
- <parameter name="new_name"/>
- <script>
- self.name = new_name
- </script>
- </transition>
- <transition event="change_value" target=".">
- <parameter name="new_value"/>
- <script>
- print("CHANGE VALUE IN ENTRY")
- self.strvar.set(new_value)
- </script>
- </transition>
- <transition event="disable" target=".">
- <script>
- self.entry.config(state=tk.DISABLED)
- </script>
- </transition>
- </state>
- </state>
- </scxml>
- </class>
|