]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ui/src/org/argeo/cms/ui/fm/FmUiProvider.java
1 package org
.argeo
.cms
.ui
.fm
;
4 import java
.io
.IOException
;
5 import java
.io
.StringWriter
;
6 import java
.util
.HashMap
;
10 import javax
.jcr
.RepositoryException
;
12 import org
.argeo
.cms
.ui
.CmsUiProvider
;
13 import org
.argeo
.fm
.jcr
.JcrModel
;
14 import org
.eclipse
.swt
.SWT
;
15 import org
.eclipse
.swt
.browser
.Browser
;
16 import org
.eclipse
.swt
.widgets
.Composite
;
17 import org
.eclipse
.swt
.widgets
.Control
;
19 import freemarker
.template
.Configuration
;
20 import freemarker
.template
.Template
;
21 import freemarker
.template
.TemplateExceptionHandler
;
23 public class FmUiProvider
implements CmsUiProvider
{
24 static Configuration cfg
;
27 cfg
= new Configuration(Configuration
.VERSION_2_3_28
);
28 cfg
.setDirectoryForTemplateLoading(new File(System
.getProperty("user.home") + File
.separator
+ "dev"
29 + File
.separator
+ "work" + File
.separator
+ "ftl"));
30 cfg
.setDefaultEncoding("UTF-8");
31 cfg
.setTemplateExceptionHandler(TemplateExceptionHandler
.HTML_DEBUG_HANDLER
);
32 cfg
.setLogTemplateExceptions(false);
33 cfg
.setWrapUncheckedExceptions(true);
34 } catch (IOException e
) {
35 // TODO Auto-generated catch block
40 private String template
;
42 public FmUiProvider(String template
) {
43 this.template
= template
;
47 public Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
48 Browser browser
= new Browser(parent
, SWT
.NONE
);
50 Map
<String
, Object
> root
= new HashMap
<>();
52 root
.put("node", new JcrModel(context
));
53 root
.put("basePath", "./");
55 Template temp
= cfg
.getTemplate(template
);
56 StringWriter out
= new StringWriter();
57 temp
.process(root
, out
);
58 browser
.setText(out
.toString());
59 } catch (Exception e
) {
60 // TODO Auto-generated catch block