X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.views.swt.client%2Fsrc%2Forg%2Fsimantics%2Fviews%2Fswt%2Fclient%2Fimpl%2FSWTBrowser.java;h=a49c8385c17993512be9cec8afb11b709ba15285;hb=b7250834202635a09dd18e25370ed9b4c32b1380;hp=6df6bdaad3e14cdb419fc7c0697aaf215897d211;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.views.swt.client/src/org/simantics/views/swt/client/impl/SWTBrowser.java b/bundles/org.simantics.views.swt.client/src/org/simantics/views/swt/client/impl/SWTBrowser.java index 6df6bdaad..a49c8385c 100644 --- a/bundles/org.simantics.views.swt.client/src/org/simantics/views/swt/client/impl/SWTBrowser.java +++ b/bundles/org.simantics.views.swt.client/src/org/simantics/views/swt/client/impl/SWTBrowser.java @@ -1,66 +1,82 @@ -package org.simantics.views.swt.client.impl; - -import org.eclipse.jface.layout.GridDataFactory; -import org.eclipse.jface.layout.GridLayoutFactory; -import org.eclipse.swt.browser.Browser; -import org.eclipse.swt.widgets.Composite; -import org.simantics.db.layer0.variable.Variable; -import org.simantics.utils.datastructures.map.Tuple; -import org.simantics.views.swt.client.base.SingleSWTViewNode; - -public class SWTBrowser extends SingleSWTViewNode { - - private static final long serialVersionUID = -2704760050046054447L; - - public String document; - public Variable variable; - - 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 synchronizeDocument(final String document) { - - if(document != null) { - - final Variable variable = SWTBrowser.this.variable; - if (variable == null) { - return; - } - - Tuple checkParam = new Tuple(document, variable); - if (checkParam.equals(lastAppliedParametrization)) - return; - - lastAppliedParametrization = checkParam; - - final Browser control = this.control; - if (control == null) - return; - control.setText(document); - - } - } - -} +package org.simantics.views.swt.client.impl; + +import org.eclipse.jface.layout.GridDataFactory; +import org.eclipse.jface.layout.GridLayoutFactory; +import org.eclipse.swt.browser.Browser; +import org.eclipse.swt.browser.LocationEvent; +import org.eclipse.swt.browser.LocationListener; +import org.eclipse.swt.widgets.Composite; +import org.simantics.db.layer0.variable.Variable; +import org.simantics.scl.runtime.function.Function1; +import org.simantics.utils.datastructures.map.Tuple; +import org.simantics.views.swt.client.base.SingleSWTViewNode; + +public class SWTBrowser extends SingleSWTViewNode { + + private static final long serialVersionUID = -2704760050046054447L; + + public String document; + public Variable variable; + public Function1 locationChanging; + + 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); + + control.addLocationListener(new LocationListener() { + @Override + public void changing(LocationEvent event) { + Function1 lc = locationChanging; + if (lc != null) + lc.apply(event); + } + @Override + public void changed(LocationEvent event) { + } + }); + + setProperties(); + + } + + public void synchronizeVariable(Variable variable) { + + } + + public void synchronizeDocument(final String document) { + + if(document != null) { + + final Variable variable = SWTBrowser.this.variable; + if (variable == null) { + return; + } + + Tuple checkParam = new Tuple(document, variable); + if (checkParam.equals(lastAppliedParametrization)) + return; + + lastAppliedParametrization = checkParam; + + final Browser control = this.control; + if (control == null) + return; + control.setText(document); + + } + } + +}