Package ns3.animator.app.view.comp

Source Code of ns3.animator.app.view.comp.DrawingCanvas$MyMouseMotionListener

package ns3.animator.app.view.comp;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import java.util.List;
import java.util.Vector;

import javax.swing.JLabel;
import javax.swing.JPanel;

import ns3.animator.app.globle.NsGVar;
import ns3.animator.app.objs.Ns3ConfigurationDataObj;

public class DrawingCanvas extends JPanel {
 
 
 
    /**
   *
   */
  private static final long serialVersionUID = 8141280771369550552L;
   
    Object selectedShape;

    Rectangle2D boundingRec;
   
    JLabel location;
  
    Cursor curCursor;
   
   
    Vector<Ns3ConfigurationDataObj> n3NodeContainer;
   
   
    public DrawingCanvas(JLabel location) {
     
    super();
    n3NodeContainer= new Vector<Ns3ConfigurationDataObj>();
    this.location=location;
//      x = 20;
//      y = 20;
//      w = 100;
//      h = 75;
      setBackground(Color.white);
      addMouseListener(new MyMouseListener(this));
      addMouseMotionListener(new MyMouseMotionListener(this));
     
     
     
    }
    public void paint(Graphics g) {
      Graphics2D g2D = (Graphics2D) g;
     
      if (boundingRec != null) {
        drawHighlightSquares(g2D, boundingRec);
      }
     
      if (curCursor != null)
        setCursor(curCursor);
     
      // drawing rectangol
      for(Ns3ConfigurationDataObj rectNode: n3NodeContainer){
      
          g2D.setColor(Color.BLUE);
          g2D.fill(rectNode.getNodeRect());
           }
    }
   
    public void drawHighlightSquares(Graphics2D g2D, Rectangle2D r) {
      double x = r.getX();
      double y = r.getY();
      double w = r.getWidth();
      double h = r.getHeight();
      g2D.setColor(Color.black);

      g2D.fill(new Rectangle.Double(x - 3.0, y - 3.0, 6.0, 6.0));
      g2D.fill(new Rectangle.Double(x + w * 0.5 - 3.0, y - 3.0, 6.0,
              6.0));
      g2D.fill(new Rectangle.Double(x + w - 3.0, y - 3.0, 6.0, 6.0));
      g2D
          .fill(new Rectangle.Double(x - 3.0, y + h * 0.5 - 3.0, 6.0,
              6.0));
      g2D.fill(new Rectangle.Double(x + w - 3.0, y + h * 0.5 - 3.0, 6.0,
          6.0));
      g2D.fill(new Rectangle.Double(x - 3.0, y + h - 3.0, 6.0, 6.0));
      g2D.fill(new Rectangle.Double(x + w * 0.5 - 3.0, y + h - 3.0, 6.0,
          6.0));
      g2D.fill(new Rectangle.Double(x + w - 3.0, y + h - 3.0, 6.0, 6.0));
    }

    class MyMouseListener extends MouseAdapter {
     
      DrawingCanvas canvas;
      public MyMouseListener(DrawingCanvas canvas){
        this.canvas=canvas;
       
      }
     
     
     
      public void mousePressed(MouseEvent e) {
       
//        // show border
//        if (ellipse.contains(e.getX(), e.getY())) {
//         
//          selectedShape = ellipse;
//         
//          if (boundingRec != null)
//            boundingRec = ellipse.getBounds2D();
//          displayParameters(selectedShape);
//        } else {
//          boundingRec = null;
//          location.setText("");
//        }
//        canvas.repaint();
//        x1 = e.getX();
//        y1 = e.getY();
       
        for(Ns3ConfigurationDataObj node:n3NodeContainer){
          if(node.getNodeRect().contains(e.getX(),e.getY())){
            selectedShape = node.getNodeRect();
            if (boundingRec != null)
                  boundingRec = node.getNodeRect().getBounds2D();
                displayParameters((Rectangle2D)selectedShape);
                break;
          } else {
                boundingRec = null;
                location.setText("");
              }
          }
         
       
       
      }
     
     
      public void mouseReleased(MouseEvent e) {
       
        for(Ns3ConfigurationDataObj node:n3NodeContainer){
          if(node.getNodeRect().contains(e.getX(),e.getY())){
            selectedShape = node.getNodeRect();
                boundingRec = node.getNodeRect().getBounds2D();
                displayParameters((Rectangle2D)selectedShape);
                break;
          }
        }
     
        canvas.repaint();
      }

      public void mouseClicked(MouseEvent e) {
       
       if(e.getClickCount()==1){
         System.out.println(n3NodeContainer.size());
         for(Ns3ConfigurationDataObj node:n3NodeContainer){
          if(node.getNodeRect().contains(e.getX(),e.getY())){
            selectedShape = node.getNodeRect();           
                boundingRec = node.getNodeRect().getBounds2D();
                displayParameters((Rectangle2D)selectedShape);
                break;
          } else {
                boundingRec = null;
                location.setText("");
              }
          }
       }
    
      
        if(e.getClickCount()==2){
          Ns3ConfigurationDataObj ns3Node= new Ns3ConfigurationDataObj();
          ns3Node.setNodeRect(new Rectangle2D.Double(e.getX() - 10.0, e.getY() - 10.0, 20.0, 20.0));             
            n3NodeContainer.add(ns3Node);
        }
       
        canvas.repaint();
      }
     
    
     
    }
    class MyMouseMotionListener extends MouseMotionAdapter {
     
      DrawingCanvas canvas;
     
      public MyMouseMotionListener(DrawingCanvas canvas){
        this.canvas=canvas;
     
     
      public void mouseDragged(MouseEvent e) {
       
        System.out.println();
        for(Ns3ConfigurationDataObj node:n3NodeContainer){
          if(node.getNodeRect().contains(e.getX()+node.getNodeRect().getWidth()/2,e.getY()+node.getNodeRect().getHeight()/2)){
          
                        
            selectedShape = node.getNodeRect();
//            double x = node.getNodeRect().getX();
//            double y = node.getNodeRect().getY();
            double x1 =  e.getX();
            double y1 = e.getY();
//            if(node.getLastMovePosX()==0.0&&node.getLastMovePosY()==0.0){
//              node.setLastMovePosX(x);
//              node.setLastMovePosY(y);
//            }
           
            node.getNodeRect().setRect(x1,y1, NsGVar.NODE_WIDTH, NsGVar.NODE_HEIGHT);
//            System.out.println("x:"+x);
            System.out.println("x1:"+x1);
//            System.out.println("node.getLastMovePosX():"+node.getLastMovePosX());
//            System.out.println("final:"+(x+x1-node.getLastMovePosX()));
//            System.out.println("------------------------------------");
//            node.setLastMovePosX(x1);
//            node.setLastMovePosY(y1);
           
       
           
//                x2 = e.getX();
//                y2 = e.getY();
//                x = x + x2 - x1;
//                y = y + y2 - y1;
//                x1 = x2;
//                y1 = y2;
          }
//            else {
//                boundingRec = null;
//                location.setText("");
//              }
          }
       
        if (selectedShape != null)
        displayParameters((Rectangle2D)selectedShape);
        canvas.getParent().repaint();
        canvas.repaint();
       
      }

      public void mouseMoved(MouseEvent e) {
       
       
        for(Ns3ConfigurationDataObj node:n3NodeContainer){
          if(node!=null)
          if(node.getNodeRect().contains(e.getX(),e.getY())){
            curCursor = Cursor
                        .getPredefinedCursor(Cursor.HAND_CURSOR);
          } else {
                  curCursor = Cursor.getDefaultCursor();
              }
         
          }
       
        canvas.getParent().repaint();
        canvas.repaint();       
      }
    }

    public void displayParameters(Rectangle2D shape) {
        
      double x = shape.getX();
      double y = shape.getY();
      double w = shape.getWidth();
      double h = shape.getHeight();
      String locString = "(" + Double.toString(x) + ","
          + Double.toString(y) + ")";
      String sizeString = "(" + Double.toString(w) + ","
          + Double.toString(h) + ")";
      location.setText(locString);
    }
  }
TOP

Related Classes of ns3.animator.app.view.comp.DrawingCanvas$MyMouseMotionListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.