wiki:UNPLANNED_PALETTES_REFACTORING_R0
Last modified 11 years ago Last modified on 09/24/09 12:00:09

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

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

Analysis

Overview

This task is oriented towards fixing, tuning and refining the palettes that we are using now. The goal is to refactor the following palettes from their respective tabs:

  • Left flap
    • Books tab
      • Opened books palette
      • Embedded books palette
      • Page preview palette
  • Right flap
    • Resources tab
      • Resources palette
      • Detail view palette
    • Changes tab
      • Changes palette
    • Book extras tab
      • All annotations palette
      • Book extras palette
      • Stickies palette

Task requirements

  • Fix the following tickets
    • #1976 - Crash: Right mouse button click on a selected page thumbnail crashes
    • #1978 - Book desktop contents are not shown in the resources palette
  • Fix the bugs related to the page preview palette.
    • The page thumbnails should be scalable
    • There must be a visual marker for the current page and border of the thumbnails.
    • Now some of the pages are pink instead of white, this is bug
    • The page preview doesn't refresh synchronous with the editing of the page.
  • Make the palettes more usable.
    • There must be no exceptions thrown when clicking on any button in any palette.
    • Remove the unnecessary buttons from some palettes and unnecessary palettes (see the implementation idea).
  • Open books palette:
    • It should display list of the open books, the user should be able to change the book on focus by choosing book title from there (this is working now).
    • When a book is selected (by clicking on the book window or selecting it from window menu, or clicking on its title in the tab bar) its name should be highlighted in the Opened books palette.
  • Resources palette:
    • There must be different filters in the palette in order to show only one type of resources.
    • (optional) A search bar for finding specific resources by name will be useful when editing bigger books with more resources.
  • [OPTIONAL] Rename the book extra tab to Annotations in order to be more clear for the user
    • This tab will include two palettes 'Sets' and 'Elements'
      • Sets palette include list of annotation sets, and the functionality related to that - remove, add, import, export sets, and also show/hide functionality
      • Elements palette should include list of elements (stickies, highlights, audio notes etc.)
        • Add/Remove functionality - there should be buttons for all types of annotations elements and one for remove, dragging a button to the stage automatically creates new element
        • Selecting element from the list - navigates to it (change the page for example)
        • Selecting element from the stage - highlights it inside the palette
        • It might be useful to have filters available for this list, but lets not rush with this and discus it first

Task result

The resource of this task must be a source code. Resulting in improvements of the palettes functionality.

Implementation idea

The task requirements give some implementation ideas however,

  • It is good to have a discussion with the people doing Sophie look and feel.
  • It is recommended to think of shorter and more user friendly names for some of the palettes and buttons.
  • Proper behavior for some of the palettes:
    • Open books palette:
      • It should display list of the open books, the user should be able to change the book on focus by choosing book title from there (this is working now).
      • When a book is selected (by clicking on the book window or selecting it from window menu, or clicking on its title in the tab bar) its name should be highlighted in the Opened books palette.
      • When a book is dragged from books palette to the current book it should be embedded (this is probably part of the drag and drop tasks).
    • Embedded books palette:
      • It should display list of all embedded books in the current book (it should be empty in case that there is no book on focus).
      • There should be visual indicator whether the embedded book is linked book or it is copied in the resources of the user's book. When a linked embedded book is double clicked it pop up window that asks the user whether he/she wants to download and load the book should appear.
      • When the user clicks on the name of copied embedded book, the frame where the book is embedded should be displayed and on focus.
      • When the user double clicks on the name of embedded book it should be opened for editing.
    • Page preview palette:
      • Page preview palette should display thumbnails of the book pages (for now there are lots of bugs there #1995).
      • There should be a border of the page thumbnail. This is because now when the page background is white the user don't see how big is his page.
      • The thumbnails should be scalable. When the palette is resized the page thumbnails should be resized too.
      • There should be a visual marker for the current page (maybe a shade or outline).
      • When the user clicks on page thumbnail it must be displayed (this is working now).
      • The user should have the ability to rearrange pages by dragging pages in the page preview palette up and down.
      • The Add Page Before and Add Page After Button should be with equal sizes (probably it is good idea to change their name to something shorter).
    • Resources palette:
      • There must be different filters in the palette in order to show only one type of resources.
        • Now there are three buttons PDF, Script and Image in the default skin that don't look like buttons.
      • (optional) A search bar for finding specific resources by name will be useful when editing bigger books with more resources.
    • Detail view palette:
      • It must contain preview of the selected resource
      • It must contain meta information for the resource
      • The Copy button is obsolete
    • Changes palette:
      • There must be a field in which the user enters the number of the changes that are shown in the palette and confirmation button.

How to demo

Show the new palettes and their improved looks and capabilities (e.g. switch books using open books palette, rearrange some pages using page preview palette).

Design

  • RightFlap
    • ResourcesTab
      • AllResourcesPalette
        • AllResourcesPalette should show resources of the desktopBook when desktopBook is the current book. currentDocument() property of AllResourcesPalette should be changed to return the desktopBook when it is current.
        • Filtering button for HotText is added using the mechanism for adding filtering buttons.
        • Copy button from DetailsView palette will be removed.
        • Palette with meta information about resources should be available. - fixing metaPanel() to get the meta information using the new model.
    • AllChangesPalette - adding a new variable in UpdateChangesListTask to keep the last current book. If the last current book has changed, the list() repaints. When the current book changed the AllChangedPalette show the changes of the current book.
  • LeftFlap
    • BooksTab
      • OpenBooksPalette - Add property syncSelected which to synchronize the selected book and the selected item from the OpenBooksPalette. When the desktopBook is selected no of the items should be selected. Fix the AppTabBar to show when the desktopBook is selected. Add setUpSelected method to showDesktopButton() property of AppTabBar.
      • EmbeddedBooksPalette - it will be done on the next revision of the task because of the missing EmbeddedBooks functionality.
    • PagePreviewPalette - syncSelected property added to synchronise the current page and to set the border of the thumbnail to be gray or black depending on if the page is current or not. (black for current, gray otherwise). The list() of the PagePreviewPalette will be repainted in updateSwing method of AllChangesPalette because it should be updated when changes are available.

Implementation

[6594] [6627] [6657] [6665] [6667] [6670] [6716] 1978

  • The page thumbnails should be scalable will be done in [1995]

Merged to the trunk at [6690].

Testing

(Place the testing results here.)

Comments

(Write comments for this or later revisions here.)