1 package org
.argeo
.cms
.ui
.util
;
3 import java
.util
.ArrayList
;
7 import javax
.jcr
.RepositoryException
;
9 import org
.argeo
.cms
.CmsException
;
10 import org
.argeo
.cms
.ui
.CmsStyles
;
11 import org
.argeo
.cms
.ui
.CmsUiProvider
;
12 import org
.eclipse
.rap
.rwt
.RWT
;
13 import org
.eclipse
.swt
.SWT
;
14 import org
.eclipse
.swt
.layout
.GridData
;
15 import org
.eclipse
.swt
.layout
.GridLayout
;
16 import org
.eclipse
.swt
.widgets
.Composite
;
17 import org
.eclipse
.swt
.widgets
.Control
;
19 /** A header in three parts */
20 public class SimpleCmsHeader
implements CmsUiProvider
{
21 private List
<CmsUiProvider
> lead
= new ArrayList
<CmsUiProvider
>();
22 private List
<CmsUiProvider
> center
= new ArrayList
<CmsUiProvider
>();
23 private List
<CmsUiProvider
> end
= new ArrayList
<CmsUiProvider
>();
25 private Boolean subPartsSameWidth
= false;
28 public Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
29 Composite header
= new Composite(parent
, SWT
.NONE
);
30 header
.setData(RWT
.CUSTOM_VARIANT
, CmsStyles
.CMS_HEADER
);
31 header
.setBackgroundMode(SWT
.INHERIT_DEFAULT
);
32 header
.setLayout(CmsUiUtils
.noSpaceGridLayout(new GridLayout(3, false)));
34 configurePart(context
, header
, lead
);
35 configurePart(context
, header
, center
);
36 configurePart(context
, header
, end
);
40 protected void configurePart(Node context
, Composite parent
, List
<CmsUiProvider
> partProviders
)
41 throws RepositoryException
{
44 if (lead
== partProviders
) {
46 custom
= CmsStyles
.CMS_HEADER_LEAD
;
47 } else if (center
== partProviders
) {
49 custom
= CmsStyles
.CMS_HEADER_CENTER
;
50 } else if (end
== partProviders
) {
52 custom
= CmsStyles
.CMS_HEADER_END
;
54 throw new CmsException("Unsupported part providers " + partProviders
);
57 Composite part
= new Composite(parent
, SWT
.NONE
);
58 part
.setData(RWT
.CUSTOM_VARIANT
, custom
);
59 GridData gridData
= new GridData(style
, SWT
.FILL
, true, true);
60 part
.setLayoutData(gridData
);
61 part
.setLayout(CmsUiUtils
.noSpaceGridLayout(new GridLayout(partProviders
.size(), subPartsSameWidth
)));
62 for (CmsUiProvider uiProvider
: partProviders
) {
63 Control subPart
= uiProvider
.createUi(part
, context
);
64 subPart
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
68 public void setLead(List
<CmsUiProvider
> lead
) {
72 public void setCenter(List
<CmsUiProvider
> center
) {
76 public void setEnd(List
<CmsUiProvider
> end
) {
80 public void setSubPartsSameWidth(Boolean subPartsSameWidth
) {
81 this.subPartsSameWidth
= subPartsSameWidth
;
84 public List
<CmsUiProvider
> getLead() {
88 public List
<CmsUiProvider
> getCenter() {
92 public List
<CmsUiProvider
> getEnd() {