3 import java
.util
.ArrayList
;
7 import javax
.jcr
.RepositoryException
;
9 import org
.eclipse
.rap
.rwt
.RWT
;
10 import org
.eclipse
.swt
.SWT
;
11 import org
.eclipse
.swt
.layout
.GridData
;
12 import org
.eclipse
.swt
.layout
.GridLayout
;
13 import org
.eclipse
.swt
.widgets
.Composite
;
14 import org
.eclipse
.swt
.widgets
.Control
;
16 /** A header in three parts */
17 public class SimpleCmsHeader
implements CmsUiProvider
{
18 private List
<CmsUiProvider
> lead
= new ArrayList
<CmsUiProvider
>();
19 private List
<CmsUiProvider
> center
= new ArrayList
<CmsUiProvider
>();
20 private List
<CmsUiProvider
> end
= new ArrayList
<CmsUiProvider
>();
22 private Boolean subPartsSameWidth
= false;
25 public Control
createUi(Composite parent
, Node context
)
26 throws RepositoryException
{
27 Composite header
= new Composite(parent
, SWT
.NONE
);
28 header
.setData(RWT
.CUSTOM_VARIANT
, CmsStyles
.CMS_HEADER
);
29 header
.setBackgroundMode(SWT
.INHERIT_DEFAULT
);
30 header
.setLayout(CmsUtils
.noSpaceGridLayout(new GridLayout(3, false)));
32 configurePart(context
, header
, lead
);
33 configurePart(context
, header
, center
);
34 configurePart(context
, header
, end
);
38 protected void configurePart(Node context
, Composite parent
,
39 List
<CmsUiProvider
> partProviders
) throws RepositoryException
{
42 if (lead
== partProviders
) {
44 custom
= CmsStyles
.CMS_HEADER_LEAD
;
45 } else if (center
== partProviders
) {
47 custom
= CmsStyles
.CMS_HEADER_CENTER
;
48 } else if (end
== partProviders
) {
50 custom
= CmsStyles
.CMS_HEADER_END
;
52 throw new CmsException("Unsupported part providers "
56 Composite part
= new Composite(parent
, SWT
.NONE
);
57 part
.setData(RWT
.CUSTOM_VARIANT
, custom
);
58 GridData gridData
= new GridData(style
, SWT
.FILL
, true, true);
59 part
.setLayoutData(gridData
);
60 part
.setLayout(CmsUtils
.noSpaceGridLayout(new GridLayout(partProviders
61 .size(), subPartsSameWidth
)));
62 for (CmsUiProvider uiProvider
: partProviders
) {
63 Control subPart
= uiProvider
.createUi(part
, context
);
64 subPart
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true,
69 public void setLead(List
<CmsUiProvider
> lead
) {
73 public void setCenter(List
<CmsUiProvider
> center
) {
77 public void setEnd(List
<CmsUiProvider
> end
) {
81 public void setSubPartsSameWidth(Boolean subPartsSameWidth
) {
82 this.subPartsSameWidth
= subPartsSameWidth
;