Menu

#8 Archive completed actions to another mind map

0.8.0
pending
False
Feature
2024-05-26
2015-03-10
No

Main feature:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
Feature: 01 Archive completed actions
User story
----------
In order to prevent clutter in the GTD mind map because of completed actions
As a GTD Sync user
I want to be able to archive my completed actions
Moving completed actions from GTD to Archive mind map
-----------------------------------------------------
When archiving a completed action it moves from the GTD to the Archive mind
map. If it has any children they move as well.
In order to describe the mind maps before and after archiving in the
scenarios they use the following notation for node position. The children of
the root node are node1, node2 and so on. The children of node1 are node1.1,
node1.2 and so on. The children node1.1 are node1.1.1, node1.1.2 and so on.
In the same manner deeper levels of nodes can be defined.
Rules
-----
1. Archived action should have the same ancestors as the original action
2. Only ancestors not present in Archive are copied from the GTD mind map
3. Ancestors in the Archive mind map cannot have siblings of the same name
4. Same completed action with same ancestors should not exist in Archive
5. Node setting custom Done icon should not be archived
6. Only select a single node to archive it or it's descendants
Background:
Given my GTD mind map is "GTD.mm" with root node "GTD"
And my Archive mind map is "Archive.mm" with root node "Archive"
@ticket8 @0.8.0 @new_built
Scenario: S3.1.1 Archive single selected completed action
Given "GTD.mm" has completed action "Wash dishes" as node1
And "Archive.mm" has no nodes
When I archive node1 in "GTD.mm"
Then "GTD.mm" should have no nodes
And "Archive.mm" should have completed action "Wash dishes" as node1
And I should receive the following information:
"""
1 completed action is archived.
"""
@rule1 @ticket8 @0.8.0 @new_built
Scenario: S3.1.2 Archive completed actions in descendants of selected node
Given "GTD.mm" has the following nodes:
| position | type | text |
| node1 | regular | Household |
| node1.1 | project | Dinner |
| node1.1.1 | completed action | Shop |
| node1.1.2 | next action | Cook |
| node1.2 | project | Finances |
| node1.2.1 | next action | Pay bills |
| node1.2.2 | completed action | Make budget |
| node2 | regular | Study |
| node2.1 | project | Exam |
| node2.1.1 | completed action | Read book |
And "Archive.mm" has no nodes
When I archive node1 in "GTD.mm"
Then "GTD.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Household |
| node1.1 | project | Dinner |
| node1.1.1 | next action | Cook |
| node1.2 | project | Finances |
| node1.2.1 | next action | Pay bills |
| node2 | regular | Study |
| node2.1 | project | Exam |
| node2.1.1 | completed action | Read book |
And "Archive.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Household |
| node1.1 | project | Dinner |
| node1.1.1 | completed action | Shop |
| node1.2 | project | Finances |
| node1.2.1 | completed action | Make budget |
And I should receive the following information:
"""
2 completed actions are archived.
"""
@rule1 @ticket8 @0.8.0 @new_built
Scenario Outline: S3.1.3 Archive completed actions with descendants
Given "GTD.mm" has the following nodes:
| position | type | text |
| node1 | regular | Home improvement |
| node1.1 | project | RepairRoof |
| node1.1.1 | completed action | Buy materials |
| node1.1.1.1 | regular | Tiles |
| node1.1.1.2 | regular | Tools |
| node1.1.1.2.1 | regular | Ladder |
And "Archive.mm" has no nodes
When I archive <node> in "GTD.mm"
Then "GTD.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Home improvement |
| node1.1 | project | RepairRoof |
And "Archive.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Home improvement |
| node1.1 | project | RepairRoof |
| node1.1.1 | completed action | Buy materials |
| node1.1.1.1 | regular | Tiles |
| node1.1.1.2 | regular | Tools |
| node1.1.1.2.1 | regular | Ladder |
And I should receive the following information:
"""
1 completed action is archived.
"""
Examples:
| node |
| node1.1.1 |
| node1 |
@rule2 @ticket8 @0.8.0 @new_built
Scenario: S3.1.4 Archive completed actions with some ancestors in archive
Given "GTD.mm" has the following nodes:
| position | type | text |
| node1 | regular | Health |
| node1.1 | project | StartRunning |
| node1.1.1 | completed action | Buy shoes |
| node1.2 | regular | Diet |
| node1.2.1 | project | EatHealthier |
| node1.2.1.1 | regular | Knowledge |
| node1.2.1.1.1 | completed action | Read book |
And "Archive.mm" has the following nodes:
| position | type | text |
| node1 | regular | Health |
| node1.1 | regular | Diet |
| node1.1.1 | regular | EatHealthier |
| node1.1.1.1 | project | GetAdvice |
| node1.1.1.1.1 | completed action | See dietitian |
When I archive node1 in "GTD.mm"
Then "GTD.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Health |
| node1.1 | project | StartRunning |
| node1.2 | regular | Diet |
| node1.2.1 | project | EatHealthier |
| node1.2.1.1 | regular | Knowledge |
And "Archive.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Health |
| node1.1 | regular | Diet |
| node1.1.1 | regular | EatHealthier |
| node1.1.1.1 | project | GetAdvice |
| node1.1.1.1.1 | completed action | See dietitian |
| node1.1.2.1 | regular | Knowledge |
| node1.1.2.1.1 | completed action | Read book |
| node1.2 | project | StartRunning |
| node1.2.1 | completed action | Buy shoes |
And I should receive the following information:
"""
2 completed action are archived.
"""
@rule3 @ticket8 @0.8.0 @new_built
Scenario: S3.1.5 Archive completed action with duplicate ancestor in archive
Given "GTD.mm" has the following nodes:
| position | type | text |
| node1 | regular | Wedding |
| node1.1 | project | Guests |
| node1.1.1 | completed action | Make list |
| node1.1.2 | Completed action | Design card |
| node1.2 | project | Ceremony |
| node1.2.1 | completed action | Reserve venue |
And "Archive.mm" has the following nodes:
| position | type | text |
| node1 | regular | Wedding |
| node1.1 | regular | Guests |
| node1.2 | project | Guests |
When I archive node1 in "GTD.mm"
Then "GTD.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Wedding |
| node1.1 | project | Guests |
| node1.1.1 | completed action | Make list |
| node1.1.2 | Completed action | Design card |
| node1.2 | project | Ceremony |
And "Archive.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Wedding |
| node1.1 | regular | Guests |
| node1.2 | project | Guests |
| node1.3 | project | Ceremony |
| node1.3.1 | completed action | Reserve venue |
And I should receive the following error:
"""
1 completed action is archived.
2 completed actions could not be archived.
This concerns the following completed actions:
"Make list" was not archived because the node with the following name and position exists more than once in the archive mind map: Archive/Wedding/Guests
"Design card" was not archived because the node with the following name and position exists more than once in the archive mind map: Archive/Wedding/Guests
"""
@rule4 @ticket8 @0.8.0 @new_built
Scenario: S3.1.6 Archive completed action that already exists in archive
Given "GTD.mm" has the following nodes:
| position | type | text |
| node1 | regular | Theatre group |
| node1.1 | project | StagePerformance |
| node1.1.1 | completed action | Find director |
| node1.2 | project | Publicity |
| node1.2.1 | completed action | Design poster |
And "Archive.mm" has the following nodes:
| position | type | text |
| node1 | regular | Theatre group |
| node1.1 | regular | StagePerformance |
| node1.1.1 | regular | Find director |
When I archive node1 in "GTD.mm"
Then "GTD.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Theatre group |
| node1.1 | project | StagePerformance |
| node1.1.1 | completed action | Find director |
| node1.2 | project | Publicity |
And "Archive.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Theatre group |
| node1.1 | regular | StagePerformance |
| node1.1.1 | regular | Find director |
| node1.2 | project | Publicity |
| node1.2.1 | completed action | Design poster |
And I should receive the following error:
"""
1 completed action is archived.
1 completed action could not be archived.
This concerns the following completed action:
"Find director" was not archived because one or more nodes with the same name and position have been archived already: Archive/Theatre group/StagePerformance/Find director
"""
@rule5 @ticket8 @0.8.0 @new_built
Scenario: S3.1.7 Archiving a GTD mind map with custom Done icon
Given "GTD.mm" has the following nodes:
| position | type | text |
| node1 | regular | Settings |
| node1.1 | completed action | Icon: Done |
| node2 | regular | Garden |
| node2.2 | project | Gazebo |
| node2.2.1 | completed action | Buy wood |
And "Archive.mm" has no nodes
When I archive the root node in "GTD.mm"
Then "GTD.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Settings |
| node1.1 | completed action | Icon: Done |
| node2 | regular | Garden |
| node2.2 | project | Gazebo |
And "Archive.mm" should have the following nodes:
| position | type | text |
| node1 | regular | Garden |
| node1.2 | project | Gazebo |
| node1.2.1 | completed action | Buy wood |
And I should receive the following information:
"""
1 completed action is archived.
"""
@rule6 @ticket8 @0.8.0 @new_built
Scenario: S3.1.8 Selecting multiple nodes when archiving
Given "GTD.mm" has the following nodes:
| position | type | text |
| node1 | regular | Software development |
| node1.1 | project | Tools |
| node1.1.1 | completed action | Choose IDE |
| node1.2 | project | Knowledge |
| node1.2.1 | completed action | Follow Java course |
And "Archive.mm" has no nodes
When I archive node1.1, the root node and node1.2.1 in "GTD.mm"
Then I should receive the following warning:
"""
You have selected multiple nodes. The Archive function only accepts a single selected node. It will now process the node 'Tools' and its descendants, if any. Would you like to continue?
"""

For a complete overview of Archive features see: https://sourceforge.net/p/gtdsync/features/ci/master/tree/features/03_Archive/.

Related

Discussion: Feature Request: Move completed tasks to a archive/reference branch or a mind map file
Discussion: Feature Request: Move completed tasks to a archive/reference branch or a mind map file
Tickets: #22
Tickets: #44
Tickets: #8

Discussion

  • Henk van den Akker

    • status: open --> pending
    • Milestone: none --> 0.7.4
     
  • Henk van den Akker

    • status: pending --> in-progress
     
  • Henk van den Akker

    • Milestone: 0.7.4 --> 0.7.6
     
  • Henk van den Akker

    • Milestone: 0.7.6 --> 0.7.7
     
  • Henk van den Akker

    Global steps
    1. Check script provided by Evereasy - done
    2. Write user story and scenarios - done
    3. Create and complete Archive script without file selection (1st iteration) - done
    4. Test scenarios for 1st iteration - done
    5. Release preview for 1st iteration (see task [#22]) - done
    6. Write/complete scenarios for user stories [#16] and [#28] in order to asses overlap with user story [#8] - done
    7. Complete archive script (2nd iteration) - in progress
    8. Release user story [#8] as part of v0.7.7
     

    Related

    Tickets: #16
    Tickets: #22
    Tickets: #28
    Tickets: #8


    Last edit: Henk van den Akker 2017-10-14
  • Henk van den Akker

    JFileChooser customisation and translation
    Problem

    For user stories [#8], [#16] and [#28] a customised JFileChooser dialog is used for creating and selecting files and directories. Part of the text labels are adapted and they also need to be translated (the resource bundles with Java Swing are limited to a few languages). Freeplane seems to use the SystemLookAndFeel most of the time. Because of this the outcome of the customisation can be quite unpredictable, since the SystemLookAndFeel differs a lot over platforms. E.g. the GTK+ L&F has a Rename button unlike any other SystemLookAndFeel.

    Solution

    Limit the number of L&Fs as follows:

    • Under Windows use the SystemLookAndFeel (Windows)
    • Under other platforms use the CrossPlatformLookAndFeel (Metal).

    Text label strings in the JFileChooser UI are customised and translated with UIManager.put(key, "New text string")

    After the JFileChooser has been created the L&F and the text label strings are reverted to their original value.

    Steps
    1. Collect all keys and values of relevant text labels for Windows, Nimbus and Metal L&F for JFileChooser - Done
    2. Add the customisations and translations for the keys to the translation files for user story [#8] and analyse for which keys user stories [#16] and [#28] will need a different customised strings - Done
    3. Extend the FileLocation class to cycle through the relevant keys assigning new strings to display in JFileChooser and to restore them aftewards. (Use a list of groovy maps) - Done
    4. Test the JFileChooser dialogue. - Done
     

    Related

    Tickets: #16
    Tickets: #28
    Tickets: #8


    Last edit: Henk van den Akker 2017-11-10
  • Henk van den Akker

    Next action
    • Finalise development of remaining scenarios.
    Done
    • Research whether UIManager changes to jFileChooser text persists in Freeplane, also after reloading the Look and Feel
    • Re-read discussion with Everyeasy and put his script under notes
    • Check if all keys and values from the com.sun.java.swing.plaf resource bundles have been added to the list.
    • Set up a Mac OS X VM for testing.
    • Determine what the different configurations are for the JFileChooser dialogue for user stories [#8], [#16] and [#28].
    • Set-up a loop with dynamic variables to change and restore text strings in JFileChooser.
    • Test if a map can be used to dynamically load customisations and translations and backup and restore UIManager properties
    • Enter keys and translations for the Filechooser UIManager keys to be customised and translated.
    • Try out all current checks of ValidatedFileChooser
    • Study extension of classes and conversion of java to groovy.
    • Adapt and translate ValidatedFileChooser
    • Test ValidatedFileChooser
    • Add scenario "GTD mind map has never been saved" to user stories [#8], [#16] and [#28].
     

    Related

    Tickets: #16
    Tickets: #28
    Tickets: #8


    Last edit: Henk van den Akker 2018-12-22
  • Henk van den Akker

    • labels: --> archive
     
  • Henk van den Akker

    • Milestone: 0.7.7 --> 0.8.0
     
  • Henk van den Akker

    • status: in-progress --> complete
     
  • Henk van den Akker

    • Closed date: --> 2021-09-30 17:20:35.970000
     
  • Henk van den Akker

    • Closed: --> True
     
  • Henk van den Akker

    • status: complete --> pending
    • Closed: True --> False
     

Log in to post a comment.