PluginFrameworkStory

Functional specifications

In the PluginFrameworkPOCStory and PluginArchitectureStory a plugin framework is devised. This framework needs to be integrated in the main trunk and tests have to written. This story needs to be completed in order to add the remaining views ass plugins.

Resources

Technical interpretation

  • Localization support
    • Adapt the WebicalWebapplication to accept additional resource locations
    • Refactor the panels so that StringResources are used for the display messages
  • Capability switching
    • Create an AbstractPanel to enable the capability switch
    • Same for an AbstractBasePage
    • Refactor the Panels so they extend the AbstractPanel and choose between the capabilities
  • Frontend plugin integration
    • Copy the event package from the poc
    • Refactor the AbstractBasePanel to implement the EventHandler interface
    • Refactor the AbstractBasePage to implement the EventHandler interface
    • Refactor the forms so that addidional ExtensionPoints are offered.
    • Update the calendar add/edit form to make use of the DaoFactory? for calendartype listing
  • Plugin registration system
    • The WebicalWebApplication must use the PluginClassResolver and PluginClassLoader
    • The PluginInitializer must be loaded on startup.
    • Complete the new frontend registration
    • Add a listener to cleanup when the context stops

Budget/Hours

task estimate todo spent Developer
Adapt the WebicalWebapplication to accept additional resource locations 2 0 2 Ivo
Refactor the panels for localization 6 0 6 Ivo
Create an AbstractPanel with a capability switch 4 0 4 Ivo
Create an AbstractPage with a capability switch 2 0 3 Ivo
Refactor the Panels for capability switching 5 0 6 Ivo
Refactor the Panels/Pages for wicket:message usage 4 0 4 Ivo
Refactor the AbstractPanel for the extensions 6 0 8 Ivo
Refactor the AbstractPage for the extensions 6 0 4 Ivo
Refactor the forms to offer additional extensionpoints 4 0 3 Ivo
Update the calendar add/edit form 2 0 2 Ivo
Set up the PluginClassResolver 2 0 1 Ivo
PluginInitializer 6 0 6 Ivo
frontend registration 3 0 4 Ivo
Cleanup Listener 2 0 2 Ivo
Total 54 0 55  

Notes

Internationalization

To support internationalisation there are a couple of things to do:
  • instead of hardcoded strings in the code use a StringResourceModel like this:

In SomeClass.java:
   Label someLabel = new Label("labelId", new StringResourceModel("labelPropertyInPropertiesFile", this, null));

In SomeClass.properties (in the resource tree):

   labelPropertyInPropertiesFile=The label you want

In SomeClass_nl.properties (in the resource tree):

   labelPropertyInPropertiesFile=De label die je er in het nederlands in wilt hebben

  • In the markup files use:
   <wicket:message key="the.key.used.in.the.property.files"></wicket:message>

  • For dates use the following:
   Date aDate = new Date();
   DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG, getLocale());
   dateFormat.format(aDate);

-- IvoVanDongen - 09 Nov 2006

Topic revision: r13 - 08 Dec 2006 - 12:50:42 - IvoVanDongen
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback