| 1 | [[BackLinksMenu]] |
| 2 | |
| 3 | [[TicketQuery(summary=TASK_NAME_HERE, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] |
| 4 | |
| 5 | = Analysis = |
| 6 | |
| 7 | == Overview == |
| 8 | The goal of this task is to provide persistence of stickies. |
| 9 | |
| 10 | == Task requirements == |
| 11 | * The user should be able to persist annotation sets. |
| 12 | |
| 13 | * Annotation sets are resources which can contain stickies, highlights and audio annotations. Currently only stickies are implemented. |
| 14 | |
| 15 | * Annotation sets should be persisted in zip files, just like Sophie books are saved (which are resources too). |
| 16 | |
| 17 | * "All annotations" palette should contain the following buttons: |
| 18 | * Import Annotations... |
| 19 | * When clicked, a file dialog for zip files is opened. |
| 20 | * If the file is not a valid annotation set, an error message is displayed ("Invalid file."). |
| 21 | * The annotation set is loaded in current book's window (not added in the book). |
| 22 | * The annotation set is set as current for current book. |
| 23 | * Export Annotations... |
| 24 | * When clicked, a file dialog for zip files is opened. |
| 25 | * If a file name is selected, current annotation set for current book is stored in the selected file. |
| 26 | * If an error occurs, for example user wants to save on read-only media, an error message is displayed. |
| 27 | |
| 28 | == Task result == |
| 29 | * Source code. |
| 30 | |
| 31 | == Implementation idea == |
| 32 | * Create a {{{FileDialogInput}}} for zip files and use the {{{DialogManager}}} to display the dialog. |
| 33 | |
| 34 | * Create a persister between {{{AnnotationSet}}} and {{{Storage}}}. |
| 35 | * Use {{{ZipPackagePersister}}} to persist between {{{Storage}}} and zip files. |
| 36 | |
| 37 | == Related == |
| 38 | [wiki:GROUP_ANNOTATIONS_R0] |
| 39 | |
| 40 | == How to demo == |
| 41 | ^(Provide instructions for demonstration of the task.)^ |
| 42 | |
| 43 | = Design = |
| 44 | ^(Describe your design here.)^ |
| 45 | |
| 46 | = Implementation = |
| 47 | ^(Describe and link the implementation results here (from the wiki or the repository).)^ |
| 48 | |
| 49 | = Testing = |
| 50 | ^(Place the testing results here.)^ |
| 51 | |
| 52 | = Comments = |
| 53 | ^(Write comments for this or later revisions here.) |