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)