]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ui/src/org/argeo/cms/ui/CmsUiProvider.java
Merge remote-tracking branch 'origin/master' into v2.x
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / ui / CmsUiProvider.java
1 package org.argeo.cms.ui;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5
6 import org.eclipse.swt.widgets.Composite;
7 import org.eclipse.swt.widgets.Control;
8
9 /** Stateless factory building an SWT user interface given a JCR context. */
10 @FunctionalInterface
11 public interface CmsUiProvider extends MvcProvider<Composite, Node, Control> {
12 /**
13 * Initialises a user interface.
14 *
15 * @param parent the parent composite
16 * @param context a context node (holding the JCR underlying session), or null
17 */
18 Control createUi(Composite parent, Node context) throws RepositoryException;
19
20 @Override
21 default Control createUiPart(Composite parent, Node context) {
22 try {
23 return createUi(parent, context);
24 } catch (RepositoryException e) {
25 throw new IllegalStateException("Cannot create UI for context " + context, e);
26 }
27 }
28
29 }