|
@@ -24,6 +24,7 @@
|
|
|
self.associations_type = {}
|
|
self.associations_type = {}
|
|
|
self.associations_optional = {}
|
|
self.associations_optional = {}
|
|
|
self.associations_delete = {}
|
|
self.associations_delete = {}
|
|
|
|
|
+ self.dirty = None
|
|
|
</body>
|
|
</body>
|
|
|
</constructor>
|
|
</constructor>
|
|
|
|
|
|
|
@@ -99,8 +100,7 @@
|
|
|
<raise event="create_instance" scope="cd">
|
|
<raise event="create_instance" scope="cd">
|
|
|
<parameter expr="'names'"/>
|
|
<parameter expr="'names'"/>
|
|
|
<parameter expr="'Entry'"/>
|
|
<parameter expr="'Entry'"/>
|
|
|
- <parameter expr="self"/>
|
|
|
|
|
- <parameter expr="self.current_attr['name']"/>
|
|
|
|
|
|
|
+ <parameter expr="{'parent': self, 'name': self.current_attr['name'], 'value': self.current_attr['name']}"/>
|
|
|
</raise>
|
|
</raise>
|
|
|
</onentry>
|
|
</onentry>
|
|
|
|
|
|
|
@@ -282,7 +282,7 @@
|
|
|
</script>
|
|
</script>
|
|
|
</transition>
|
|
</transition>
|
|
|
|
|
|
|
|
- <transition event="change_dropdown" target="../change_type">
|
|
|
|
|
|
|
+ <transition event="changed_dropdown" target="../change_type">
|
|
|
<parameter name="event_name"/>
|
|
<parameter name="event_name"/>
|
|
|
<parameter name="new_name"/>
|
|
<parameter name="new_name"/>
|
|
|
<script>
|
|
<script>
|
|
@@ -290,13 +290,20 @@
|
|
|
</script>
|
|
</script>
|
|
|
</transition>
|
|
</transition>
|
|
|
|
|
|
|
|
- <transition event="change_entry" target="../change_name">
|
|
|
|
|
|
|
+ <transition event="changed_entry" target="../change_name">
|
|
|
<parameter name="original_name"/>
|
|
<parameter name="original_name"/>
|
|
|
<parameter name="new_name"/>
|
|
<parameter name="new_name"/>
|
|
|
<script>
|
|
<script>
|
|
|
self.parameter = (original_name, new_name)
|
|
self.parameter = (original_name, new_name)
|
|
|
</script>
|
|
</script>
|
|
|
</transition>
|
|
</transition>
|
|
|
|
|
+
|
|
|
|
|
+ <transition cond="self.dirty" target="../change_name">
|
|
|
|
|
+ <script>
|
|
|
|
|
+ self.parameter = self.dirty[1:3]
|
|
|
|
|
+ self.dirty = None
|
|
|
|
|
+ </script>
|
|
|
|
|
+ </transition>
|
|
|
</state>
|
|
</state>
|
|
|
|
|
|
|
|
<state id="change_type">
|
|
<state id="change_type">
|
|
@@ -312,34 +319,65 @@
|
|
|
|
|
|
|
|
<state id="change_name">
|
|
<state id="change_name">
|
|
|
<onentry>
|
|
<onentry>
|
|
|
- <raise event="mv_request" scope="broad">
|
|
|
|
|
- <parameter expr="'attr_name'"/>
|
|
|
|
|
- <parameter expr="[current_model, self.as_element, self.parameter[0], self.parameter[1]]"/>
|
|
|
|
|
- </raise>
|
|
|
|
|
|
|
+ <raise event="mark_uncommitted" scope="narrow" target="self.associations_name[self.parameter[0]]"/>
|
|
|
</onentry>
|
|
</onentry>
|
|
|
|
|
|
|
|
- <transition event="mv_response" target="../running">
|
|
|
|
|
- <raise event="change_event_name" scope="narrow" target="self.associations_type[self.parameter[0]]">
|
|
|
|
|
- <parameter expr="self.parameter[1]"/>
|
|
|
|
|
- </raise>
|
|
|
|
|
- <raise event="change_event_name" scope="narrow" target="self.associations_optional[self.parameter[0]]">
|
|
|
|
|
- <parameter expr="self.parameter[1]"/>
|
|
|
|
|
- </raise>
|
|
|
|
|
- <raise event="change_event_name" scope="narrow" target="self.associations_delete[self.parameter[0]]">
|
|
|
|
|
- <parameter expr="self.parameter[1]"/>
|
|
|
|
|
- </raise>
|
|
|
|
|
- <script>
|
|
|
|
|
- self.associations_name[self.parameter[1]] = self.associations_name[self.parameter[0]]
|
|
|
|
|
- self.associations_type[self.parameter[1]] = self.associations_type[self.parameter[0]]
|
|
|
|
|
- self.associations_optional[self.parameter[1]] = self.associations_optional[self.parameter[0]]
|
|
|
|
|
- self.associations_delete[self.parameter[1]] = self.associations_delete[self.parameter[0]]
|
|
|
|
|
-
|
|
|
|
|
- del self.associations_name[self.parameter[0]]
|
|
|
|
|
- del self.associations_type[self.parameter[0]]
|
|
|
|
|
- del self.associations_optional[self.parameter[0]]
|
|
|
|
|
- del self.associations_delete[self.parameter[0]]
|
|
|
|
|
- </script>
|
|
|
|
|
- </transition>
|
|
|
|
|
|
|
+ <state id="waiting">
|
|
|
|
|
+ <transition after="1.0" target="../commit"/>
|
|
|
|
|
+
|
|
|
|
|
+ <transition event="changed_entry" target=".">
|
|
|
|
|
+ <parameter name="original_name"/>
|
|
|
|
|
+ <parameter name="new_name"/>
|
|
|
|
|
+ <script>
|
|
|
|
|
+ self.parameter = (original_name, new_name)
|
|
|
|
|
+ </script>
|
|
|
|
|
+ </transition>
|
|
|
|
|
+ </state>
|
|
|
|
|
+
|
|
|
|
|
+ <state id="commit">
|
|
|
|
|
+ <onentry>
|
|
|
|
|
+ <raise event="mv_request" scope="broad">
|
|
|
|
|
+ <parameter expr="'attr_name'"/>
|
|
|
|
|
+ <parameter expr="[current_model, self.as_element, self.parameter[0], self.parameter[1]]"/>
|
|
|
|
|
+ </raise>
|
|
|
|
|
+ <raise event="change_event_name" scope="narrow" target="self.associations_name[self.parameter[0]]">
|
|
|
|
|
+ <parameter expr="self.parameter[1]"/>
|
|
|
|
|
+ </raise>
|
|
|
|
|
+ </onentry>
|
|
|
|
|
+
|
|
|
|
|
+ <transition event="changed_entry" target=".">
|
|
|
|
|
+ <parameter name="original_name"/>
|
|
|
|
|
+ <parameter name="new_name"/>
|
|
|
|
|
+ <script>
|
|
|
|
|
+ self.dirty = (True, original_name, new_name)
|
|
|
|
|
+ </script>
|
|
|
|
|
+ </transition>
|
|
|
|
|
+
|
|
|
|
|
+ <transition event="mv_response" target="../running">
|
|
|
|
|
+ <raise event="change_event_name" scope="narrow" target="self.associations_type[self.parameter[0]]">
|
|
|
|
|
+ <parameter expr="self.parameter[1]"/>
|
|
|
|
|
+ </raise>
|
|
|
|
|
+ <raise event="mark_committed" scope="narrow" target="self.associations_name[self.parameter[0]]"/>
|
|
|
|
|
+ <raise event="change_triggers" scope="narrow" target="self.associations_optional[self.parameter[0]]">
|
|
|
|
|
+ <parameter expr="'optional_%s' % self.parameter[1]"/>
|
|
|
|
|
+ <parameter expr="'mandatory_%s' % self.parameter[1]"/>
|
|
|
|
|
+ </raise>
|
|
|
|
|
+ <raise event="change_event_name" scope="narrow" target="self.associations_delete[self.parameter[0]]">
|
|
|
|
|
+ <parameter expr="self.parameter[1]"/>
|
|
|
|
|
+ </raise>
|
|
|
|
|
+ <script>
|
|
|
|
|
+ self.associations_name[self.parameter[1]] = self.associations_name[self.parameter[0]]
|
|
|
|
|
+ self.associations_type[self.parameter[1]] = self.associations_type[self.parameter[0]]
|
|
|
|
|
+ self.associations_optional[self.parameter[1]] = self.associations_optional[self.parameter[0]]
|
|
|
|
|
+ self.associations_delete[self.parameter[1]] = self.associations_delete[self.parameter[0]]
|
|
|
|
|
+
|
|
|
|
|
+ del self.associations_name[self.parameter[0]]
|
|
|
|
|
+ del self.associations_type[self.parameter[0]]
|
|
|
|
|
+ del self.associations_optional[self.parameter[0]]
|
|
|
|
|
+ del self.associations_delete[self.parameter[0]]
|
|
|
|
|
+ </script>
|
|
|
|
|
+ </transition>
|
|
|
|
|
+ </state>
|
|
|
</state>
|
|
</state>
|
|
|
|
|
|
|
|
<state id="create_new_entry">
|
|
<state id="create_new_entry">
|