[refactoring][beanview] Carve single mode creation pieces out of producers
--------------------------------------------------------------------------

                 Key: LABS-352
                 URL: https://issues.apache.org/jira/browse/LABS-352
             Project: Labs
          Issue Type: Improvement
          Components: Magma
    Affects Versions: Current
            Reporter: Simone Gianni
            Assignee: Simone Gianni
             Fix For: Current


With LABS-351 we have intermediate types that can be inferred instead of more 
generic types like String, byte[] or streams.

Now we need to implement a way to have beansview pieces to cope with them.

This should be done in a pluggable way. Most importantly, pluggability is 
needed to extend both ShowBean and ShowList (and conseguently form and 
paginated list) customization.

Right now, ShowBean delegates to a createMain method the creation of the inner 
content of a leaf in the ViewTree, the form producer then further delegates to 
specific methods to create drodowns, textareas etc..

Similarly, ShowList delegates to createFieldNodeCell method, which is a bit 
less clean than createMain.

Probably, we could refactor these methods a bit to give a clear path for 
extension using AspectJ around advices. For example, to handle file uploads, an 
around advice on createMain could intercept when the node contains a File 
intermediate type and output an upload field in the form or a link for 
downloading the file in a showbean.

A similar approach should be taken for form binding, cause the two will most 
probably go in pairs.

The final objective could be to declare an abstract aspect to customize 
appearance of certain intermediate types in lists, showbeans and forms, and 
parsing of incoming parameters for forms binding.

Such aspects could then be implemented to support different form/display 
technologies, like JSF.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to