package edu.ualberta.med.biobank.gui.common.dialogs; import org.eclipse.jface.dialogs.DialogPage; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; public abstract class BgcDialogPage extends DialogPage { private Point size = null; protected BgcDialogWithPages dialog; public BgcDialogPage(BgcDialogWithPages dialog) { this.dialog = dialog; } public void setSize(Point uiSize) { Control control = getControl(); if (control != null) { control.setSize(uiSize); size = uiSize; } } public Point computeSize() { if (size != null) { return size; } Control control = getControl(); if (control != null) { size = control.computeSize(SWT.DEFAULT, SWT.DEFAULT, true); return size; } return new Point(0, 0); } public abstract void runAddAction(); @Override public Shell getShell() { // need this to avoid a org.eclipse.swt.SWTException: Invalid thread // access return dialog.getShell(); } }