Bug 124202 [Field Assist] - decorated fields should not size the created control
The philosophy of DecoratedField is that the client creates the target control and accesses it with normal SWT coding. The decorated field manages the decorations but otherwise statys out of the way. This philosophy is violated when DecoratedField sets the width of the field to IDialogConstants.ENTRY_WIDTH. Sizing decisions should be made by the client of the decorated field, not the field itself.
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/DecoratedField.java
Point newSize = getExtent();
				if (!oldSize.equals(newSize)) {
					
					arrowOnLeft = hoverNear.getLocation().x <= targetControl
							.getLocation().x;
					setNewShape();
				}
			}
			if (hoverNear != null) {
				Point extent = getExtent();
				int y = -extent.y - hah + 1;
				int x = arrowOnLeft ? -hao + haw / 2 : -extent.x + hao + haw
						/ 2;
				hoverShell.setLocation(hoverNear.toDisplay(x, y));
			}
		}
		/*
		 * Return whether or not the hover (shell) is visible.
		 */
		boolean isVisible() {
			return hoverShell.isVisible();
		}
		/*
		 * Compute the extent of the hover for the current text.
		 */
		Point getExtent() {
			GC gc = new GC(hoverShell);
			Point e = gc.textExtent(text);
			gc.dispose();
			e.x += hm * 2;