1 package org
.argeo
.slc
.akb
.ui
.composites
;
4 import javax
.jcr
.Property
;
6 import org
.argeo
.slc
.akb
.ui
.AkbUiUtils
;
7 import org
.eclipse
.swt
.SWT
;
8 import org
.eclipse
.swt
.layout
.GridData
;
9 import org
.eclipse
.swt
.layout
.GridLayout
;
10 import org
.eclipse
.swt
.widgets
.Composite
;
11 import org
.eclipse
.swt
.widgets
.Label
;
12 import org
.eclipse
.swt
.widgets
.Text
;
13 import org
.eclipse
.ui
.forms
.AbstractFormPart
;
14 import org
.eclipse
.ui
.forms
.IManagedForm
;
15 import org
.eclipse
.ui
.forms
.widgets
.FormToolkit
;
17 public class MixTitleComposite
extends Composite
{
18 // private final static Log log =
19 // LogFactory.getLog(MixTitleComposite.class);
21 private final Node akbNode
;
22 private final FormToolkit toolkit
;
23 private final IManagedForm form
;
24 // Don't forget to unregister on dispose
25 private AbstractFormPart formPart
;
27 // To enable set focus
28 private Text titleTxt
;
30 public MixTitleComposite(Composite parent
, int style
, FormToolkit toolkit
,
31 IManagedForm form
, Node akbNode
) {
33 this.akbNode
= akbNode
;
34 this.toolkit
= toolkit
;
40 private void populate() {
42 Composite parent
= this;
44 parent
.setLayout(new GridLayout(2, false));
46 // first line: connector name
47 toolkit
.createLabel(parent
, "Name");
48 titleTxt
= toolkit
.createText(parent
, "", SWT
.BORDER
);
49 GridData gd
= new GridData(SWT
.FILL
, SWT
.TOP
, true, false);
50 titleTxt
.setLayoutData(gd
);
52 // 2nd line: description
53 Label lbl
= toolkit
.createLabel(parent
, "Description");
54 lbl
.setLayoutData(new GridData(SWT
.LEFT
, SWT
.TOP
, false, false));
55 final Text descTxt
= toolkit
.createText(parent
, "", SWT
.BORDER
56 | SWT
.MULTI
| SWT
.WRAP
);
57 gd
= new GridData(SWT
.FILL
, SWT
.FILL
, true, true);
58 descTxt
.setLayoutData(gd
);
61 final AbstractFormPart part
= new AbstractFormPart() {
62 public void refresh() {
64 // update display value
65 AkbUiUtils
.refreshFormTextWidget(titleTxt
, akbNode
,
67 AkbUiUtils
.refreshFormTextWidget(descTxt
, akbNode
,
68 Property
.JCR_DESCRIPTION
);
72 AkbUiUtils
.addTextModifyListener(titleTxt
, akbNode
, Property
.JCR_TITLE
,
74 AkbUiUtils
.addTextModifyListener(descTxt
, akbNode
,
75 Property
.JCR_DESCRIPTION
, part
);
80 public boolean setFocus() {
81 return titleTxt
.setFocus();
84 protected void disposePart(AbstractFormPart part
) {
86 form
.removePart(part
);
92 public void dispose() {
93 disposePart(formPart
);