Skip to content

Commit

Permalink
click-on-url improved for JavaFX when slow-loading images are referen…
Browse files Browse the repository at this point in the history
…ced in the preview #121
  • Loading branch information
ahus1 committed Aug 20, 2016
1 parent e1b7c5d commit 33820a1
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 17 deletions.
3 changes: 2 additions & 1 deletion META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@

<change-notes><![CDATA[
<ul>
<li>0.15.2 fixed detection of Mac 64 JVM to be able to activate JavaFX preview</li>
<li>0.15.2 fixed detection of Mac 64 JVM to be able to activate JavaFX preview
<br />click-on-url for JavaFX improved, when slow-loading external images are referenced</li>
<li>0.15.1 revised constrained/unconstrained detection
<br />Fix situation in syntax highlighting leading to PSI Parser Exceptions
<br />refreshing images on JavaFX only if their content has changed to save memory consumption
Expand Down
1 change: 1 addition & 0 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ If you want to use JavaFX preview, you'll need to run IntelliJ with 64bit Java.
=== 0.15.2 (preview, available from Github releases)

- fixed detection of Mac 64 JVM to be able to activate JavaFX preview
- click-on-url for JavaFX improved, when slow-loading external images are referenced

=== 0.15.1 (preview, available from Github releases)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -328,9 +328,15 @@ public void log(@Nullable String text) {
private class BridgeSettingListener implements ChangeListener<State> {
@Override
public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) {
JSObject win
= (JSObject)getWebViewGuaranteed().getEngine().executeScript("window");
win.setMember("JavaPanelBridge", new JavaPanelBridge());
if (newValue == State.SUCCEEDED) {
JSObject win
= (JSObject)getWebViewGuaranteed().getEngine().executeScript("window");
win.setMember("JavaPanelBridge", new JavaPanelBridge());
JavaFxHtmlPanel.this.getWebViewGuaranteed().getEngine().executeScript(
"if ('__IntelliJTools' in window) " +
"__IntelliJTools.processLinks();"
);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ if (window.__IntelliJTools === undefined) {
window.__IntelliJTools = {}
}

(function() {
var openInExternalBrowser = function(href) {
window.__IntelliJTools.processLinks = (function () {
var openInExternalBrowser = function (href) {
window.JavaPanelBridge.openInExternalBrowser(href);
}

window.__IntelliJTools.processClick = function() {
window.__IntelliJTools.processClick = function () {
if (!this.href) {
return false;
}
Expand All @@ -26,17 +26,18 @@ if (window.__IntelliJTools === undefined) {
return false;
}

window.onload = function() {
setTimeout(function () {
var links = document.getElementsByTagName("a");
//window.JavaPanelBridge.log(links.length)
for (var i = 0; i < links.length; ++i) {
var link = links[i];
var processLinks = function () {
var links = document.getElementsByTagName("a");
// window.JavaPanelBridge.log(links.length)
for (var i = 0; i < links.length; ++i) {
var link = links[i];

link.onclick = __IntelliJTools.processClick
//window.JavaPanelBridge.log(link + ' ' + link.onclick)
}
}, 100)
link.onclick = __IntelliJTools.processClick
// window.JavaPanelBridge.log(link + ' ' + link.onclick)
}
}

return processLinks;

})()

0 comments on commit 33820a1

Please sign in to comment.