package org.eclipse.stem.ui.grapheditor; | |
import org.eclipse.draw2d.ColorConstants; | |
import org.eclipse.swt.SWT; | |
import org.eclipse.swt.events.ModifyEvent; | |
import org.eclipse.swt.events.ModifyListener; | |
import org.eclipse.swt.graphics.Point; | |
import org.eclipse.swt.widgets.Composite; | |
import org.eclipse.swt.widgets.Text; | |
public class DynamicText extends Text implements ModifyListener { | |
public DynamicText(Composite parent, boolean editable) { | |
super(parent, SWT.NONE); | |
addModifyListener(this); | |
setEditable(editable); | |
setBackground(ColorConstants.white); | |
} | |
@Override | |
public Point computeSize(int wHint, int hHint, boolean changed) { | |
Point size = super.computeSize(wHint, hHint, changed); | |
if (getEditable()) { | |
return new Point(size.x + 10, size.y); | |
} else { | |
return size; | |
} | |
} | |
@Override | |
protected void checkSubclass() { | |
} | |
@Override | |
public void modifyText(ModifyEvent e) { | |
getParent().layout(true); | |
} | |
} |