Bug 128684 [Help] Dialog help tray does not resize correctly
3.2M5 Select Window > Preferences > General. Click on the Help button to get a help tray. Problem 1: Grab the right edge of the window and make it wider. The middle of the dialog gets wider and the help tray stays the same. I'd expect the opposite to happen - the help tray would get wider and the main dialog would be unchanged. Problem 2: Maximize the dialog (double-click its frame on Windows). Click on the Preferences link in the Help window. You can't read it because the frame is too narrow, so make it bigger. Now restore the dialog (double-click on its frame again under Windows). Now all you can see is the help tray. The content of the dialog (the preferences tree and page) are completely shoved over to the left and hidden. I'd expect there to be some minimim size enforced on the actual content of the dialog, or perhaps the three panels to be restored to sizes that were the same percentage relatively speaking as they had when the dialog was zoomed. Problem 3: When you resize the help tray, this is not remembered at all. For example, move the sash to make the help area bigger, then close the dialog, and reopen the dialog, and press the help button again. It goes back to its default size. I'd expect it to remember the old size, perhaps in relative percentage terms. I'm not sure if it should remember a size differently for each page in the preferences dialog, or for each different kind of dialog, or just one size globally, but I'd expect some kind of memory to exist.
bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TrayDialog.java
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Layout;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Sash;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
/**
 * A <code>TrayDialog</code> is a specialized <code>Dialog</code> that can contain
 * a tray on its side. The tray's content is provided as a <code>DialogTray</code>.
 * <p>
 * It is recommended to subclass this class instead of <code>Dialog</code> in all
 * cases except where the dialog should never show a tray. For example, dialogs
 * which are very short, simple, and quick to dismiss (e.g. a message dialog with
 * an OK button) should subclass <code>Dialog</code>.
 * </p>
 * <p>
 * Note: Trays are not supported on dialogs that use a custom layout on the <code>
 * Shell</code> by overriding <code>Window#getLayout()</code>.
 * </p>
 * 
 * @see org.eclipse.jface.dialogs.DialogTray
 * @see org.eclipse.jface.window.Window#getLayout()
 * @since 3.2
 */
public abstract class TrayDialog extends Dialog {