Has anyone played with JGraphx?

gLib = 'C:\\Program Files\\Inductive Automation\\Ignition\\lib\\core\\designer\\jgraphx.jar'

import sys
sys.path.append(gLib)

from javax.swing import JFrame
from com.mxgraph.swing import mxGraphComponent
from com.mxgraph.view import mxGraph

class HelloWorld(JFrame):
	def example(self):
		graph = mxGraph()
		parent = graph.getDefaultParent()
		graph.getModel().beginUpdate()
		v1 = graph.insertVertex(parent, None, "Hello", 20, 20, 80, 30)
		v2 = graph.insertVertex(parent, None, "World!", 240, 150, 80, 30)
		graph.insertEdge(parent, None, "Edge", v1, v2)
		graph.getModel().endUpdate()
		graphComponent = mxGraphComponent(graph)
		self.getContentPane().add(graphComponent)
	
frame = HelloWorld()
frame.example()
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)
frame.setSize(400, 320)
frame.setVisible(True)
1 Like

Intriguing. Not familiar with this package, but could you use the mxGraph() object in a script playground instead of wrapping it in a component?

Here is the graph in a container.

gLib = 'C:\\temp\\jgraphx.jar'

import sys
sys.path.append(gLib)

from javax.swing import JFrame
from com.mxgraph.swing import mxGraphComponent
from com.mxgraph.view import mxGraph

#pane = event.source.parent.parent.parent.getContentPane()
pane = event.source.parent.getComponent('contGraph')
graph = mxGraph()
parent = graph.getDefaultParent()
graph.getModel().beginUpdate()
v1 = graph.insertVertex(parent, None, "Hello", 20, 20, 80, 30)
v2 = graph.insertVertex(parent, None, "World!", 240, 150, 80, 30)
graph.insertEdge(parent, None, "Edge", v1, v2)
graph.getModel().endUpdate()
graphComponent = mxGraphComponent(graph)
pane.addComponent(graphComponent)
system.gui.resizeComponent(graphComponent,pane.width,pane.height)