wiki:ANNOTATIONS_EXPORT_IMPORT_R1

Version 2 (modified by mitex, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=ANNOTATIONS_EXPORT_IMPORT_R1, 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|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

Overview

The goal of this task is to provide persistence of stickies.

Task requirements

  • The user should be able to persist annotation sets.
  • Annotation sets are resources which can contain stickies, highlights and audio annotations. Currently only stickies are implemented.
  • Annotation sets should be persisted in zip files, just like Sophie books are saved (which are resources too).
  • "All annotations" palette should contain the following buttons:
    • Import Annotations...
      • When clicked, a file dialog for zip files is opened.
      • If the file is not a valid annotation set, an error message is displayed ("Invalid file.").
      • The annotation set is loaded in current book's window (not added in the book).
      • The annotation set is set as current for current book.
    • Export Annotations...
      • When clicked, a file dialog for zip files is opened.
      • If a file name is selected, current annotation set for current book is stored in the selected file.
      • If an error occurs, for example user wants to save on read-only media, an error message is displayed.

Task result

  • Source code.

Implementation idea

  • Create a FileDialogInput for zip files and use the DialogManager to display the dialog.
  • Create a persister between AnnotationSet and Storage.
  • Use ZipPackagePersister to persist between Storage and zip files.

GROUP_ANNOTATIONS_R0

How to demo

(Provide instructions for demonstration of the task.)

Design

(Describe your design here.)

Implementation

(Describe and link the implementation results here (from the wiki or the repository).)

Testing

(Place the testing results here.)

Comments

(Write comments for this or later revisions here.)