[[BackLinksMenu]] [[TicketQuery(summary=BOOK_DESKTOP_R0, 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|)]] = Analysis = == Overview == The book desktop is an improvement of the workspace introduced in Sophie1. It is a work background but with the features of a book. * Desktop covers the whole work area and can be overlapped by flaps. * Desktop has its own resources which can be used in other books * Resources can be dragged from and to books desktop * Minimize all books shows the book desktop * Probably timelines won't be needed in the book desktop * Scrolling behavior will remain the same as in the other books - scrollbars where needed * The Desktop book doesn't have it's own book window - it uses application window as a book desktop. == Task requirements == * Create the book desktop concept * Document where it will be stored, how to be reset, etc * Implement the Book Desktop * A book that covers all of the workspace - The book window of the desktop should be with dynamic size and centered to the workspace. * Probably autosaving on change should be present * Scrollbar behavior - scrollbars are present if there is an element outside desktop window bounds. == Task result == The result of this task is code. == Implementation idea == * Create a book with changeable size * The book must be with enabled autosaving * Document where is it stored, etc. == Related == [wiki:SCENE_COMMONS_R0] == How to demo == * Open Sophie2 * Drag an empty frame to the Book Desktop * Edit the frame * Close Sophie2 * Open Sophie2 to demonstrate that the changes are applied to the book. = Design = [[Image(source:/trunk/sophie2-platform/doc/spec-diagrams/BooksDesktop.png)]] * Overview * The book desktop is the component that is behind all books that are open. * The book desktop is a book with one page. * The book desktop is the book that is current when all of the open books are not current. * When it is clicked on the desktop, then the desktop becomes current. * When the user inserts a frame, the frame appears on the current book. * When the current book is the desktop, then all frames that are inserted appear on the desktop. * The design * !DocumentView - Base class for desktop book view and book windows. * !DocumentWindow - Interface for document windows. !DocumentWindow is a component that represent an open book (different from desktop book). * !DefaultDocumentWindow - Base !DocumentWindow implementation. * !BookWindow - Contains common properties to !BookDocumentWindow and !BookDesktopWindow. * !BookDocumentWindow - The main implementation of the !DocumentWindow. * !BookDesktopWindow - The component that represents the desktop book. * A property desktopBook() in App class that represents the model of the book. * A property desktopView() in !AppDocumentsDesktop. * Change !DesktopPane class - from inheritance to composition of JDesktopPane. = Implementation = [changeset:1796] = Testing = = Comments = ^(Write comments for this or later revisions here.)