]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.views.swt.client/src/org/simantics/views/swt/client/impl/SWTBrowser.java
Several Wiki documentation view improvements.
[simantics/platform.git] / bundles / org.simantics.views.swt.client / src / org / simantics / views / swt / client / impl / SWTBrowser.java
index 6df6bdaad3e14cdb419fc7c0697aaf215897d211..5c4d212691151c92813a1aea9a501cacbb67119b 100644 (file)
@@ -3,8 +3,11 @@ package org.simantics.views.swt.client.impl;
 import org.eclipse.jface.layout.GridDataFactory;\r
 import org.eclipse.jface.layout.GridLayoutFactory;\r
 import org.eclipse.swt.browser.Browser;\r
+import org.eclipse.swt.browser.LocationEvent;\r
+import org.eclipse.swt.browser.LocationListener;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.simantics.db.layer0.variable.Variable;\r
+import org.simantics.scl.runtime.function.Function1;\r
 import org.simantics.utils.datastructures.map.Tuple;\r
 import org.simantics.views.swt.client.base.SingleSWTViewNode;\r
 \r
@@ -12,10 +15,11 @@ public class SWTBrowser extends SingleSWTViewNode<Browser> {
        \r
        private static final long serialVersionUID = -2704760050046054447L;\r
        \r
-       public String                   document;\r
-       public Variable                                 variable;\r
+       public String                     document;\r
+       public Variable                   variable;\r
+       public Function1<Object, Boolean> locationChanging;\r
 \r
-       private Tuple                    lastAppliedParametrization;\r
+       private Tuple                     lastAppliedParametrization;\r
 \r
        @Override\r
        public void reset() {\r
@@ -32,6 +36,18 @@ public class SWTBrowser extends SingleSWTViewNode<Browser> {
                control = new Browser(parent, style);\r
                GridDataFactory.fillDefaults().grab(true, true).applyTo(control);\r
 \r
+               control.addLocationListener(new LocationListener() {\r
+                       @Override\r
+                       public void changing(LocationEvent event) {\r
+                               Function1<Object, Boolean> lc = locationChanging;\r
+                               if (lc != null)\r
+                                       lc.apply(event);\r
+                       }\r
+                       @Override\r
+                       public void changed(LocationEvent event) {\r
+                       }\r
+               });\r
+\r
                setProperties();\r
 \r
        }\r