wiki:AUTHOR_APP_TUNING_R1
Last modified 11 years ago Last modified on 07/31/09 14:58:27

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

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

Apply a new design to the application.

Task requirements

  • Default skin (what has been designed as the default skin for Sophie2.0)
    • Customize swing
      • Swing in the rest of Sophie2.0
        • Scrollbars
        • Spinners
        • Checkboxes
        • Radiobuttons
        • Backgrounds
        • Fonts
    • Customize scenes
      • Halos - this is part of the current skin logic and needs nothing else but new icons.
      • Huds - this is part of the previous thing. Huds are JPanels and need to be skinnable.
  • Currently there is a skin called alternative that should be fixed as well:
    • Provide the missing icons.
    • Provide the missing tool-tips
    • (Optional) Provide a different LookAndFeel for this skin.
    • Customize mydoggy colors and icons(optional).

Task result

Source code + artwork

Implementation idea

  • http://java.sun.com/docs/books/tutorial/uiswing/misc/plaf.html
  • Notes: Things stated in the requirements section will extend the idea of Skin in Sophie2.0. Furthermore, skins will include:
    • Icons for halos and tooltips of all components that have such.
    • MyDoggy customization.
    • Java LookAndFeel customization.
    • In order for the skin to be one thing that provides functionality for these three, all the parts should be integrated and designed in such a way that:
      • Changing a skin will change all these things.
      • Persisting a skin will persist all these things.
      • The Skin manager should be able to provide functionality, so that a subset of these three parts should customizable. For example one might want to change the icons but leave the look and feel.

How to demo

  • Run Sophie2.0
  • Click on skins menus and the change the skin.
  • MyDoggy should change its appearance.
  • Other swing parts should change their appearance.
  • Skin parts - like halos and tooltips should also change.

Design

  • LookAndFeel of Swing will be changed in order to have a different looking Sophie2 skin.
  • As of Java 1.5 a new way of defining the Look and feel of java is developed (see http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/synth.html for more information) .
  • The SynthLookAndFeel defined for Sophie2 will be put in the "org.sophie2.main.skin.alternative" module. This module will contain all skinning of Sophie2, until we implement skin persistence.
  • Later the look and feel will be sealed in a jar file.
  • For a more detailed information about the Look and feel and its artifacts see AUTHOR_APP_TUNING
  • Customizing the LookAndFeel of Java requires a lot of effort so that it contains all parts of the UI customized. That is why at this revision of the task the following things will be customized:
    • Buttons
    • Arrow Buttons (included in scroll bars, spinners etc.)
    • Toggle buttons
    • List
    • Tree
    • Title bar - includes:
      • The style of the title bar.
      • Icons in the title bar (close, minimize etc.)
    • Scroll Bars
    • Backgrounds of panels and the desktop background.
    • Check boxes
    • Radio Buttons
    • Menus:
      • Menu bar
      • Menu
      • Menu item
  • And more... see AUTHOR_APP_TUNING
  • Mydoggy customization will be hard coded in the same module. For the time being mydoggy will not be customized so that there is more time for look and feel customizations. What is more, better mechanism for the skinning should be defined for mydoggy.
  • More icons for the alternative skin.
  • Icons for sophie2 skin.
  • SEE AUTHOR_APP_TUNING for more information about things in the design.
  • Changesets:

Implementation

  • As proposed by the design. In addition:
    • Changed tabs colors of myodggy.
    • Provided a spinner.
    • Improved the thumb of the srollbar.
    • Formatted the code :-).
  • Changesets:
    • 4739
    • 4742
    • 4744
    • 4762 - look and feel files moved to "/src/main/resources". The pom file is now fixed for the True launcher.

Merged to the trunk in [4768].

Testing

(Place the testing results here.)

Comments

  • This will be included in the next revision
    • Look and feel for the MyDoggy part.
    • HUD transparency should be researched.
    • Painting backgrounds not stretched but tiled.
    • Fonts for the different states of the UI components. (provided by shift - should be included).
    • Anti aliasing of the text should be researched
    • Drop shadow of elements and text should be included in the next revision.