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