Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[wtp-dev] Facet API

Hi All,
 
For the last few weeks the WTP JSF Tools team has been working with the 1021 IBuild.  The main reason for this was stability as the IBuilds after that one seemed to have some kind of problem that persuaded us to stick with it.
 
Anyway, we we had facets working and are preparing to do an initial check-in of code but we first are moving up to the latest available IBuild (20051111814).   This email is being written to describe some of the pain I went through so as to help solidify the API and perhaps help others working with facets.  Konstantin - if you would like me to enter bugs for anything I mention below, please let me know.
 
A little background.   In the 1021 build, the JSF Facet did not show up in the DynamicWebApp creation wizard.  It was necessary to use the Add/Remove facets wizard.  I have also tried to avoid using any internal WTP classes.
 
In the 1021 build, I was able to use a POJO for the facet install action's "config" .  The API still says that it's type is Object.  I discovered that it must now be an IDataModel or nothing works.  The API should be updated for this.  With that came a series of significant changes.
 
I then discovered that there is now a config-factory ext-pt element that must be used to create an IDataModelProvider.   After figuring out how to convert my original model, I still struggled to get my install delegate to work.  The problem that I was seeing was that my model was not being updated with the wizard values.   My wizard page was using the public AbstractFacetWizardPage class and I discovered that the API, transferStateToConfig() which I was relying on, was not being called in the context of a New WebApp Wizard.   At that point I found it necessary to follow the WebApp facet creation patterns.
 
That meant instead of using the public AbstractFacetWizardPage, I used the internal DataModelWizardPage class.   Please consider making this public.    Although it may not have been absolutely necessary, I then moved the validation code out of the UI to my model provider class to take advantage of the DataModelWizardPage.  I like the synchHelpers, btw, which greatly simplified handling the movement of the UI data to the model.   Please consider adding a synchHelper for CCombo as I needed to change to Combo due to the lack of helper for that control type.   
 
At this time I am back in business, so to speak, but still see the following issues that are probably framework related.   I have not found bugzilla entries for them.
  1. I have 2 facet versions defined but only one of them is ever available.   It does not matter what runtime is specified.
  2. If the JSF Facet is created as part of WebApp project creation, and when I use Add/Remove Facet wizard, the JSF facet becomes "fixed".  Only if the facet is created after the project am I able to remove the facet.
One last thing.  I need to be able to know the WebContent directory for validation purposes from my facet install page.  In the case of project creation, there is not yet a WebApp and I must somehow get it from the previous page's datamodel(WebFacetInstallDataModelProvider).   How can this be done?
 
Thanks,
Gerry Kessler
WTP JSF Tools Team

Back to the top