From: Jess S. <sin...@gm...> - 2008-03-10 23:32:30
|
Team, When you get a chance get the latest on kgauge, mdasupport and oawclassic. As usual build mdasupport before running kgauge. I have merged advanced search and basic search into one panel and now we have ranges for integers, doubles , dates etc. Search also works for associations e.g. you can search all exams created by a certain user. The view portion needs some tweaking as the controls appear wiggly - pls bear with it for now. Notable Points which I have decided to mention in this mail are - and I want teammates to comment / provide feedback and maybe learn a few things from them. (i) Use of decorator design pattern very elegantly resolves Context related issues and prevents us from falling into ugly if elseif else mess. When Jsf components are rendered they could be in edit, search, view (and potentially more in future ) context. Now the basic difference b/w edit context and search context is that in search context you need all validations disabled e.g. when editing/creating new an exam we need the min and max length of the name field to be respected whereas this constraint should not be applied while creating a searchable field. Traditional brute force approach would be within the renderer we'd use an if condition to see if the current context is search then dont generate the validation code but this approach can't scale as number of contexts increase and the code will become more and more difficult to mantain. I have created a class org.witchcraft.htmlinput.jsf.SearchRendererDecoratorwhich decorates an InputComponent renderer and delegates the basic control rendering to edit component renderer and returns empties for validation, isRequired etc. (ii) I have created composition elements for ranges - dateRange.xhtml and numberRange.xhtml in the WEB-INF folder and they work wonderfully well - especially making code generation a breeze e.g usage : <wc:numberRange rangeFieldName="rangeQuestions" label="Questions" backingBean="#{examCrudBacking}" type="integer" /> please go through these files as I want to build up on this approach and want the team to have same level of comfort (or more ? ) as I do with composition elements. |