Looks good. When is the binding evaluated? If I have an include in my bxml file and the object with the binding expression is buried in a few layers of component (border wrapping a boxpane wrapping a label) will the binding pickup the objects defined in the include file? Do I have to make sure my include happens before it hits the bind expression? Or will it automatically pick up the component (styles in the example below) once it becomes an object in the namespace?
Also, can the binding also be set up in code or only in bxml? Jul 9, 2010 07:40:58 PM, dev@pivot.apache.org wrote: =========================================== Hi all, This feature is now complete. BXMLSerializer now supports dynamic namespace binding via the syntax I suggested in my earlier email. You can see a demo here: http://ixnay.biz/pivot-demos/namespace-binding.html The source code is here: http://svn.apache.org/repos/asf/pivot/trunk/demos/src/org/apache/pivot/demos/binding/ I'm pretty happy with how it turned out. Let me know what you think. G On Jul 8, 2010, at 10:40 AM, Greg Brown wrote: > FYI, I have just checked in initial support for this feature. I haven't > hooked it in to BXMLSerializer yet, but you can see it in action here: > > http://svn.apache.org/repos/asf/pivot/trunk/demos/src/org/apache/pivot/demos/binding/ > > > On Jul 5, 2010, at 3:45 PM, Greg Brown wrote: > >> Another question that seems to come up fairly often is - "does Pivot support >> dynamic data binding like Flex?" Historically, the answer we have given is, >> "no, Pivot's data binding support is based on a load/store model that maps >> well to client/server applications such as REST clients." >> >> However, there are cases where Flex-like data binding can be useful. Given >> the recent updates to BXMLSerializer, I think it may now be relatively >> straightforward to implement. It may also be a good way to support >> dynamically updatable styles, since style values are simply page variables, >> just like everything else. Consider the following example: >> >> >> >> >> >> When loaded, the text property of the label will be set to the value of the >> "text" variable, and the color style will be set to the value of the >> "styles.color" variable. It may be possible to (fairly easily) extend the >> syntax of BXML such that something like the following would cause the text >> property and color style to automatically reflect changes to the source >> variable: >> >> >> >> >> >> Basically, this syntax (or something like it) would be a cue to the >> serializer to register a change listener on the given variable and propagate >> any changes to the bound property. >> >> I haven't prototyped it, so I'm not sure what hidden gotchas we might run >> into, but I think it could work. The primary trick will be in determining >> the type of the parent object and registering an appropriate listener. For >> example, if "styles" in the above example is a Map, we would register a >> MapListener on the "styles" object to be notified of changes to the "color" >> variable. If it is a bean, we'd need to use something like the BeanMonitor >> class used in the Component Explorer demo. That means we'd probably want to >> move that class to org.apache.pivot.beans (which might be worth doing >> anyways). >> >> Let me know what you think. If there is sufficient interest, I may try to >> get it working. >> >> G >> >> >