1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
   |  
@Override
		public void mousePressed(MouseEvent arg0) {
			// TODO Auto-generated method stub
			JGraph graph = getGraphForEvent(arg0);
			if (graph != null){
				DefaultGraphCell cell =  (DefaultGraphCell)graph.getSelectionCell();
				graph.setMoveable(false);
				this.startport = graph.getDefaultPortForCell(cell);
				this.start = this.startport.getLocation();
			}
			super.mousePressed(arg0);
		}
 
		@Override
		public void mouseDragged(MouseEvent arg0) {
			// TODO Auto-generated method stub
			JGraph graph = getGraphForEvent(arg0);
			Point2D current = arg0.getPoint();
			Graphics g = graph.getGraphics();
 
			if( graph != null) {
				//paintConnector(Color.RED, Color.BLACK, g ,graph, arg0.getPoint());
				g.drawLine((int) start.getX(), (int) start.getY(),
						(int) current.getX(), (int) current.getY());
			}
			super.mouseDragged(arg0);
		}
 
 
@Override
		public void mouseReleased(MouseEvent arg0) {
			// TODO Auto-generated method stub
			JGraph graph = getGraphForEvent(arg0);
			if( graph != null) {
				DefaultGraphCell cell = (DefaultGraphCell)graph.getFirstCellForLocation(arg0.getX(), arg0.getY());
				if( cell != null) {
					this.endport = graph.getDefaultPortForCell(cell);
					DefaultEdge edge = new DefaultEdge();
					int arrow = GraphConstants.ARROW_CLASSIC;
					GraphConstants.setLineEnd(edge.getAttributes(), arrow);
					GraphConstants.setLineColor(edge.getAttributes(), Color.GREEN);
					GraphConstants.setLineWidth(edge.getAttributes(), 2);
					GraphConstants.setEndFill(edge.getAttributes(), true);
 
					edge.setSource(this.startport.getCell());
					edge.setTarget(this.endport.getCell());
					graph.getGraphLayoutCache().insertEdge(edge, this.startport.getCell(), this.endport.getCell());
				}
 
			}
			graph.setMoveable(true);
			graph.setMarqueeHandler(previousMarqueeHandler);
			super.mouseReleased(arg0);
		} | 
Partager