JxBrowser Usage

Hopefully this question doesn't require a team of lawyers.

I'd like to use JxBrowser in my module, but when I try to create a JxBrowser engine instance I get the following error:

com.teamdev.jxbrowser.engine.NoLicenseException
	at com.teamdev.jxbrowser.engine.internal.LicenseExceptionFactory.create(LicenseExceptionFactory.java:65)
	at com.teamdev.jxbrowser.engine.internal.EngineImpl.newInstance(EngineImpl.java:268)
	at com.teamdev.jxbrowser.engine.Engine.newInstance(Engine.java:163)
	at ...
  1. Does IA's JxBrowser license cover usage by module authors?
  2. Does the answer to #1 change if my module requires Perspective in order to run?
    • Basically, am I allowed to grab a reference to the designer's existing JxBrowser engine?

I would guess no based on this, but I don't know the we have a different license agreement or terms.

What are you ultimately trying to do? I would hazard a guess that referencing an existing JxBrowser instance is probably "more okay" than creating your own, but, uh, disclaimer: I am not a lawyer.

If you are intending to offer some kind of configuration UI in the designer, you should brush up on your java Swing and implement a Workspace.

I'd like to use Monaco as an editor for JavaScript resources.

An RSyntaxTextArea will do fine, I was mostly interested in it as an exercise/proof of concept.

The current progress:

4 Likes

:person_shrugging:
I am still not a lawyer, but, if you get a reference to the Perspective DesignerHook, then get the workspace, it has a getter for the JxB Engine... so you're not creating your own, you're just recycling the one we use.

1 Like

Off the thread topic, but while I have your attention, are the new 8.1 script editor improvements public?

PythonTextAreaEditActionHandler references com.inductiveautomation.ignition.designer.gui.tools.PythonTextArea, but there's no JavaDoc page for that class.

It's written in Kotlin, and our build isn't capable of producing and/or merging KDoc with Javadoc.

It's one of the reasons I rewrote the Device API interfaces back into Java

3 Likes

This is 8.3, but I think the only API difference is the change to the scriptHintTree/PackageTreeNode; in 8.1 you provide a ScriptHintMap.

The only 'gotcha' I remember adding to the documentation is that you should not directly modify the Document inside the inner RSTA - always interact with the text property.

If you just want to enrich autocomplete with something, go to the completion provider which has some relatively self explanatory methods:

CompletionDescriptor is a pretty basic hierarchy of data classes.

2 Likes