Ticket #2411 (closed unplanned_task: obsolete)

Opened 15 years ago

Last modified 13 years ago

skinning-internationalization

Reported by: tanya Owned by: tanya
Priority: normal Milestone:
Component: uncategorized Version: 2.0
Keywords: Cc:
Category: unknown Effort:
Importance: Ticket_group:
Estimated Number of Hours: 0 Add Hours to Ticket: 0
Billable?: yes Total Hours: 0
Analysis_owners: tanya, deyan Design_owners: tanya
Imp._owners: tanya Test_owners:
Analysis_reviewers: todor Changelog: Changelog
Design_reviewers: meddle, pap Imp._reviewers: pap
Test_reviewers: Analysis_score: 4
Design_score: 3 Imp._score: 3
Test_score: 0

Description (last modified by tanya) (diff)

skinning-internationalization

  • Provide a way skinning the titles and tooltips in the application
  • Provide a document that describes what the skins will look like
  • Provide a way to change skins in Sophie
  • Provide an example skin that contains all of the changeable titles in Sophie

See
SkinningInternationalization?

Attachments

skinManager-imre.patch (1.3 KB) - added by pap 15 years ago.

Change History

comment:1 Changed 15 years ago by tanya

  • Description modified (diff)
  • Analysis_owners set to tanya

comment:2 Changed 15 years ago by tanya

  • Summary changed from skinning-internatiolization to skinning-internationalization

comment:3 Changed 15 years ago by tanya

  • Description modified (diff)

comment:4 Changed 15 years ago by tanya

  • Description modified (diff)

comment:5 Changed 15 years ago by tanya

  • Owner set to tanya
  • Status changed from new to s1a_analysis_started

comment:6 Changed 15 years ago by deyan

  • Description modified (diff)

comment:7 Changed 15 years ago by deyan

  • Status changed from s1a_analysis_started to s1b_analysis_finished
  • Description modified (diff)
  • Analysis_owners changed from tanya to tanya, deyan

comment:8 Changed 15 years ago by todor

  • Status changed from s1b_analysis_finished to s1c_analysis_ok
  • Analysis_reviewers set to todor
  • Analysis_score changed from 0 to 4

good analysis

comment:9 Changed 15 years ago by tanya

  • Description modified (diff)

comment:10 Changed 15 years ago by tanya

  • Description modified (diff)

comment:11 Changed 15 years ago by tanya

  • Status changed from s1c_analysis_ok to s2a_design_started
  • Description modified (diff)

comment:12 Changed 15 years ago by tanya

  • Design_owners set to tanya
  • Status changed from s2a_design_started to s2b_design_finished

comment:13 Changed 15 years ago by meddle

  • Status changed from s2b_design_finished to s2c_design_ok

To im-f.

comment:14 Changed 15 years ago by meddle

  • Owner changed from tanya to meddle
  • Status changed from s2c_design_ok to s3a_implementation_started

comment:15 Changed 15 years ago by meddle

  • Status changed from s3a_implementation_started to s3b_implementation_finished

comment:16 Changed 15 years ago by meddle

  • Owner changed from meddle to tanya

Changed 15 years ago by pap

comment:17 Changed 15 years ago by pap

  • Status changed from s3b_implementation_finished to s3c_implementation_ok
  • Imp._owners set to tanya
  • Imp._reviewers set to pap
  • Design_score changed from 0 to 3
  • Design_reviewers set to meddle, pap
  • Imp._score changed from 0 to 3
  • Commited to trunk in [9118], [9138] and [9140]
  • Although some requirements are not met and the ticket quality is very poor the task is(was) accepted due to its importance.
  • The code is not well enough structured and the flow of logic could be better.
  • The way the NONE skin is treated should be improved.
  • Remove the unnecessary LanguageSkin file.
  • The classes seem to be too much for a single package.
  • Remove commented out code Skin
  • What about making the getValue and getValues methods package private or protected and expose value getting only through SkinUtil in order to ensure usage of default skin.
  • Also fix logging (actually this is my fault). Now there are too much log messages in SkinManager and they are not with the proper LogLevel.
  • SkinEntry is a bit misleading name for what it does. Also its javadoc isn't correct - it is not an ExtensionPoint.
  • It can and probably should be made a generic by the returned object.
  • Also it's kind is sometimes referred to as "type". Be more consistent in naming - choose one of these.
  • The JavaDoc of TextSkinEntry is bad - this is not an extension of the extension point. There is another semantic.
  • Same about SkinPartsProvider.
  • Probably the SkinNames is no longer needed. Also the values of the constants should be changed - probably "language:default" and such.
  • Don't forget to fix the getValues methods. These return all available skin values for a given recordid.
  • The way a value class is classified to a certain pack may also be extensible.
  • To me it seems that the searchSkin method doesn't need to be public. Also this method searches the fallback two times for the same record and this can be avoided (see how Skin.getValue works).
  • I think that it is somewhat better to use "language pack" instead of "language skin". This is about documentation, variables, ConfigKey names, etc.
  • About the default skins
    • The way with lazy getting is nice because it is lazy.
    • But you can also put the default skin in the cache for the none key and this way ommit all the special code for handling default skin.
    • Your decision. But i think that createSkin should not return the default skin if you continue using the lazy getting. Just null.
  • loadBaseSkinParts is not a good name. They are just skin parts.
  • getContents can be loadPart.
  • Extract more constants.
  • Please rewrite the createSkin method. I think it can be simpler and with less return statements.
  • In the initRecord method please consider cases where the split would not return exatcly three pieces. They can be less or more.
  • The assertations in {{{createValue}} can be put in a single one. Also you may put a message there.
  • In the getContents method trim the lines before checking them for comments or emptyness. Also double-check whether the try/catch/finally blocks always work correctly. It seems so, but I usually see a different way to do that (see the attached patch).
  • The thing about default skins should also be consistent in the constructor of SkinManager.
  • And last but not least, I really thank you for all the effort.

comment:18 Changed 13 years ago by meddle

  • Status changed from s3c_implementation_ok to closed
  • Resolution set to obsolete

Closing all the tickets before M Y1

Note: See TracTickets for help on using tickets.