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