create changelog entry
[debian/openrocket] / core / doc / undo-redo-flow.uxf
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?><umlet_diagram><help_text>// Uncomment the following line to change the fontsize:
2 // fontsize=14
3
4
5 //////////////////////////////////////////////////////////////////////////////////////////////
6 // Welcome to UMLet!
7 //
8 // Double-click on UML elements to add them to the diagram, or to copy them
9 // Edit elements by modifying the text in this panel
10 // Hold Ctrl to select multiple elements
11 // Use Ctrl+mouse to select via lasso
12 //
13 // Use ± or Ctrl+mouse wheel to zoom
14 // Drag a whole relation at its central square icon
15 //
16 // Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
17 // Edit the files in the "palettes" directory to create your own element palettes
18 //
19 // Select "Custom Elements &gt; New..." to create new element types
20 //////////////////////////////////////////////////////////////////////////////////////////////
21
22
23 // This text will be stored with each diagram;  use it for notes.</help_text><zoom_level>10</zoom_level><element><type>com.umlet.element.custom.State</type><coordinates><x>670</x><y>540</y><w>280</w><h>140</h></coordinates><panel_attributes>Clean, at end of history
24 --
25 undoHistory.size = n
26 undoPosition = n-1
27 clean
28 -.
29 redo() not available</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.custom.InitialState</type><coordinates><x>340</x><y>140</y><w>20</w><h>20</h></coordinates><panel_attributes/><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>320</x><y>120</y><w>50</w><h>160</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>30;140;30;30</additional_attributes></element><element><type>com.umlet.element.custom.State</type><coordinates><x>200</x><y>540</y><w>280</w><h>140</h></coordinates><panel_attributes>Dirty, at end of history
30 --
31 undoHistory.size = n
32 undoPosition = n-1
33 dirty
34 -.
35 redo() not available</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>230</x><y>370</y><w>214</w><h>190</h></coordinates><panel_attributes>lt=&lt;-
36 Modify rocket:
37 nextDescription stored
38 in undoDescription</panel_attributes><additional_attributes>110;170;110;30</additional_attributes></element><element><type>com.umlet.element.custom.State</type><coordinates><x>200</x><y>260</y><w>280</w><h>140</h></coordinates><panel_attributes>Clean, no history
39 --
40 undoHistory.size = 1
41 undoPosition = 0
42 clean
43 -.
44 undo(), redo() not available</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>60</x><y>350</y><w>210</w><h>124</h></coordinates><panel_attributes>lt=&lt;-
45 addUndoPosition:
46 nextDescription set</panel_attributes><additional_attributes>140;30;100;30;100;80;190;80;190;50</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>450</x><y>560</y><w>240</w><h>146</h></coordinates><panel_attributes>lt=&lt;-
47 addUndoPosition():
48 rocket copied to
49 end of history,
50 nextDescription set,
51 undoPosition increased</panel_attributes><additional_attributes>220;50;30;50</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>310</x><y>410</y><w>510</w><h>150</h></coordinates><panel_attributes>lt=&lt;-
52 </panel_attributes><additional_attributes>30;130;30;30;490;30;490;130</additional_attributes></element><element><type>com.umlet.element.custom.State</type><coordinates><x>190</x><y>850</y><w>280</w><h>140</h></coordinates><panel_attributes>Clean, at midpoint of history
53 --
54 undoHistory.size = n
55 undoPosition = m &lt; n-1
56 clean
57 -.
58 </panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>190</x><y>650</y><w>282</w><h>220</h></coordinates><panel_attributes>lt=&lt;-
59 undo():
60 rocket copied to end of history,
61 rocket loaded from undoPosition
62 </panel_attributes><additional_attributes>150;200;150;30</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>0</x><y>590</y><w>238</w><h>350</h></coordinates><panel_attributes>lt=&lt;-
63 Modify rocket:
64 redo information removed,
65 nextDescription stored
66 in undoDescription</panel_attributes><additional_attributes>200;30;120;30;120;330;190;330</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>0</x><y>940</y><w>286</w><h>190</h></coordinates><panel_attributes>lt=&lt;-
67 undo():
68 undoPosition decreased,
69 Rocket loaded from undoPosition
70 -
71 addUndoPosition():
72 nextDescription set</panel_attributes><additional_attributes>190;30;150;30;150;80;240;80;240;50</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>390</x><y>910</y><w>282</w><h>178</h></coordinates><panel_attributes>lt=&lt;-
73 redo():
74 undoPosition increased,
75 rocket loaded from undoPosition</panel_attributes><additional_attributes>30;80;30;120;150;120;150;30;80;30</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>510</x><y>650</y><w>412</w><h>348</h></coordinates><panel_attributes>lt=&lt;-
76 redo():
77 undoPosition increased to n-1,
78 rocket loaded from undoPosition</panel_attributes><additional_attributes>280;30;280;290;30;290</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>440</x><y>650</y><w>422</w><h>288</h></coordinates><panel_attributes>lt=&lt;-
79 undo():
80 undoPosition decreased,
81 rocket loaded from undoPosition</panel_attributes><additional_attributes>30;230;290;230;290;30</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>70</x><y>450</y><w>200</w><h>160</h></coordinates><panel_attributes>lt=&lt;-
82 Modify rocket
83 </panel_attributes><additional_attributes>180;90;180;50;80;50;80;140;130;140</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>860</x><y>460</y><w>216</w><h>160</h></coordinates><panel_attributes>lt=&lt;-
84 addUndoPosition()</panel_attributes><additional_attributes>30;80;30;50;130;50;130;140;90;140</additional_attributes></element><element><type>com.umlet.element.custom.State</type><coordinates><x>540</x><y>50</y><w>400</w><h>350</h></coordinates><panel_attributes>Variable description
85 --
86 undoHistory: a list of the undo positions.  Each position
87 is a full copy of the rocket structure. Always contains at 
88 least one entry.
89 -.
90 undoPosition: current location within the undoHistory.
91 If at the last entry, the rocket can be "clean" (in the
92 state of undoHistory.get(undoPosition)) or "dirty" (in 
93 a modified state). 
94 -.
95 undoDescription:  the value at undoDescription.get(
96 undoPosition) describes the action that would be
97 undone if undo() was called at that moment.  The value
98 at undoDescription.get(undoPosition+1) describes the
99 action that would be redone if redo() were be called.
100 -.
101 nextDescription: the description of the actions that
102 will be done next (or are already being done).
103 -.
104 storedDescription: temporary storage for
105 nextDescription during a startUndo() ... stopUndo()
106 action.
107 fg=blue</panel_attributes><additional_attributes/></element></umlet_diagram>