]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.views.swt.client/src/org/simantics/views/swt/client/impl/SWTBrowser.java
Sync git svn branch with SVN repository r33153.
[simantics/platform.git] / bundles / org.simantics.views.swt.client / src / org / simantics / views / swt / client / impl / SWTBrowser.java
1 package org.simantics.views.swt.client.impl;\r
2 \r
3 import org.eclipse.jface.layout.GridDataFactory;\r
4 import org.eclipse.jface.layout.GridLayoutFactory;\r
5 import org.eclipse.swt.browser.Browser;\r
6 import org.eclipse.swt.browser.LocationEvent;\r
7 import org.eclipse.swt.browser.LocationListener;\r
8 import org.eclipse.swt.widgets.Composite;\r
9 import org.simantics.db.layer0.variable.Variable;\r
10 import org.simantics.scl.runtime.function.Function1;\r
11 import org.simantics.utils.datastructures.map.Tuple;\r
12 import org.simantics.views.swt.client.base.SingleSWTViewNode;\r
13 \r
14 public class SWTBrowser extends SingleSWTViewNode<Browser> {\r
15         \r
16         private static final long serialVersionUID = -2704760050046054447L;\r
17         \r
18         public String                     document;\r
19         public Variable                   variable;\r
20         public Function1<Object, Boolean> locationChanging;\r
21 \r
22         private Tuple                     lastAppliedParametrization;\r
23 \r
24         @Override\r
25         public void reset() {\r
26                 super.reset();\r
27                 lastAppliedParametrization = null;\r
28         }\r
29         \r
30         @Override\r
31         public void createControls(Composite parent) {\r
32 \r
33                 GridDataFactory.fillDefaults().grab(true, true).applyTo(parent);\r
34                 GridLayoutFactory.fillDefaults().applyTo(parent);\r
35 \r
36                 control = new Browser(parent, style);\r
37                 GridDataFactory.fillDefaults().grab(true, true).applyTo(control);\r
38 \r
39                 control.addLocationListener(new LocationListener() {\r
40                         @Override\r
41                         public void changing(LocationEvent event) {\r
42                                 Function1<Object, Boolean> lc = locationChanging;\r
43                                 if (lc != null)\r
44                                         lc.apply(event);\r
45                         }\r
46                         @Override\r
47                         public void changed(LocationEvent event) {\r
48                         }\r
49                 });\r
50 \r
51                 setProperties();\r
52 \r
53         }\r
54 \r
55         public void synchronizeVariable(Variable variable) {\r
56                 \r
57         }\r
58 \r
59         public void synchronizeDocument(final String document) {\r
60                 \r
61                 if(document != null) {\r
62                         \r
63                         final Variable variable = SWTBrowser.this.variable;\r
64                         if (variable == null) {\r
65                                 return;\r
66                         }\r
67 \r
68                         Tuple checkParam = new Tuple(document, variable);\r
69                         if (checkParam.equals(lastAppliedParametrization))\r
70                                 return;\r
71                         \r
72                         lastAppliedParametrization = checkParam;\r
73                                 \r
74                         final Browser control = this.control;\r
75                         if (control == null)\r
76                                 return;\r
77                         control.setText(document);\r
78                         \r
79                 }\r
80         }\r
81 \r
82 }\r