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

📄 complexgatewayview.java

📁 用JGraph编的软件
💻 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 + -