Using FormEditor with a single page
January 4th, 2008 | Published in Rich Client Platform, Tips | 4 Comments
I tried to think of a snazzier title for this post, but I’m in a literal mood I guess. So have you ever faced this problem? You want to use the FormEditor class (or it’s new subclass SharedHeaderFormEditor), but you only have a single page.
Sure, you can use FormEditor with a single page, but you’ll wind up with a single tab at the bottom of the editor. It looks a bit goofy:

Well the solution is surprisingly simple. In your subclass of FormEditor, just override the createPages method like this:
protected void createPages() {
super.createPages();
if (getPageCount() == 1 &&
getContainer() instanceof CTabFolder) {
((CTabFolder) getContainer()).setTabHeight(0);
}
}
This code hides the tabs when there is only one page, and you wind up with this:

Note that you need to call the super method before resizing the tab height, or this won’t work.



Patrick on the RCP Panel at EclipseCon
January 4th, 2008 at 9:55 pm (#)
I don’t think making the method public is a good idea.
January 4th, 2008 at 11:44 pm (#)
Thanks, Remy. That was a typo and it’s now fixed.
January 5th, 2008 at 2:48 am (#)
I enjoyed this installment of “stupid editor tricks” :)
I think this should be the default behavior of FormEditor, so that clients don’t have to worry about overriding it.
January 10th, 2008 at 11:59 am (#)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=74811