⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 examplemain.java

📁 JPowerGraph is a Java library for creating directed graphs for SWT. It supports graph movement, sele
💻 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 + -