It was somewhere in 2002 or 2003 when I was looking for a method to position widgets on a plane. It was an early version of Javeline PlatForm and up until that moment I had only positioned elements using anchoring. I remembered a nice feature of Visual Basic, which allowed you to align components to one of the 4 directions. I could align a tree to the left, a toolbar to top and a statusbar to bottom.
I made an implementation of that and extended it by allowing N number of elements to have the same alignment. I also added a ‘middle’ alignment. Javeline PlatForm up until 0.98.1 supported only this way way of dealing with alignment. The latest version supports a new layouting engine. It works with vbox/hbox-es like many other GUI systems. What’s kinda new is the way it can load and save the layout state and how it implements a window docking system similar to Aptana, Eclipse and Visual Studio.
The align=”" method
I’ll first show you the original way of dealing with a layout in Javeline PlatForm. In this example we’ll use bar objects to keep it simple, but this could be any javeline component.
The above example creates a simple outlook like layout with two splitters. By adding more elements and by using nested alignment scheme’s we can make a way more advanced looking layout. We’ll add two buttons that modify the layout runtime by hiding/showing certain elements.
The ‘bX’ variables refer to each bar component by it’s id. (N.B. You could also use a state component to set the states of multiple components). The process of hiding and showing multiple components has been optimized such that the layout is recalculated only once.
These layout examples are very impressive and seem to function properly in FF and IE.
BUT: I have just updated my Opera browser to version 9.5; in this version, the layout
examples are shot after having moved a splitter.
[…] I’ve never been a big fan of the Eclipse IDE’s user interface, but personal biases aside, Ruben Daniels has come up with a pretty impressive feature in his Javeline framework: a dockable frames system for Ajax applications. […]
Unfortunatly I’m a prototype/scriptaculous user and adding JavaLine would be too heavy for my web application
Is there a way to use the latest example as a standalone feature ? What are the minimum JavaLine component needed to make it works ? Is JavaLine compatible with Prototype ?
We are working on compatibility with js solutions that enhance coding and animation. This is planned for v0.99. We will integrate with jquery, prototype, scriptaculous first. You can use the Javeline Packager (available on http://developer.javeline.net/downloads.php) to repackage Javeline Platform with just the components you need. Be aware, that Javeline PlatForm is a development platform for Ajax Applications/Sites. It is a declarative solution where you create an application using namespaced tags in html. Check out the other articles on my blog to get more info on what you can do with it. (If you use JPF, you will probably not only use docking windows, but also many of the other widgets to create your GUI. Like <j:tree /> etc)
To answer your questions directly. Yes, from the next version you will be able to easily combine it with prototype (you might already, but it’s untested. Javeline PlatForm has everything nicely in one namespace, but you might have the window.onload problem). Yes, you can make it smaller, but it will still be 80kb compressed minimum. Hope this helps. You can join the PlatForm mailinglist if you wanna ask more questions. http://developer.javeline.net/mailinglists.php.
Can Javeline be used as a stand-alone client-side framework for developing javascript applications without the need for using any other Javascript libraries? I am trying to understand what Javeline Framework actually is and how it compares to other frameworks like Dojo, YUI, jQuery or Sproutcore.