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

📄 displaymanager.java

📁 无线通信的主要编程软件,是无线通信工作人员的必备工具,关天相关教程我会在后续传上.
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
    //-----------------------------------------------------------------------    public void PaintUnderScreen(Graphics g)    {	ScreenPainter screenPainter;	for(Enumeration painters = screenPainters.elements(); painters.hasMoreElements();) 	    {		screenPainter = (ScreenPainter)painters.nextElement();		screenPainter.PaintScreenBefore(g);	    }    }    public void PaintOverScreen(Graphics g)    {	ScreenPainter screenPainter;	for(Enumeration painters = screenPainters.elements(); painters.hasMoreElements();) 	    {		screenPainter = (ScreenPainter)painters.nextElement();		screenPainter.PaintScreenAfter(g);	    }    }    public void PaintAllNodes(Integer pNodeNumber, int x1, int y1, int x2, int y2, Graphics g)    {	NodePainter nodePainter;	NodeInfo displayInfo = (NodeInfo)proprietaryNodeInfo.get(pNodeNumber);	if( (displayInfo == null) || (displayInfo.GetDisplayThisNode() == false) ) return;	for(Enumeration painters = nodePainters.elements(); painters.hasMoreElements();) 	    {		nodePainter = (NodePainter)painters.nextElement();		nodePainter.PaintNode(pNodeNumber, x1, y1, x2, y2, g);	    }    }    public void PaintAllEdges(Integer pSourceNodeNumber, Integer pDestinationNodeNumber, int x1, int y1, int x2, int y2, Graphics g)    {	EdgePainter edgePainter;	NodeInfo sourceDisplayInfo = (NodeInfo)proprietaryNodeInfo.get(pSourceNodeNumber);	NodeInfo destinationDisplayInfo= (NodeInfo)proprietaryNodeInfo.get(pDestinationNodeNumber);	if( (sourceDisplayInfo == null) || (destinationDisplayInfo == null) || (sourceDisplayInfo.GetDisplayThisNode() == false) || (destinationDisplayInfo.GetDisplayThisNode() == false)) return;	for(Enumeration painters = edgePainters.elements(); painters.hasMoreElements();) 	    {		edgePainter = (EdgePainter)painters.nextElement();		edgePainter.PaintEdge(pSourceNodeNumber, pDestinationNodeNumber, x1, y1, x2, y2, g);	    }    }    //--------------------------------------------------------------------------    //*****---PAINT---******//    public void PaintNode(Integer pNodeNumber, int x1, int y1, int x2, int y2, Graphics g)    {	NodeInfo nodeInfo = (NodeInfo)proprietaryNodeInfo.get(pNodeNumber);	//g.setColor(nodeInfo.GetColor());	//g.setColor(new Color(0, 153, 102));	if (pNodeNumber == MainClass.mainFrame.focusedNode) {	    g.setColor(new Color(255, 255, 0));	} else {	    g.setColor(new Color(0, 153, 102));	}	g.fillOval(x1, y1, x2-x1, y2-y1);	if(ObjectMaintainer.isBase(pNodeNumber)){	    g.drawImage(nodeInfo.GetImage(), x1, y1, x2-x1+100, y2-y1+100, null);	}	if(nodeInfo.GetDisplayNodeNumber() == true && pNodeNumber.intValue() != 121)	    {		g.setColor(MainFrame.labelColor);		g.setFont(MainFrame.boldFont);		String s = pNodeNumber.toString();		g.drawString(s, (x1+x2)/2, y2-(y2-y1)/4 - 20);	    }    }    void drawLine(Graphics g,		  int x1, int y1,		  int x2, int y2,		  int lineWidth) {	if (lineWidth == 1)	    g.drawLine(x1, y1, x2, y2);	else {	    double angle;	    double halfWidth = ((double)lineWidth)/2.0;	    double deltaX = (double)(x2 - x1);	    double deltaY = (double)(y2 - y1);	    if (x1 == x2)		angle=Math.PI;	    else		angle=Math.atan(deltaY/deltaX)+Math.PI/2;	    int xOffset = (int)(halfWidth*Math.cos(angle));	    int yOffset = (int)(halfWidth*Math.sin(angle));	    int[] xCorners = { x1-xOffset, x2-xOffset+1,			       x2+xOffset+1, x1+xOffset };	    int[] yCorners = { y1-yOffset, y2-yOffset,			       y2+yOffset+1, y1+yOffset+1 };	    g.fillPolygon(xCorners, yCorners, 4);	}    }    public void PaintEdge(Integer pSourceNodeNumber, Integer pDestinationNodeNumber, int x1, int y1, int x2, int y2, Graphics g)    {	g.setColor(Color.red);	drawLine(g, x1, y1, x2, y2, 1);    }    //*****---run---******//    //this function runs in the background and repaints the screen    //at the user determined refresh rate    public void run()    {	while(!stopped)	    try		{		    sleep(refreshRate);		    RefreshScreenNow();				}	    catch(Exception e)		{		    e.printStackTrace();		}    }    //*****---run---******//  //------------------------------------------------------------------------  //*****---GET/SET FUNCTIONS---******//    public  static double GetScaleFactor()    {	Dimension d1 = MainClass.mainFrame.GetMainScrollPane().getSize();		Insets inset = MainClass.mainFrame.GetMainScrollPane().getInsets();	 	Dimension d2 = MainClass.mainFrame.GetGraphDisplayPanel().getSize();		return (d2.getHeight()+(inset.top+inset.bottom))/d1.getHeight();    }    public  static long GetRefreshRate(){return refreshRate;}    public  static void SetRefreshRate(long pRefreshRate){refreshRate = pRefreshRate;	}    public boolean GetSelectMode(){return selectMode;}    public boolean GetHandMode(){return handMode;}    public boolean GetZoomMode(){return zoomMode;}    public void SetSelectMode(boolean b){selectMode=b;}    public void SetHandMode(boolean b){handMode=b;}    public void SetZoomMode(boolean b){zoomMode=b;}    public NodeInfo GetNodeInfo(Integer nodeNumber){return (NodeInfo)proprietaryNodeInfo.get(nodeNumber);}    public EdgeInfo GetEdgeInfo(Integer sourceNumber, Integer destinationNumber){return (EdgeInfo)proprietaryEdgeInfo.get(sourceNumber,destinationNumber);}    public Enumeration GetNodeInfo(){return proprietaryNodeInfo.elements();}    public Enumeration GetEdgeInfo(){return proprietaryEdgeInfo.elements();}    //*****---GET/SET FUNCTIONS---******//    //------------------------------------------------------------------------    //*****---Thread commands---******//    public void start(){ 	try { 	    System.err.println("Starting DisplayManager thread...");	    refreshScreenThread = new Thread(this);	    refreshScreenThread.start();	} catch (Exception e) { e.printStackTrace(); }    }    // public void stop(){ try{ refreshScreenThread.stop();} catch(Exception e){e.printStackTrace();}}    public static void sleep(long p){ try{ refreshScreenThread.sleep(p);} catch(Exception e){e.printStackTrace();}}    public static void setPriority(int p) { try{refreshScreenThread.setPriority(p);} catch(Exception e){e.printStackTrace();}}        //*****---Thread commands---******//  //------------------------------------------------------------------------  //*****---Node Created---******//  //this function defines what you do when a new node is created    public synchronized void NodeCreated(NodeEvent e)    {	proprietaryNodeInfo.put(e.GetNodeNumber(), new NodeInfo(e));    }    //*****---Node Created---******//    //------------------------------------------------------------------------    //------------------------------------------------------------------------    //*****---Node Deleted---******//    //this function defines what you do when a new node is deleted    public synchronized void NodeDeleted(NodeEvent e)    {	Integer deletedNodeNumber = e.GetNodeNumber();//you probably want to delete the info pbject to track the data of this new node	proprietaryNodeInfo.remove(deletedNodeNumber);    }    //*****---Node Deleted---******//    //------------------------------------------------------------------------    //------------------------------------------------------------------------    //*****---Edge Created---******//    //this function defines what you do when a new edge is created    public synchronized void EdgeCreated(EdgeEvent e)    {	Integer sourceNodeNumber = e.GetSourceNodeNumber();	Integer destinationNodeNumber = e.GetDestinationNodeNumber();//you probably want to create a new info pbject to track the data of this new node	proprietaryEdgeInfo.put(sourceNodeNumber, destinationNodeNumber, new EdgeInfo(sourceNodeNumber, destinationNodeNumber));    }    //*****---Edge Created---******//    //------------------------------------------------------------------------    //------------------------------------------------------------------------    //*****---Edge Deleted---******//    //this function defines what you do when a new edge is deleted    public synchronized void EdgeDeleted(EdgeEvent e)    {	Integer sourceNodeNumber = e.GetSourceNodeNumber();	Integer destinationNodeNumber = e.GetDestinationNodeNumber();//you probably want to create a new info pbject to track the data of this new node	proprietaryEdgeInfo.remove(sourceNodeNumber, destinationNodeNumber);    }    //*****---EdgeDeleted---******//    //------------------------------------------------------------------------    //------------------------------------------------------------------------    //*****---GRAPHICS COMMANDS---******//    public void NodeClicked(NodeClickedEvent e){}    public void EdgeClicked(EdgeClickedEvent e){}    public ActivePanel GetProprietaryNodeInfoPanel(Integer pNodeNumber)    {	ProprietaryNodeInfoPanel panel = new ProprietaryNodeInfoPanel((NodeInfo)proprietaryNodeInfo.get(pNodeNumber));	return (ActivePanel)panel;    }    public ActivePanel GetProprietaryEdgeInfoPanel(Integer pSourceNodeNumber, Integer pDestinationNodeNumber)     {	return null;	/*		ProprietaryNodeInfoPanel panel = new ProprietaryNodeInfoPanel((NodeInfo)proprietaryNodeInfo.get(pEdge.GetSource().GetNodeNumber()));			return (ActivePanel)panel;*/    }    public void ShowPropertiesDialog()     {	StandardDialog newDialog = new StandardDialog(new DisplayPropertiesPanel());	newDialog.show();    }    //*****---GRAPHICS COMMANDS---******//    //------------------------------------------------------------------------    //*********************************************************    //*********************************************************    //*********************************************************    //NODE INFO CLASS    //this class should hold any special information you hold about the    //node, for example time created or a history of the number of packets    //forwarded through this mote or whetever it is you are studying    public class NodeInfo    {	protected Integer nodeNumber;	protected ImageIcon imageHelper;	protected Image image;      	// dchi	protected Color nodeColor;	protected boolean isShowing;      	protected double imageWidth, imageHeight;	protected boolean displayThisNode;	protected boolean displayNodeNumber;	protected boolean fitOnScreen;	protected String infoString;	public NodeInfo(NodeEvent e) {	    nodeNumber = e.GetNodeNumber();       	    // dchi	    nodeColor = Color.green;	    isShowing = false;	    imageHelper = new ImageIcon("images/base.gif","images/base.gif");	    image = imageHelper.getImage();	    imageWidth = 5;//note that this width and height is in node coordinates (hence it scales automatically with the size of the network, but must be initialized properly)	    imageHeight = 5;	    displayThisNode = true;	    displayNodeNumber = true;	    fitOnScreen = true;	}	// dchi	public void SetColor(Color newColor) {nodeColor = newColor;}	public Color GetColor() { return nodeColor;}      	public void SetDialogShowing (boolean value) {	    isShowing = value;	}	public boolean GetDialogShowing () {	    return isShowing;	}      	public Integer GetNodeNumber(){return nodeNumber;}	public  ImageIcon GetImageHelper(){ return imageHelper;}	public  Image GetImage(){ return image;}	public  double GetImageWidth(){ 	    return imageWidth;}	public  double GetImageHeight(){ return imageHeight;}	public  boolean GetDisplayThisNode(){ return displayThisNode;}	public  boolean GetDisplayNodeNumber(){ return displayNodeNumber;}	public  boolean GetFitOnScreen(){ return fitOnScreen;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -