Bug 163360 [Field Assist] - API - Provide ControlDecoration constructor without specifying decoration
Currently you can only create a ControlDecoration by specifying the control and the decoration in the constructor. This works nicely when the decoration is static (ie, always content assist). But there are use cases where the decoration changes depending on the state of the field, and at creation time, it's not clear which decoration will be set. Having a constructor that doesn't require a decoration would be nice.
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
if (listenerInstalls > 0) {
				System.out.println("LISTENER LEAK>>>CHECK TRACE ABOVE"); 
			} else if (listenerInstalls < 0) {
				System.out
						.println("REMOVED UNREGISTERED LISTENERS>>>CHECK TRACE ABOVE"); 
			} else {
				System.out.println("ALL INSTALLED LISTENERS WERE REMOVED."); 
			}
		}
	}
	/*
	 * Return the rectangle in which the decoration should be rendered, in
	 * coordinates relative to the specified control. If the specified control
	 * is null, return the rectangle in display coordinates.
	 */
	protected Rectangle getDecorationRectangle(Control targetControl) {
		if (decoration == null || decoration.getImage() == null) {
			return new Rectangle(0, 0, 0, 0);
		}
		
		Rectangle imageBounds = decoration.getImage().getBounds();
		Rectangle controlBounds = control.getBounds();
		int x, y;
		
		if ((position & SWT.RIGHT) == SWT.RIGHT) {
			x = controlBounds.x + controlBounds.width + marginWidth;
		} else {
			
			x = controlBounds.x - imageBounds.width - marginWidth;
		}