📄 environment.java
字号:
// FrontEnd Plus GUI for JAD
// DeCompiled : Environment.class
package Generator;
import java.awt.*;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JComponent;
import System.Tools;
// Referenced classes of package ns2.Generator:
// Node, Link
public class Environment extends JComponent
{
static final long serialVersionUID = 0L;
private Vector nodes;
private Vector links;
private boolean showIR;
private boolean showGrid;
private boolean showSR;
private boolean showCoor;
private boolean showNodeID;
private boolean showLink;
private boolean showLinkDetail;
private boolean showConnected;
int SR;
int IR;
int shiftX;
int shiftY;
Node src;
Node dst;
float scale;
public Environment()
{
nodes = new Vector();
links = new Vector();
showIR = false;
showGrid = true;
showSR = true;
showCoor = true;
showNodeID = true;
showLink = true;
showLinkDetail = true;
showConnected = true;
SR = 250;
IR = 550;
shiftX = 0;
shiftY = 0;
src = null;
dst = null;
scale = 1.0F;
}
public void paintComponent(Graphics g)
{
Graphics2D graphics2d = (Graphics2D)g;
graphics2d.setColor(Color.WHITE);
graphics2d.fillRect(0, 0, 10000, 10000);
graphics2d.translate(-shiftX, shiftY);
graphics2d.setColor(Color.BLACK);
drawGrid(graphics2d);
drawNodes(graphics2d);
if(showLink)
drawLinks(graphics2d);
drawSrc(graphics2d);
if(showConnected)
drawConnected(graphics2d);
}
private void drawGrid(Graphics2D graphics2d)
{
if(!showGrid)
return;
int i = getHeight();
for(int j = 200; j < 16000; j += 200)
{
if(j % 1000 == 0)
graphics2d.setColor(Color.GRAY);
else
graphics2d.setColor(Color.LIGHT_GRAY);
graphics2d.drawLine(-16000, (int)((float)i - (float)j * scale), 16000, (int)((float)i - (float)j * scale));
}
for(int k = 200; k < 16000; k += 200)
{
if(k % 1000 == 0)
graphics2d.setColor(Color.GRAY);
else
graphics2d.setColor(Color.LIGHT_GRAY);
graphics2d.drawLine((int)((float)k * scale), -16000, (int)((float)k * scale), 16000);
}
}
private void drawConnected(Graphics2D graphics2d)
{
int i1 = getHeight();
graphics2d.setColor(Color.CYAN);
for(Iterator iterator = nodes.iterator(); iterator.hasNext();)
{
Node node = (Node)(Node)iterator.next();
for(Iterator iterator1 = nodes.iterator(); iterator1.hasNext();)
{
Node node1 = (Node)(Node)iterator1.next();
if(node.getId() != node1.getId() && Tools.distance(node, node1) < 250D)
{
int i = (int)((float)node.getX() * scale);
int j = (int)((float)i1 - (float)node.getY() * scale);
int k = (int)((float)node1.getX() * scale);
int l = (int)((float)i1 - (float)node1.getY() * scale);
java.awt.geom.Line2D.Double double1 = new java.awt.geom.Line2D.Double(i, j, k, l);
graphics2d.draw(double1);
}
}
}
}
private void drawSrc(Graphics2D graphics2d)
{
if(src != null)
{
int i = getHeight();
int j = 5;
graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics2d.setStroke(new BasicStroke(1.0F, 1, 2));
graphics2d.setColor(Color.RED);
java.awt.geom.Ellipse2D.Double double1 = new java.awt.geom.Ellipse2D.Double((float)src.getX() * scale - (float)j, (float)i - (float)src.getY() * scale - (float)j, j * 2, j * 2);
graphics2d.draw(double1);
}
}
private void drawLinks(Graphics2D graphics2d)
{
int i = getHeight();
for(Iterator iterator = links.iterator(); iterator.hasNext();)
{
Link link = (Link)(Link)iterator.next();
int j = (int)((float)link.getSrc().getX() * scale);
int k = (int)((float)i - (float)link.getSrc().getY() * scale);
int l = (int)((float)link.getDst().getX() * scale);
int i1 = (int)((float)i - (float)link.getDst().getY() * scale);
graphics2d.setStroke(new BasicStroke(1.0F, 1, 2, 0.0F, new float[] {
5F, 3F
}, 0.0F));
switch(link.getType())
{
case 0: // '\0'
graphics2d.setColor(Color.RED);
if(showLinkDetail)
graphics2d.drawString((new StringBuilder("ftp(")).append(link.getSrc().getId()).append("->").append(link.getDst().getId()).append(")").toString(), (j + l) / 2, (k + i1) / 2);
java.awt.geom.Line2D.Double double1 = new java.awt.geom.Line2D.Double(j, k, l, i1);
graphics2d.draw(double1);
break;
case 2: // '\002'
graphics2d.setColor(Color.GREEN);
if(showLinkDetail)
graphics2d.drawString((new StringBuilder("cbr(")).append(link.getSrc().getId()).append("->").append(link.getDst().getId()).append(")").toString(), (j + l) / 2, (k + i1) / 2);
java.awt.geom.Line2D.Double double2 = new java.awt.geom.Line2D.Double(j, k, l, i1);
graphics2d.draw(double2);
break;
case 1: // '\001'
graphics2d.setColor(Color.DARK_GRAY);
if(showLinkDetail)
graphics2d.drawString((new StringBuilder("ping(")).append(link.getSrc().getId()).append("->").append(link.getDst().getId()).append(")").toString(), (j + l) / 2, (k + i1) / 2);
java.awt.geom.Line2D.Double double3 = new java.awt.geom.Line2D.Double(j, k, l, i1);
graphics2d.draw(double3);
break;
}
if(showLinkDetail)
graphics2d.drawString((new StringBuilder("[")).append(link.getStart()).append("s~").append(link.getStop()).append("s]").toString(), (j + l) / 2, (k + i1) / 2 + 13);
}
}
private void drawNodes(Graphics2D graphics2d)
{
int i = getHeight();
int j = 5;
for(Iterator iterator = nodes.iterator(); iterator.hasNext();)
{
Node node = (Node)(Node)iterator.next();
int k = (int)((float)node.getX() * scale);
int l = (int)((float)i - (float)node.getY() * scale);
graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics2d.setStroke(new BasicStroke(1.0F, 1, 2));
graphics2d.setColor(Color.BLUE);
java.awt.geom.Ellipse2D.Double double1 = new java.awt.geom.Ellipse2D.Double(k - j / 2, l - j / 2, j, j);
graphics2d.draw(double1);
if(showCoor)
graphics2d.drawString((new StringBuilder("(")).append(node.getX()).append(", ").append(node.getY()).append(")").toString(), k - j - 20, (l - j) + 20);
if(showNodeID)
if(node.getId() < 10)
graphics2d.drawString((new StringBuilder()).append(node.getId()).toString(), (k - j) + 2, l - j);
else
if(node.getId() < 100)
graphics2d.drawString((new StringBuilder()).append(node.getId()).toString(), k - j - 2, l - j);
else
if(node.getId() < 1000)
graphics2d.drawString((new StringBuilder()).append(node.getId()).toString(), k - j - 6, l - j);
else
graphics2d.drawString((new StringBuilder()).append(node.getId()).toString(), k - j - 10, l - j);
if(showIR)
{
graphics2d.setStroke(new BasicStroke(1.0F, 1, 2, 0.0F, new float[] {
5F, 3F
}, 0.0F));
graphics2d.setColor(Color.PINK);
java.awt.geom.Ellipse2D.Double double2 = new java.awt.geom.Ellipse2D.Double((float)k - (float)IR * scale, (float)l - (float)IR * scale, (float)(IR * 2) * scale, (float)(IR * 2) * scale);
graphics2d.draw(double2);
}
if(showSR)
{
graphics2d.setStroke(new BasicStroke(1.0F, 1, 2, 0.0F, new float[] {
5F, 3F
}, 0.0F));
graphics2d.setColor(Color.LIGHT_GRAY);
java.awt.geom.Ellipse2D.Double double3 = new java.awt.geom.Ellipse2D.Double((float)k - (float)SR * scale, (float)l - (float)SR * scale, (float)(SR * 2) * scale, (float)(SR * 2) * scale);
graphics2d.draw(double3);
}
}
}
public void setNodes(Vector vector)
{
nodes = vector;
}
public void setLinks(Vector vector)
{
links = vector;
}
public void enableIR()
{
showIR = true;
repaint();
}
public void disableIR()
{
showIR = false;
repaint();
}
public void enableCoor()
{
showCoor = true;
repaint();
}
public void disableCoor()
{
showCoor = false;
repaint();
}
public void enableSR()
{
showSR = true;
repaint();
}
public void disableSR()
{
showSR = false;
repaint();
}
public void enableGrid()
{
showGrid = true;
repaint();
}
public void disableGrid()
{
showGrid = false;
repaint();
}
public void enableLink()
{
showLink = true;
repaint();
}
public void disableLink()
{
showLink = false;
repaint();
}
public void enableLinkDetail()
{
showLinkDetail = true;
repaint();
}
public void disableLinkDetail()
{
showLinkDetail = false;
repaint();
}
public void enableNodeID()
{
showNodeID = true;
repaint();
}
public void disableNodeID()
{
showNodeID = false;
repaint();
}
public void enableConnected()
{
showConnected = true;
repaint();
}
public void disableConnected()
{
showConnected = false;
repaint();
}
public void setSR(int i)
{
SR = i;
repaint();
}
public void setIR(int i)
{
IR = i;
repaint();
}
public void setScale(float f)
{
scale = f;
repaint();
}
public void setSrc(Node node)
{
src = node;
repaint();
}
public void clearSrc()
{
src = null;
repaint();
}
public void setDst(Node node)
{
dst = node;
repaint();
}
public void clearDst()
{
dst = null;
repaint();
}
public void setShiftX(int i)
{
shiftX = i;
repaint();
}
public void setShiftY(int i)
{
shiftY = i;
repaint();
}
public Vector getLinks()
{
return links;
}
public Vector getNodes()
{
return nodes;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -