-package org.simantics.views.swt.client.impl;\r
-\r
-import java.io.IOException;\r
-\r
-import org.eclipse.jface.layout.GridDataFactory;\r
-import org.eclipse.jface.layout.GridLayoutFactory;\r
-import org.eclipse.mylyn.wikitext.core.parser.MarkupParser;\r
-import org.eclipse.swt.browser.Browser;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.simantics.Simantics;\r
-import org.simantics.browsing.ui.common.ErrorLogger;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.variable.Variable;\r
-import org.simantics.db.request.Read;\r
-import org.simantics.scl.runtime.function.Function1;\r
-import org.simantics.utils.FileUtils;\r
-import org.simantics.utils.datastructures.map.Tuple;\r
-import org.simantics.utils.ui.BundleUtils;\r
-import org.simantics.views.swt.client.base.SingleSWTViewNode;\r
-import org.simantics.wiki.ui.SimanticsDialect;\r
-import org.simantics.wiki.ui.language.MediaWikiLanguage;\r
-\r
-public class SWTWikiBrowser extends SingleSWTViewNode<Browser> {\r
-\r
- private static final long serialVersionUID = 5826022972081217837L;\r
- \r
- public String document;\r
- public Variable variable;\r
- public Function1<String, Boolean> navigate;\r
- public Variable edited;\r
-\r
- private Tuple lastAppliedParametrization;\r
-\r
- @Override\r
- public void reset() {\r
- super.reset();\r
- lastAppliedParametrization = null;\r
- }\r
- \r
- @Override\r
- public void createControls(Composite parent) {\r
-\r
- GridDataFactory.fillDefaults().grab(true, true).applyTo(parent);\r
- GridLayoutFactory.fillDefaults().applyTo(parent);\r
-\r
- control = new Browser(parent, style);\r
- GridDataFactory.fillDefaults().grab(true, true).applyTo(control);\r
-\r
- setProperties();\r
-\r
- }\r
-\r
- public void synchronizeVariable(Variable variable) {\r
- \r
- }\r
- \r
- public void synchronizeEdited(Variable edited) {\r
- propertyCallback.apply("edited", edited);\r
- }\r
-\r
- public void synchronizeDocument(final String document) {\r
- \r
- if(document != null) {\r
- \r
- final Variable variable = SWTWikiBrowser.this.variable;\r
- if (variable == null) {\r
- return;\r
- }\r
-\r
- Tuple checkParam = new Tuple(document, variable);\r
- if (checkParam.equals(lastAppliedParametrization))\r
- return;\r
- \r
- lastAppliedParametrization = checkParam;\r
-\r
- try {\r
- \r
- String markup = Simantics.getSession().syncRequest(new Read<String>() {\r
- @Override\r
- public String perform(ReadGraph graph) throws DatabaseException {\r
- return SimanticsDialect.INSTANCE.apply(graph, variable, document);\r
- }\r
- });\r
-\r
- MarkupParser markupParser = new MarkupParser();\r
- MediaWikiLanguage language = new MediaWikiLanguage();\r
- markupParser.setMarkupLanguage(language);\r
- String htmlContent = markupParser.parseToHtml(markup);\r
- if (htmlContent == null)\r
- return;\r
- \r
- final Browser control = this.control;\r
- if (control == null)\r
- return;\r
- control.setText(htmlContent);\r
- \r
- } catch (DatabaseException e) {\r
- ErrorLogger.defaultLogError(e);\r
- } \r
- \r
- }\r
- }\r
-\r
-}\r
+package org.simantics.views.swt.client.impl;
+
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.mylyn.wikitext.parser.MarkupParser;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.widgets.Composite;
+import org.simantics.Simantics;
+import org.simantics.browsing.ui.common.ErrorLogger;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.db.request.Read;
+import org.simantics.scl.runtime.function.Function1;
+import org.simantics.utils.datastructures.map.Tuple;
+import org.simantics.views.swt.client.base.SingleSWTViewNode;
+import org.simantics.wiki.ui.SimanticsDialect;
+import org.simantics.wiki.ui.language.MediaWikiLanguage;
+
+public class SWTWikiBrowser extends SingleSWTViewNode<Browser> {
+
+ private static final long serialVersionUID = 5826022972081217837L;
+
+ public String document;
+ public Variable variable;
+ public Function1<String, Boolean> navigate;
+ public Variable edited;
+
+ private Tuple lastAppliedParametrization;
+
+ @Override
+ public void reset() {
+ super.reset();
+ lastAppliedParametrization = null;
+ }
+
+ @Override
+ public void createControls(Composite parent) {
+
+ GridDataFactory.fillDefaults().grab(true, true).applyTo(parent);
+ GridLayoutFactory.fillDefaults().applyTo(parent);
+
+ control = new Browser(parent, style);
+ GridDataFactory.fillDefaults().grab(true, true).applyTo(control);
+
+ setProperties();
+
+ }
+
+ public void synchronizeVariable(Variable variable) {
+
+ }
+
+ public void synchronizeEdited(Variable edited) {
+ propertyCallback.apply("edited", edited);
+ }
+
+ public void synchronizeDocument(final String document) {
+
+ if(document != null) {
+
+ final Variable variable = SWTWikiBrowser.this.variable;
+ if (variable == null) {
+ return;
+ }
+
+ Tuple checkParam = new Tuple(document, variable);
+ if (checkParam.equals(lastAppliedParametrization))
+ return;
+
+ lastAppliedParametrization = checkParam;
+
+ try {
+
+ String markup = Simantics.getSession().syncRequest(new Read<String>() {
+ @Override
+ public String perform(ReadGraph graph) throws DatabaseException {
+ return SimanticsDialect.INSTANCE.apply(graph, variable, document);
+ }
+ });
+
+ MarkupParser markupParser = new MarkupParser();
+ MediaWikiLanguage language = new MediaWikiLanguage();
+ markupParser.setMarkupLanguage(language);
+ String htmlContent = markupParser.parseToHtml(markup);
+ if (htmlContent == null)
+ return;
+
+ final Browser control = this.control;
+ if (control == null)
+ return;
+ control.setText(htmlContent);
+
+ } catch (DatabaseException e) {
+ ErrorLogger.defaultLogError(e);
+ }
+
+ }
+ }
+
+}