Analysis
Overview
Book windows are responsible for displaying books, and book controls. They reside into the main application window. Each book window has it's own tab in the Opened Books Tabbar.
Task requirements
- Book window behavior.
- Each BookWindow is responsible for displaying a single book.
- At the time of creation of a window it is bound to a book.
- It is then responsible for displaying the current page of the book.
- This is done through the extension connected to the PageArea extension point (if such is present).
- Define extension points for:
- BookBottomPanelElement - an element controlling single aspect of the view
- Create an OpenOffice diagram to show the base view of book window
Task result
The result of this task should be source code and an OpenOffice diagram.
Implementation idea
- Revise the exiting BookView code
- Extend SophieExtensionPoint class for the extension points
Related
BOOK_WINDOW_R0
BOOK_BOTTOM_PANEL_R0
PAGE_SELECTOR_R0
How to demo
- Run Sophie2 and show the window.
Design
This is the implemented wiki page: BOOK_WINDOW The BookView contains a BookPanel. Every element of the BookPanel should be defined as an extension of the panel. These include:
- NavigationPanel - contains the previous button, next button and the page number area.
- QuickSearchPanel - contains the search text field, next and previous buttons for next and previous search-matches.
- ShowFrameCheckBoxPanel - contains the 'show frame borders checkbox'.
- ReaderModeCheckBoxPanel - contains the 'reader mode checkbox'.
The SophieExtensions that give the panel its elements are as follows:
- new SimpleSophieExtension<PanelElementProvider>(PanelElementProvider.class, new NavigationProvider()),
- new SimpleSophieExtension<PanelElementProvider>(PanelElementProvider.class, new QuickSearchProvider()),
- new SimpleSophieExtension<PanelElementProvider>(PanelElementProvider.class, new ReaderModeProvider()),
- new SimpleSophieExtension<PanelElementProvider>(PanelElementProvider.class, new ShowFramesProvider())
Provided these extensions and the corresponding SophieExtensionPoint<PanelElementProvider> the BookPanel creates the four sub-panels from the PanelElementProvider. The panels are then added to a ListPropety and after that the property is iterated and its elements added to the swing component of the BookPanel.
Note: The things described are still in the messy module. They should be extracted in different module.
Implementation
- done according to design. => book package
Testing
User documentation
ITERATION_04/Release/UserDocumentation/02_WorkingWithSophie/07_BookWindows
Release documentation
(when you make a new book the book has a window.)
Manual tests
17
Main tests
Related tests
Testlink test ids: (none so far)
Reported bugs
Give links to the tickets of the bugs found during testing
Log
Analyzing: Pap - done(20m)
Reivew: Peko - 3.5 - 15mins not sure whether the BookWindow should provide an extension itself, so that it is connected to the BooksDesktop
Design: Peko - done 1h
Reivew: 3 by Pap. I think taht the BOOK_WINDOW page is not correct (the UML diagram - nothing is mentioned about the bottom panel).
Implementation: Peko - done 5h
Testing:
Comments: