After talking with Tim M last week about log management, and recalling that
the log management stuff can’t be done before we have a place to put it, I
started thinking about docking again.
I took another look at the docking frameworks out there and found them to
be some combination of unmaintained (FlexDock), overly complex, ugly, or
using an LGPL-incompatible license.
Additionally, I wanted to take a break from squashing bugs for a bit, so
instead I created a docking demo:
In the zip archive are a shell script and batch file which you can use to
run it. I’m not going to describe it here, as everything you can do with it
is intended to be easily discoverable. The demo requires Java 6, but only
because I didn’t take the time to write a workaround for the fact that tabs
in the 1.5 version of JTabbedPane can’t contain Components.
I’d like to get some feedback in particular in a few areas:
Does it work how you’d expect it to work?
Do you see any repainting or resizing weirdness?
Does it have all of the features we want in a docking framework?
If you want something for comparison, which has a ton of features but is
awfully slow, look here and try the Dock Gallery Example:
Works somewhat as expected with what I could find. There was no way to call back a closed (“X”'ed) tab from what I could find in demo
No weirdness, split and resized panes in many different ways without problems
I think it is missing 1 definite feature and possibly another if a use can be found for it:
The definite feature would be a minimize/maximize on the window that reduces/expands from a fixed “tab row” along the bottom (sort of like excel/adobe tabs), in addition to the standard “X” close window. Close out of a window would perhaps permanently remove window and tab altogether? Don’t know for sure what is better there.
The optional feature I think of would append this in by right clicking on the tab row allows the creation of a new tab/window (or perhaps presents list of available windows you can open back up that have been “X”'ed
Minimize and internalize I don’t like at all. After a few minutes, nobody
will remember where a docked pane was previously, and so the user will almost
always be faced with the question “What will this do if I click it?” That
makes me think that having minimize and internalize are bad UI design.
Externalize strikes me not as bad, but just not very useful, since you can
achieve the same thing by dragging a tab out of the window it’s in.
Internalize, I’d go along with you there, but Minimize / Restore?
These are standard window operations in windows - cant speak for any other OS but presume similar so every user should be well aware how those function.
I dont think I’ve never seen anything different going all the way back to windows 2.0 when I first encountered a gui after DRDOS and DOS