import javax.jcr.Item;
-import org.argeo.cms.ui.CmsConstants;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.ui.CmsUiConstants;
import org.argeo.eclipse.ui.specific.EclipseUiSpecificUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.widgets.Control;
/** Editable text part displaying styled text. */
-public abstract class StyledControl extends JcrComposite implements CmsConstants {
+public abstract class StyledControl extends JcrComposite implements CmsUiConstants {
private static final long serialVersionUID = -6372283442330912755L;
private Control control;
private Boolean editing = Boolean.FALSE;
+ private Composite ancestorToLayout;
+
public StyledControl(Composite parent, int swtStyle) {
super(parent, swtStyle);
- setLayout(CmsUiUtils.noSpaceGridLayout());
+ setLayout(CmsSwtUtils.noSpaceGridLayout());
}
public StyledControl(Composite parent, int style, Item item) {
protected Composite createBox() {
Composite box = new Composite(container, SWT.INHERIT_DEFAULT);
setContainerLayoutData(box);
- box.setLayout(CmsUiUtils.noSpaceGridLayout(3));
+ box.setLayout(CmsSwtUtils.noSpaceGridLayout(3));
return box;
}
protected Composite createContainer() {
- Composite box = new Composite(this, SWT.INHERIT_DEFAULT);
- setContainerLayoutData(box);
- box.setLayout(CmsUiUtils.noSpaceGridLayout());
- return box;
+ Composite container = new Composite(this, SWT.INHERIT_DEFAULT);
+ setContainerLayoutData(container);
+ container.setLayout(CmsSwtUtils.noSpaceGridLayout());
+ return container;
}
public Control getControl() {
// int height = control.getSize().y;
String style = (String) EclipseUiSpecificUtils.getStyleData(control);
clear(false);
- control = createControl(box, style);
- setControlLayoutData(control);
+ refreshControl(style);
// add the focus listener to the newly created edition control
if (focusListener != null)
editing = false;
String style = (String) EclipseUiSpecificUtils.getStyleData(control);
clear(false);
+ refreshControl(style);
+ }
+
+ protected void refreshControl(String style) {
control = createControl(box, style);
setControlLayoutData(control);
+ if (ancestorToLayout != null)
+ ancestorToLayout.layout(true, true);
+ else
+ getParent().layout(true, true);
}
public void setStyle(String style) {
if (currentStyle != null && currentStyle.equals(style))
return;
- // Integer preferredHeight = control != null ? control.getSize().y :
- // null;
clear(true);
- control = createControl(box, style);
- setControlLayoutData(control);
+ refreshControl(style);
if (style != null) {
- CmsUiUtils.style(box, style + "_box");
- CmsUiUtils.style(container, style + "_container");
+ CmsSwtUtils.style(box, style + "_box");
+ CmsSwtUtils.style(container, style + "_container");
}
}
/** To be overridden */
protected void setControlLayoutData(Control control) {
- control.setLayoutData(CmsUiUtils.fillWidth());
+ control.setLayoutData(CmsSwtUtils.fillWidth());
}
/** To be overridden */
protected void setContainerLayoutData(Composite composite) {
- composite.setLayoutData(CmsUiUtils.fillWidth());
+ composite.setLayoutData(CmsSwtUtils.fillWidth());
}
protected void clear(boolean deep) {
if (control != null && this.focusListener != null)
control.addFocusListener(focusListener);
}
+
+ public void setAncestorToLayout(Composite ancestorToLayout) {
+ this.ancestorToLayout = ancestorToLayout;
+ }
+
}