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
\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
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