wiki:GROUP_GUI_REDESIGN_R0
Last modified 16 years ago Last modified on 07/27/09 15:33:41

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

Error: Macro TicketQuery(summary=GROUP_GUI_REDESIGN_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

The goal is to come up with an overview of the design of the UI in Sophie2 and its refactoring.

Task requirements

  • Define the parts of the UI that need to be refactored.
  • Create wiki content with the problem areas of the UI parts.
  • Provide dependency relations between parts, so that they are refactored in proper order.
  • Link the tickets that will contain the actual refactoring.

Task result

  • wiki content

Implementation idea

  • Review source code.
  • Discuss with other team members known problem areas.

How to demo

  • Explain what are the things to be refactored and the dependencies between them.

Design

  • Parts of the UI are listed bellow:
    • Layout
    • Halos
      • Menus
      • Buttons
      • Huds
    • Bound controls
    • Dialogs
    • Menus
    • Skins
    • Skin manager
    • BookView hierarchy
    • Non-categorized - things that are connected with more than one part of the UI.
  • The wiki content with problems about the UI will be in the implementation.
  • Dependency relations between parts:
    • First will refactor:
      • base bound controls
      • layout - mydoggy and base.layout modules.
      • Logics (see implementation).
    • Second:
      • Skins and Skin manager.
      • BookView hierarchy
      • Menus
      • Non-categorized
      • Halos
      • Dialogs

Implementation

  • The code for every part of the UI should be reviewed.
    • Some parts may appear to be OK.
    • Other parts may need a redesign in order to meet the requirements.
    • UI should become consistent with the new resources, changes and templates (see GROUP_RESOURCE_MODEL_REDESIGN_R0, HOT_TEXT_REDESIGN_R0, GROUP_BOOK_MODEL_REDESIGN_R0).
    • For UI parts that need attention define a more suitable design. These include:
      • Layout:
        • MyDoggy - the whole "org.sophie2.main.layout.mydoggy" module should be rewritten (Flaps, tabs and palettes part). -> APP_LAYOUT_MYDOGGY_R1
        • The library(mydoggy) itself may also cause problems, so have in mind rewriting some part of it or may be use another library. Since the library is tightly connected with skins (look and feel part of them). -> APP_LAYOUT_MYDOGGY_R1
        • "...base.layout" - code should be reviewed for inconsistency. It should be made consistent also with the new model.
      • BookView hierarchy:
        • Examine the hierarchy of classes (BookView, BookContentView, BookDesktopWindow, ReaderBookDesktopWindow, BookDocumentWindow, ReaderBookDocumentWindow).
        • Remove old things that are no longer needed.
      • LogicR3: -> LOGICR3_REDESIGN_R0
        • Refactor FrameLogic, PageLogic, BookLogic, AppLogic classes to be LogicR3 classes.
        • JButtons that perform different actions across Sophie2 should also fire their events through the LogicR3.
      • Halos: -> HALOS_REDESIGN_R0
      • Bound controls:
        • The wiki page of this task -> BASE_BOUND_CONTROLS_R1
        • BoundColorPicker is not in the proper model - it should be independent of "...base.halos" (currently it depends on HudDialog and base bound things and cannot be put in the "...base.bound..." module).
      • Dialogs: -> BASE_DIALOGS_R1
        • See TLID:510
        • Make the non-cancel button default where needed (OK and Open).
        • Underline and make accessible by alt all buttons. Make sure tab works correctly.
        • Change the order of the dropdown menus.
          • The "All files (*.*)" should be at the bottom of the list.
          • The menus should be implemented in a way that if someone adds support for a new Image file for example, it's menu item should be added before the "All files (*.*)" dropdown item. It's extension should be added to the extension list.
        • See if somewhere Cancel button is not at the right bottom size of the dialog
        • Align buttons in Book Properties dialog
        • Rename dropdown items according to the testcase (all of them)
        • Add dropdown items for each file type - for example for image files, there should be "JPEG Image file (*.jpeg;*.jpg)" "GIF Image file (*.gif)" etc dropdown items.
      • Skins: - the new skin Sophie2 should be integrated. Icons are ready. Use tool-tips from the default skin.
        • Icons - inconsistent icons of all skins should be fixed. This means that no icons should be used from the fall-back skin, since icons in skins differ a lot for different skins and sophie looks ugly with different icon styles.
        • Tool-tips - Tool-tips of the default skin a OK. Tool-tips of the alternative skin however should be fixed since not all components have an alternative skin tool-tip defined.
        • Component titles - Same as tool-tips.
      • Skin Manager:
        • Make skins persistent.
        • Allow skin manager to change different parts of the skin (tool-tips, icons, look and feel, mydoggy part).
      • Non-categorized things:
        • "Current" things (like current frame, page etc) should be entirely in the "view" (if there is something left in the model - remove it).
        • There is a bug with the gradient dialog - clicking the color button breaks Sophie2. Fix it. Consider redesigning the gradient in a similar way to the color picker. Nevertheless the gradient changing component should be bound to the model as all controls in Sophie2 are.
      • Menus: -> APP_BASIC_MENUS_R0
        • Divide into modules by functionality.
        • Every menu item should fire an event through the LogicR3.

Testing

(Place the testing results here.)

Comments

(Write comments for this or later revisions here.)