wiki:BASE_SKINS_COMMONS_R1

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

--

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

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

  • The aim of this task is to improve the skin management and to provide skin persistence.

Task requirements

  • Create a visual skin manager. There should be a skin tab containing:
    • Available skins palette - that displays the available skins.
    • Skins management palette that should have a save, load and apply buttons for managing skins.
  • Create a persistence mechanism that allows to save and load skins.
    • Skins should be persisted in a directory so that skin manipulation is easier.
  • Create a mechanism for choosing the skin and its fallback one.
  • Remove the skin menu.
  • Module customizations
  • Create a module org.sophie2.main.skins
    • It should contain all the palettes and all the skins' things.
    • Remove the org.sophie2.main.skin.alternative module. It is no longer needed.

Task result

  • Source code.

Implementation idea

  • Use the persister mechanism that is already defined to persist skins.
  • Create the tabs and palettes.
  • For every skin in the available skins palette provide an icon and the name. There can also be some meta info about the skin.

How to demo

  • Run sophie2 and click on the skins tab.
  • See the currently selected skin and its info from the available skins palette.
  • Save this skin using the skin management palette.
  • Examine the persisted skin.
  • Load the persisted skin and apply it.
  • There should be no change with the previous one.

Design

(Describe your design here.)

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.)