[ 
https://issues.apache.org/jira/browse/PIVOT-542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Appddevvv updated PIVOT-542:
----------------------------

    Attachment: WTKXSerializer-with-initialize.patch

Greg, There is small mixture of another PIVOT issue you have already addressed 
but the match is mostly on this issue.

> enable the serializer to initialize components written in java code
> -------------------------------------------------------------------
>
>                 Key: PIVOT-542
>                 URL: https://issues.apache.org/jira/browse/PIVOT-542
>             Project: Pivot
>          Issue Type: Improvement
>            Reporter: Appddevvv
>         Attachments: WTKXSerializer-with-initialize.patch
>
>
> The current serializer performs two funtions: creating objects and 
> initializing them. The typical use case is to create your component (say java 
> code) then call the serializer to create the content. Then within your class, 
> attach the content and initialize your object in various application specific 
> ways. However, since your object is typically a java object and often a 
> Component subclass, for those writing new components as composites of others, 
> you have to manually write some (not all) initialization code that could also 
> be performed in the BXML file. 
> To initialize your object using bxml content, you can use annotations etc. 
> However, if the bxml file also defines user data or other elements, you also 
> have to manually bring that in from the bxml and do some wiring. In addition, 
> it is currently impossible to initialize some pivot objects that you subclass 
> from, say the splitpane, with content from bxml without having to create an 
> intermediate container or use two bxml files for the left and right child. 
> For example, if you subclass from SplitPane, an underlying bxml file that 
> holds your content must have another container in order to define your left 
> and right children in or you have to use two separate bxml files per 
> child--this may or may not be a good thing and complicates the implementation.
> To support the use case of creating subclasses of Components (and pivot likes 
> to use OO inheritance) and allowing the initialization of that component to 
> be matched by a bxml file, the serializer needs to be able to "apply" itself 
> to the component as if the bxml file and the subclassed component were a 
> reflection of the other. Bindable was designed to help with this, however, 
> the bxml file is still considered at level below (the content) of the 
> Component you are writing.
> The benefits are:
> a) A cleaner code style that has implied semantics--i.e. this bxml file is 
> the mirror image of your subclassed component at the same logical tree level.
> b) More consistent coding conventions for novice programmers.
> The capability to do this can be implemented in different ways including the 
> current approaches of course. The small patch allows a new style of Component 
> creation blending code and bxml in a more seamless way. Its no longer 
> something you instantiate to "get" content, it is the content. It helps 
> Component writers who want to simply subclass another component. It looks 
> like a trivial change but it is a different perspective on initialization 
> that has natural semantics for programmers. It also reduces complexity for 
> creating subclasses of Components that have properties representing the tree 
> e.g. SplitPane.
> This is similar in spirit to "code-behind" in other frameworks.

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

Reply via email to