currentPage.setContainer(this);
// Ensure that the page control has been created
// (this allows lazy page control creation)
if (currentPage.getControl() == null) {
final boolean[] failed = { false };
SafeRunnable.run(new ISafeRunnable() {
public void handleException(Throwable e) {
failed[0] = true;
}
public void run() {
createPageControl(currentPage, pageContainer);
}
});
if (failed[0]) {
return false;
}
// the page is responsible for ensuring the created control is
// accessable
// via getControl.
Assert.isNotNull(currentPage.getControl());
}
// Force calculation of the page's description label because
// label can be wrapped.
final Point[] size = new Point[1];
final Point failed = new Point(-1, -1);
SafeRunnable.run(new ISafeRunnable() {
public void handleException(Throwable e) {
size[0] = failed;
}
public void run() {