📄 complexgatewayview.java
字号:
package org.jgpd.jgraph;
import java.awt.BasicStroke;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import org.jgraph.JGraph;
import org.jgraph.graph.CellMapper;
import org.jgraph.graph.CellViewRenderer;
import org.jgraph.graph.GraphConstants;
import org.jgraph.graph.VertexRenderer;
import org.jgraph.graph.VertexView;
public class ComplexGatewayView
extends VertexView {
public static int default_width = 70;
public static int default_height = 70;
public static ComplexGatewayRenderer renderer = new ComplexGatewayRenderer();
public ComplexGatewayView(Object cell, JGraph graph, CellMapper cm) {
super(cell, graph, cm);
}
public CellViewRenderer getRenderer() {
return renderer;
}
public static class ComplexGatewayRenderer
extends VertexRenderer {
public void paint(Graphics g) {
int b = borderWidth;
Graphics2D g2 = (Graphics2D) g;
Dimension d = getSize();
if (d.width > d.height) {
// Wide and short
d.width = d.height;
d.height = d.height;
}
else {
// Thin and tall
d.width = d.width;
d.height = d.width;
}
// Set up x and y arrays for polygon ( which is how we're drawin
// our diamond shape )
int[] polyx = {
0,
(d.width - b) / 2,
d.width - b,
(d.width - b) / 2};
int[] polyy = {
(d.height - b) / 2,
0,
(d.height - b) / 2,
(d.height - b)};
boolean tmp = selected;
if (super.isOpaque()) {
Polygon poly = new Polygon(polyx, polyy, 4);
g.setColor(super.getBackground());
g2.fillPolygon(poly);
}
try {
setBorder(null);
setOpaque(false);
selected = false;
super.paint(g);
}
finally {
selected = tmp;
}
if (bordercolor != null) {
g.setColor(bordercolor);
g2.setStroke(new BasicStroke(b));
Polygon poly = new Polygon(polyx, polyy, 4);
g2.draw(poly);
g2.setStroke(new BasicStroke(4.0f));
g2.drawLine(b + d.width / 4, b + d.height / 2, d.width * 3 / 4 + b,
b + d.height / 2);
g2.drawLine(b + d.width / 2, b + d.height / 4, b + d.width / 2,
b + d.height * 3 / 4);
g2.drawLine(b + d.width / 4 + 6, b + d.height / 4 + 6,
d.width * 3 / 4 + b - 6, b + d.height * 3 / 4 - 6);
g2.drawLine(b + d.width / 4 + 6, b + d.height * 3 / 4 - 6,
d.width * 3 / 4 + b - 6, d.height / 4 + 6);
// g2.drawOval(b+d.width/4 , b+d.height/4 ,( d.width-b)/2, ( d.width-b)/2);
}
if (selected) {
g2.setStroke(GraphConstants.SELECTION_STROKE);
g.setColor(graph.getHighlightColor());
Polygon poly = new Polygon(polyx, polyy, 4);
g2.draw(poly);
// System.out.println("x="+b+","+"w="+");
g2.setStroke(new BasicStroke(4.0f));
g2.drawLine(b + d.width / 4, b + d.height / 2, d.width * 3 / 4 + b,
b + d.height / 2);
g2.drawLine(b + d.width / 2, b + d.height / 4, b + d.width / 2,
b + d.height * 3 / 4);
g2.drawLine(b + d.width / 4 + 6, b + d.height / 4 + 6,
d.width * 3 / 4 + b - 6, b + d.height * 3 / 4 - 6);
g2.drawLine(b + d.width / 4 + 6, b + d.height * 3 / 4 - 6,
d.width * 3 / 4 + b - 6, d.height / 4 + 6);
;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -