Bug 174844 [JFace] JFace ToolTip class should support manual activation
I have been using the new JFace ToolTip class for showing custom-draw tool tips for my tree items and works very nicely for that. Now I have another context that I need to use tool tips in. In this context, the tool tips need to be activated in response to an event other than mouse movement. To be specific, I want to popup a tool tip when user attempts to uncheck a tree item that shouldn't be unchecked. After the tool tip is displayed, I want standard tooltip behavior (times out, hides on mouse movement, etc.). It doesn't look like I can do that using the ToolTip class. Perhaps a base class can be pulled out from the ToolTip class. The base class would expose a protected show method and let a subclass take care of activation. The existing ToolTip class can then add activation based on mouse movement + delay. Other subclasses can then be made that implement alternative activation methods.
bundles/org.eclipse.jface/src/org/eclipse/jface/window/ToolTip.java
public Object getData(String key) {
		if (data != null) {
			return data.get(key);
		}
		return null;
	}
	/**
	 * Set the shift (from the mouse position triggered the event) used to
	 * display the tooltip. By default the tooltip is shifted 3 pixels to the
	 * left
	 * 
	 * @param p
	 *            the new shift
	 */
	public void setShift(Point p) {
		xShift = p.x;
		yShift = p.y;
	}
	/**
	 * Activate tooltip support for this control
	 */
	public void activate() {
		deactivate();
		control.addListener(SWT.Dispose, listener);
		control.addListener(SWT.MouseHover, listener);
		control.addListener(SWT.MouseMove, listener);
		control.addListener(SWT.MouseExit, listener);
		control.addListener(SWT.MouseDown, listener);
	}
	/**