01: package fr.aliacom.form.swt.maker;
02:
03: import org.eclipse.swt.SWT;
04: import org.eclipse.swt.custom.CLabel;
05: import org.eclipse.swt.graphics.Image;
06: import org.eclipse.swt.widgets.Composite;
07: import org.w3c.dom.Element;
08:
09: import fr.aliacom.common.ui.IconFactory;
10: import fr.aliacom.form.common.FormComponentLoader;
11: import fr.aliacom.form.common.FormLoader;
12: import fr.aliacom.form.common.IFormComponent;
13: import fr.aliacom.form.swt.BuilderFactory;
14: import fr.aliacom.form.swt.SWTBuilder;
15: import fr.aliacom.form.swt.ui.SWTLabel;
16: import fr.aliacom.form.swt.utils.SWTUtils;
17:
18: /**
19: * @author tom
20: *
21: * (C) 2001, 2002 Thomas Cataldo
22: */
23: public final class LabelBuilder extends SWTBuilder {
24:
25: /**
26: * @see fr.aliacom.form.swt.SWTBuilder#build(Element, IFormComponent, FormLoader, BuilderFactory)
27: */
28: public IFormComponent build(Element elem, IFormComponent parent,
29: FormLoader loader, BuilderFactory factory) {
30: CLabel label = new CLabel((Composite) parent.getNativeWidget(),
31: SWT.NONE);
32: SWTLabel formLabel = new SWTLabel(label);
33: if (elem.hasAttribute("bean") && elem.hasAttribute("property")) {
34: formLabel.setProperty(elem.getAttribute("property"));
35: loader.addLoader(elem.getAttribute("bean"),
36: new FormComponentLoader(formLabel));
37: } else {
38: label.setText(getNodeText(elem));
39: if (elem.hasAttribute("icon")) {
40: Image img = (Image) IconFactory.get(
41: elem.getAttribute("icon")).getNativeWidget();
42: label.setImage(img);
43: SWTUtils.addDisposeHandler(label, img);
44: }
45: }
46:
47: return formLabel;
48: }
49:
50: }
|