📄 examplemain.java
字号:
package net.sourceforge.jpowergraph.examples;
import java.util.ArrayList;
import net.sourceforge.jpowergraph.DefaultEdge;
import net.sourceforge.jpowergraph.DefaultGraph;
import net.sourceforge.jpowergraph.Node;
import net.sourceforge.jpowergraph.examples.nodes.NodeType1;
import net.sourceforge.jpowergraph.examples.nodes.NodeType2;
import net.sourceforge.jpowergraph.examples.nodes.NodeType3;
import net.sourceforge.jpowergraph.layout.Layouter;
import net.sourceforge.jpowergraph.layout.SpringLayoutStrategy;
import net.sourceforge.jpowergraph.lens.CursorLens;
import net.sourceforge.jpowergraph.lens.LegendLens;
import net.sourceforge.jpowergraph.lens.LensSet;
import net.sourceforge.jpowergraph.lens.NodeFilterLens;
import net.sourceforge.jpowergraph.lens.NodeSizeLens;
import net.sourceforge.jpowergraph.lens.RotateLens;
import net.sourceforge.jpowergraph.lens.TooltipLens;
import net.sourceforge.jpowergraph.lens.TranslateLens;
import net.sourceforge.jpowergraph.lens.ZoomLens;
import net.sourceforge.jpowergraph.manipulator.contextandtooltip.ContextMenuAndToolTipManipulator;
import net.sourceforge.jpowergraph.manipulator.contextandtooltip.DefaultContextMenuListener;
import net.sourceforge.jpowergraph.manipulator.contextandtooltip.DefaultToolTipListener;
import net.sourceforge.jpowergraph.manipulator.dragging.DraggingManipulator;
import net.sourceforge.jpowergraph.manipulator.edgecreator.DefaultEdgeCreatorListener;
import net.sourceforge.jpowergraph.manipulator.edgecreator.EdgeCreatorManipulator;
import net.sourceforge.jpowergraph.manipulator.selection.DefaultNodeSelectionModel;
import net.sourceforge.jpowergraph.manipulator.selection.SelectionManipulator;
import net.sourceforge.jpowergraph.painters.LineEdgePainter;
import net.sourceforge.jpowergraph.painters.ShapeNodePainter;
import net.sourceforge.jpowergraph.pane.JGraphPane;
import net.sourceforge.jpowergraph.pane.JGraphScrollPane;
import net.sourceforge.jpowergraph.pane.JGraphViewPane;
import net.sourceforge.jpowergraph.viewcontrols.RotateControlPanel;
import net.sourceforge.jpowergraph.viewcontrols.ZoomControlPanel;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
/**
* @author Mick Kerrigan
*
* Created on 03-Aug-2005
* Committed by $Author: morcen $
*
* $Source: /cvsroot/jpowergraph/swt/src/net/sourceforge/jpowergraph/examples/ExampleMain.java,v $,
* @version $Revision: 1.3 $ $Date: 2005/08/12 13:07:54 $
*/
public class ExampleMain {
private static Color light_blue;
private static Color dark_blue;
private static Color light_red;
private static Color dark_red;
private static Color light_green;
private static Color dark_green;
private static Color black;
private static Color gray;
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
DefaultGraph graph = createGraph();
JGraphPane jGraphPane = new JGraphPane(shell, graph);
ArrayList filterAbleNodes = new ArrayList();
filterAbleNodes.add(NodeType2.class);
filterAbleNodes.add(NodeType3.class);
TranslateLens m_translateLens=new TranslateLens();
ZoomLens m_zoomLens= new ZoomLens();
RotateLens m_rotateLens= new RotateLens();
CursorLens m_cursorLens = new CursorLens(display);
TooltipLens m_tooltipLens = new TooltipLens();
LegendLens m_legendLens = new LegendLens();
NodeSizeLens m_nodeSizelens = new NodeSizeLens();
NodeFilterLens m_nodeFilterLens = new NodeFilterLens(filterAbleNodes);
LensSet lensSet = new LensSet();
lensSet.addLens(m_translateLens);
lensSet.addLens(m_zoomLens);
lensSet.addLens(m_rotateLens);
lensSet.addLens(m_cursorLens);
lensSet.addLens(m_tooltipLens);
lensSet.addLens(m_legendLens);
lensSet.addLens(m_nodeSizelens);
lensSet.addLens(m_nodeFilterLens);
jGraphPane.setLens(lensSet);
jGraphPane.addManipulator(new SelectionManipulator(display, new DefaultNodeSelectionModel(graph), SWT.NONE, SWT.CTRL));
jGraphPane.addManipulator(new DraggingManipulator(m_cursorLens, SWT.NONE));
jGraphPane.addManipulator(new EdgeCreatorManipulator(m_cursorLens, new DefaultEdgeCreatorListener(graph)));
jGraphPane.addManipulator(new ContextMenuAndToolTipManipulator(jGraphPane, new DefaultContextMenuListener(graph, m_legendLens, m_zoomLens, ZoomControlPanel.DEFAULT_ZOOM_LEVELS, m_rotateLens, RotateControlPanel.DEFAULT_ROTATE_ANGLES), new DefaultToolTipListener(), m_tooltipLens));
light_blue = new Color(display, 102, 204, 255);
dark_blue = new Color(display, 0, 153, 255);
light_red = new Color(display, 255, 102, 102);
dark_red = new Color(display, 204, 51, 51);
light_green = new Color(display, 153, 255, 102);
dark_green = new Color(display, 0, 204, 0);
black = display.getSystemColor(SWT.COLOR_BLACK);
gray = display.getSystemColor(SWT.COLOR_DARK_GRAY);
jGraphPane.setNodePainter(NodeType1.class, new ShapeNodePainter(shell, ShapeNodePainter.RECTANGLE, light_blue, dark_blue, black));
jGraphPane.setNodePainter(NodeType2.class, new ShapeNodePainter(shell, ShapeNodePainter.ELLIPSE, light_red, dark_red, black));
jGraphPane.setNodePainter(NodeType3.class, new ShapeNodePainter(shell, ShapeNodePainter.TRIANGLE, light_green, dark_green, black));
jGraphPane.setDefaultEdgePainter(new LineEdgePainter(gray, gray, gray));
jGraphPane.setAntialias(true);
Layouter m_layouter = new Layouter(new SpringLayoutStrategy(graph));
m_layouter.start();
JGraphScrollPane scroll = new JGraphScrollPane(shell, jGraphPane, m_translateLens);
scroll.setParent(shell);
JGraphViewPane view = new JGraphViewPane(shell, scroll, m_zoomLens, m_rotateLens, m_cursorLens, m_tooltipLens, m_legendLens, m_nodeSizelens);
view.setParent(shell);
FillLayout layout = new FillLayout();
layout.type = SWT.VERTICAL;
shell.setLayout(layout);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()){
display.sleep();
}
}
}
public static DefaultGraph createGraph(){
DefaultGraph graph = new DefaultGraph();
ArrayList nodes = new ArrayList();
ArrayList edges = new ArrayList();
Node n1 = new NodeType1("Node 1");
Node sn1 = new NodeType2("Node 2");
Node sn2 = new NodeType2("Node 3");
Node sn3 = new NodeType2("Node 4");
Node sn4 = new NodeType2("Node 5");
Node sn5 = new NodeType2("Node 6");
Node ssn1 = new NodeType3("Node 7");
Node ssn2 = new NodeType3("Node 8");
nodes.add(n1);
nodes.add(sn1);
nodes.add(sn2);
nodes.add(sn3);
nodes.add(sn4);
nodes.add(sn5);
nodes.add(ssn1);
nodes.add(ssn2);
edges.add(new DefaultEdge(n1, sn1));
edges.add(new DefaultEdge(n1, sn2));
edges.add(new DefaultEdge(n1, sn3));
edges.add(new DefaultEdge(n1, sn4));
edges.add(new DefaultEdge(n1, sn5));
edges.add(new DefaultEdge(sn2, ssn1));
edges.add(new DefaultEdge(sn2, ssn2));
graph.addElements(nodes, edges);
return graph;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -