XBLinJS 0.4 Release Plans

Features are always in flux until such time as the release occurs, but here is the current plan for 0.4:

  • XBLinJS currently is built on the assumption that if node is a Javascript-reflected DOM node, node.setAttribute(name, value) is the same as node[name] = value. Nope. I thought I was setting up a system whereby you could always say blah.setAttribute(name, value) and it would Just Work whether or not blah was a node or a Widget. Guess not.One way or another, I intend to resolve this in 0.4. I need to research what browsers do with what elements, with what attributes, and figure out what to do. The good news is that much of that should be automatable, the bad news is that it could produce some huge data files, the good news (again) is that huge data files are better than crashing Javascript. A pity it isn't this easy.Egregious example: In IE, node.style is a complicated object, and at least in my copy of IE, node.style = "background-color: #FFFFFF"; doesn't work. (I qualify that because it either worked for other people, or worked in past versions of IE, but it definately does not work for me.) You have to set the attributes in Javascript directly: node.style.backgroundColor = "#FFFFFF";. In Mozilla, you can use direct .style access just fine. I can flatten this difference out pretty easily, but if it gets much more complicated than that, things could get interesting.
  • There are of course other widgets that can be included. A version of the drop-down widget that works in both IE and Mozilla should be included as I'm working on that right now. I might put out a simple ButtonWidget, just because I keep using buttons and it'd be nice to have an easy ButtonWidget for use in .content specifications. Depending on time, a Rich Text editor widget may get included, which could be interesting. (I'm actually converting somebody else's rich text widget, and it's serving as a good example of how XBLinJS can in theory provide a single unifying framework for a lot of extant Javascript libraries for various capabilities that currently do not integrate well.) I think that with either of those two, maybe even both, it'll start turning some heads on the demo page.
  • Event handling at the moment is questionable. I had to get wacky to work with IE 6, and I'm not yet convinced things will work across frames like they are supposed to, or that widgets can attach to other widget's events like they are supposed to. Simple cases work. That will be better tested in 0.4.
  • Finally, I intend to have some sort of tutorial up, which will also serve as a better explanation of what XBLinJS is if you don't already know what XBL is. I haven't worried too much about that up to this point because the library wasn't necessarily ready for that bunch of people, but I think it is getting there.

No promises on any front, but that is the plan. I have no idea when this release will be because while I am using XBLinJS a lot in almost all of my current projects, a public release is a lot of work with no immediate and obvious benefit to either me or the project at the moment, and I have no idea when I'm going to be able to spare that time over the next few months. I'm getting dangerously close to living in those "interesting times" of the famed (if apocryphal) Chinese curse.