]>
git.argeo.org Git - gpl/argeo-jcr.git/blob - org.argeo.cms.jcr.ui/src/org/argeo/cms/ui/CmsUiProvider.java
1 package org
.argeo
.cms
.ui
;
4 import javax
.jcr
.RepositoryException
;
6 import org
.argeo
.api
.acr
.Content
;
7 import org
.argeo
.cms
.jcr
.acr
.JcrContent
;
8 import org
.argeo
.cms
.swt
.acr
.SwtUiProvider
;
9 import org
.argeo
.jcr
.JcrException
;
10 import org
.eclipse
.swt
.widgets
.Composite
;
11 import org
.eclipse
.swt
.widgets
.Control
;
13 /** Stateless factory building an SWT user interface given a JCR context. */
14 public interface CmsUiProvider
extends SwtUiProvider
{
16 * Initialises a user interface.
18 * @param parent the parent composite
19 * @param context a context node (holding the JCR underlying session), or null
21 default Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
22 // does nothing by default
26 default Control
createUiPart(Composite parent
, Node context
) {
28 return createUi(parent
, context
);
29 } catch (RepositoryException e
) {
30 throw new JcrException("Cannot create UI for context " + context
, e
);
35 default Control
createUiPart(Composite parent
, Content context
) {
37 return createUiPart(parent
, (Node
) null);
38 if (context
instanceof JcrContent
) {
39 Node node
= ((JcrContent
) context
).getJcrNode();
40 return createUiPart(parent
, node
);
42 // CmsLog.getLog(CmsUiProvider.class)
43 // .warn("In " + getClass() + ", content " + context + " is not compatible with JCR.");
44 // return createUiPart(parent, (Node) null);
46 throw new IllegalArgumentException(
47 "In " + getClass() + ", content " + context
+ " is not compatible with JCR");