GridBagLayout for the Computer Scientists

I am by no means a hardcore GUI programmer. The best I've done is a couple of quick hacks written in Tcl/Tk. And even that somehow left me with an uneasy feeling that "things could have been better". One area that's always bothered me is how monolithic GUI components tend to be. This is especially problematic in the day and age of mobile, decentralized computing (why can't my A/V remote "jump" back and forth between my cell phone and my PDA?). This is a tough problem to tackle and the best attempt at resolving this seems to be a research project from Laboratorio de Sistemas Universidad Rey Juan Carlos Omero: Ubiquitous User Interface.

The next biggest issue is how difficult it tends to be when it comes to specifying the desired visual style of the GUI layout. Especially under dynamic constraints such as changing window sized and DPIs. Regardless of toolkits and platforms, the layout managers always end up either too simplistic and dumb or downright esoteric. There's got to be a better way! And there is.

Don't mind its scary title, the idea behind the approach is pure elegance: the layout is all about virtual grids (to which all object align) and the user defined constraints for how the grid cells related to each other. Of course, with the typical constraint being X is supposed to be twice as large as Y these constraints are of a nice, linear kind. Once the user is done specifying the constraints the solution actually comes from the computer (ain't it what computers are good for?). What's even better it can be easily recalculated under changing conditions without \*any\* feedback from the application. The Auckland Layout Model just works. Their example page is pretty convincing, even if the syntax desperately needs sweetening. Definitely this stuff is worth keeping an eye on!
Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

rvs

Search

Top Tags
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today