📄 freegrapheditor.java
字号:
package com.mxgraph.swing.examples;import java.awt.Color;import java.awt.Point;import java.net.URL;import java.text.NumberFormat;import java.util.Iterator;import java.util.List;import javax.swing.ImageIcon;import javax.swing.UIManager;import org.w3c.dom.Document;import com.mxgraph.io.mxCodec;import com.mxgraph.model.mxCell;import com.mxgraph.model.mxGeometry;import com.mxgraph.model.mxICell;import com.mxgraph.model.mxIGraphModel;import com.mxgraph.swing.mxGraphComponent;import com.mxgraph.swing.examples.editor.BasicGraphEditor;import com.mxgraph.swing.examples.editor.EditorMenuBar;import com.mxgraph.swing.examples.editor.EditorPalette;import com.mxgraph.swing.util.mxGraphTransferable;import com.mxgraph.util.mxConstants;import com.mxgraph.util.mxEvent;import com.mxgraph.util.mxEventObject;import com.mxgraph.util.mxPoint;import com.mxgraph.util.mxResources;import com.mxgraph.util.mxUtils;import com.mxgraph.util.mxEventSource.mxIEventListener;import com.mxgraph.view.mxCellState;import com.mxgraph.view.mxGraph;public class FreeGraphEditor extends BasicGraphEditor{ /** * Holds the shared number formatter. * * @see NumberFormat#getInstance() */ public static final NumberFormat numberFormat = NumberFormat.getInstance(); /** * Holds the URL for the icon to be used as a handle for creating new * connections. This is currently unused. */ public static URL url = null; //FreeGraphEditor.class.getResource("/com/mxgraph/swing/examples/images/connector.gif"); /** * */ public FreeGraphEditor() { super("mxGraph Editor", new CustomGraphComponent(new CustomGraph())); final mxGraph graph = graphComponent.getGraph(); // Creates the shapes palette EditorPalette shapesPalette = insertPalette(mxResources.get("shapes")); EditorPalette imagesPalette = insertPalette(mxResources.get("images")); EditorPalette symbolsPalette = insertPalette(mxResources.get("symbols")); // Sets the edge template to be used for creating new edges if an edge // is clicked in the shape palette shapesPalette.addListener(mxEvent.SELECT, new mxIEventListener() { public void invoke(Object sender, mxEventObject evt) { if (evt.getArgCount() > 0 && evt.getArgAt(1) instanceof mxGraphTransferable) { mxGraphTransferable t = (mxGraphTransferable) evt .getArgAt(1); Object cell = t.getCells()[0]; if (graph.getModel().isEdge(cell)) { ((CustomGraph) graph).setEdgeTemplate(cell); } } } }); // Adds some template cells for dropping into the graph shapesPalette .addTemplate( "Container", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/swimlane.png")), "swimlane", 280, 280, "Container"); shapesPalette .addTemplate( "Rectangle", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/rectangle.png")), null, 160, 120, ""); shapesPalette .addTemplate( "Rounded Rectangle", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/rounded.png")), "rounded=1", 160, 120, ""); shapesPalette .addTemplate( "Ellipse", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/ellipse.png")), "ellipse", 160, 160, ""); shapesPalette .addTemplate( "Double Ellipse", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/doubleellipse.png")), "ellipse;shape=doubleEllipse", 160, 160, ""); shapesPalette .addTemplate( "Triangle", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/triangle.png")), "triangle", 120, 160, ""); shapesPalette .addTemplate( "Rhombus", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/rhombus.png")), "rhombus", 160, 160, ""); shapesPalette .addTemplate( "Horizontal Line", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/hline.png")), "line", 160, 10, ""); shapesPalette .addTemplate( "Hexagon", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/hexagon.png")), "shape=hexagon", 160, 120, ""); shapesPalette .addTemplate( "Cylinder", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/cylinder.png")), "shape=cylinder", 120, 160, ""); shapesPalette.addTemplate("Actor", new ImageIcon(FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/actor.png")), "shape=actor", 120, 160, ""); shapesPalette.addTemplate("Cloud", new ImageIcon(FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/cloud.png")), "ellipse;shape=cloud", 160, 120, ""); shapesPalette .addEdgeTemplate( "Straight", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/straight.png")), "straight", 120, 120, ""); shapesPalette .addEdgeTemplate( "Horizontal Connector", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/connect.png")), null, 100, 100, ""); shapesPalette .addEdgeTemplate( "Vertical Connector", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/vertical.png")), "vertical", 100, 100, ""); shapesPalette .addEdgeTemplate( "Entity Relation", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/entity.png")), "entity", 100, 100, ""); shapesPalette .addEdgeTemplate( "Arrow", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/arrow.png")), "arrow", 120, 120, ""); imagesPalette.addTemplate("Bell", new ImageIcon(FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/bell.png")), "image;image=/com/mxgraph/swing/examples/images/bell.png", 50, 50, "Bell"); imagesPalette.addTemplate("Box", new ImageIcon(FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/box.png")), "image;image=/com/mxgraph/swing/examples/images/box.png", 50, 50, "Box"); imagesPalette .addTemplate( "Cube", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/cube_green.png")), "image;image=/com/mxgraph/swing/examples/images/cube_green.png", 50, 50, "Cube"); imagesPalette .addTemplate( "User", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/dude3.png")), "roundImage;image=/com/mxgraph/swing/examples/images/dude3.png", 50, 50, "User"); imagesPalette .addTemplate( "Earth", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/earth.png")), "roundImage;image=/com/mxgraph/swing/examples/images/earth.png", 50, 50, "Earth"); imagesPalette.addTemplate("Gear", new ImageIcon(FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/gear.png")), "roundImage;image=/com/mxgraph/swing/examples/images/gear.png", 50, 50, "Gear"); imagesPalette.addTemplate("Home", new ImageIcon(FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/house.png")), "image;image=/com/mxgraph/swing/examples/images/house.png", 50, 50, "Home"); imagesPalette .addTemplate( "Package", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/package.png")), "image;image=/com/mxgraph/swing/examples/images/package.png", 50, 50, "Package"); imagesPalette .addTemplate( "Printer", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/printer.png")), "image;image=/com/mxgraph/swing/examples/images/printer.png", 50, 50, "Printer"); imagesPalette.addTemplate("Server", new ImageIcon(FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/server.png")), "image;image=/com/mxgraph/swing/examples/images/server.png", 50, 50, "Server"); imagesPalette .addTemplate( "Workplace", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/workplace.png")), "image;image=/com/mxgraph/swing/examples/images/workplace.png", 50, 50, "Workplace"); imagesPalette .addTemplate( "Wrench", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/wrench.png")), "roundImage;image=/com/mxgraph/swing/examples/images/wrench.png", 50, 50, "Wrench"); symbolsPalette .addTemplate( "Cancel", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/cancel_end.png")), "roundImage;image=/com/mxgraph/swing/examples/images/cancel_end.png", 80, 80, "Cancel"); symbolsPalette .addTemplate( "Error", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/error.png")), "roundImage;image=/com/mxgraph/swing/examples/images/error.png", 80, 80, "Error"); symbolsPalette .addTemplate( "Event", new ImageIcon( FreeGraphEditor.class .getResource("/com/mxgraph/swing/examples/images/event.png")), "roundImage;image=/com/mxgraph/swing/examples/images/event.png", 80, 80, "Event");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -