wiki:AUTHOR_APP_TUNING_R1

Version 9 (modified by peko, 16 years ago) (diff)

--

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
      • MyDoggy part
      • 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.
        • Background should be semitransparent, e6e8ea
        • Static text should be semitransparent, 2d43b0
  • 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.)
    • 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
  • Mydoggy customization will be hard coded in the same module. At this revision it may not look exactly as intended, because we may need some additional customization of the library in order to achieve a desired interface.

Implementation

(Describe and link the implementation results here (from the wiki or the repository).)

Testing

(Place the testing results here.)

Comments

(Write comments for this or later revisions here.)