Analysis
Overview
The main goal of these tasks is to create new reader edition which will contain the needed modules for launching Sophie 2.0 reader application. Sophie Reader is used to read books that have been published in Sophie. It looks and functions like Sophie Author Mode with most of the authoring tools removed.
Task requirements
- Design the look and feel of sophie reader using parts of the specification(not all is correct). Some of the defined things are:
- There is only open book functionality without opportunity to save a book.
- No resources, timelines, config and styles tabs are available.
- No insert menu and edit-set things will be shown.
- No halos and huds.
- No outline frames option.
- Frame borders are turned off.
- Decide if undo/redo should be available.
- Think about View menu where the user can hide and show some sophie parts(status bar, book desktop, etc).
- Annotations and comments frames must be available.
- Selecting objects and copying them to the clipboard is allowed.
- The about dialog should be different from the author(and help when it is created).
- Design new separation of the modules - they should be restructured to functional modules(all the main.* modules). This is also part of the GROUP_PLUGIN_STRUCTURE_R0 group of tasks so you should implement them separately.
- Create new module org.sophie2.reader with reader.bundles.config file with all needed reader modules.
- There should be FakeReaderMain and TrueReaderMain launch configurations.
Task result
new modules and source code
Implementation idea
- See what is done on PREVIEW_MODE_R0.
- Think how to separate the extra modules - may be two modules for the author and reader edition - pdf and pdf editor for example.
- Use again PageWorkArea but the readerArea() auto property.
Related
PREVIEW_MODE_R0
READER_PAGE_WORK_AREA_R0
GROUP_PLUGIN_STRUCTURE_R0
BOOK_DESKTOP_R0
How to demo
Show reader edition running.
Design
For the implementation first separation of the modules has to be created and it includes the following things:
- main.app.commons module with commons application things - think as there is no application without them.
- main.app.reader - ReaderBookDocumentWindow, ReaderBookDesktopWindow, ReaderAppDocumentsDesktop classes have to be in this module.
- It must have ReaderModule class which will register all of the extension/extension points needed for showing the functionality of the requirements(in the analysis section).
- When separating the classes parts of the BookLogic(userActs method) have to be implemented with the new LogicR3. There has to be three events for closing, selecting and deselecting the book window. UserWindowAction can be used as events that has to be handled.
- org.sophie2.reader - it must contain FakeReaderMain class which will start ReaderModule instead of MainAppModule. Do not forget to add the bundle activator in pom.xml file.
- reader fake and true launch configuration - it is the same as author but using org.sophie2.reader module as attribute.
- reader.bundles.config file with the modules needed for running the reader. It has to be located in src/main/resources as it is in the author module.
The design is simple for now - the main idea of this revision is to run(fake and true running) sophie reader edition independently. The following steps has to be done:
- ReaderBookDocumentWindow/ReaderBookDocumentWindow will extend the corresponding windows that are already implemented but with overritten methods for preview mode, outline frames and outline connections. When app.author module is implemented there will be AuthorDocumentwindow which will extend BookDocumentWindow so that the BookDocumentWindow will be base class for the author and reader.
- ReaderAppDocumentsWindow has to be created so the created window will be reader one not author.
- If there is time left make different about dialog for the reader with information about this edition(i.e. not writing and reading books but only reading).
- When registering extensions in the reader do not add preview mode and outline frames panels. Use AutoVisualProvider where possible instead of SimpleVisualProvider
About the things not cleared up in the task requirements:
- Undo/redo functionality should be available(when it is implemented)
- View menu can be implemented in the next revisions but for now there is no need for this.
- If there is time main.app.author can be created - it will have the same structure as the reader module but with Author prefix before the classes.
Tests:2471,2479,2481,2482,2483,2484,2485,2488,2489,2490,2492,2494,2495, merged to the trunk in 2520
Implementation
Reader edition is created - it has the needed launch configurations. The changests are all of the upper ones plus 2500, 2502, 2504, 2634 ,[2689]
For the other revision:
- when about dialog is refactored reader about dialog should be created.
- There is exception while running the true reader launcher about MainHaloMenu. This doesn't broke anything, just MainHaloMenu is not found because it is referred from some place but this module is not switched on in the reader edition.
Merged into the trunk at [2752].
Testing
(Place the testing results here.)
Comments
(Write comments for this or later revisions here.)