//***************************************************************************** // // Beenish Chaudry, Geetika Tewari, Elif Tosun and // Ileana Streinu // // Summer 1999, Fall 1999, Spring 2000 // //***************************************************************************** // // HandlerMouseMotionPoint.java // //***************************************************************************** import java.awt.*; import java.awt.event.*; import java.lang.*; import java.io.*; import java.util.*; class HandlerMouseMotionPoint extends MouseMotionAdapter{ FramePoint bf; public HandlerMouseMotionPoint(FramePoint bff) { super(); bf = bff; } //************************************************** // // MouseDragged // //************************************************** public void mouseDragged(MouseEvent e) { Point pt = e.getPoint(); bf.displacement.x = bf.displacement.y = 0; if(bf.selNode != null) { bf.displacement.x = pt.x - bf.selNode.data.x; bf.displacement.y = pt.y - bf.selNode.data.y; }; // if the mouse click was for setting the origin, restore state if (bf.state.stateMouse == StateMouse.originP) { // update relative coordinates of the points, as they change bf.ps.changeOrigin(pt); bf.state.RestoreStateMouse(); }//end setting the origin // if the point is meant to be inserted else if(bf.state.stateMouse == StateMouse.insertP) { if (bf.selNode != null) bf.selNode.data.setPointCoord(pt); } // if the point was meant to be moved else if(bf.state.stateMouse == StateMouse.moveP) { if (bf.selNode != null) { // one point only, or all selected points? if(bf.selNode.data.selected == StateSelect.not) { bf.selNode.data.setPointCoord(pt); bf.ps.MovePoint(bf.selNode.data); } else { bf.ps.TranslateSelected(bf.displacement); } } } // if the label of the point was meant to be moved else if(bf.state.stateMouse == StateMouse.moveLP) { if (bf.selNode != null) { // one point only, or all selected points? if(bf.selNode.data.selected == StateSelect.not) { bf.selNode.data.MoveLabelPoint(pt); } else { bf.ps.TranslateLPSelected(bf.displacement); } } } // if the coordinates of the point were meant to be moved else if(bf.state.stateMouse == StateMouse.moveCP) { if (bf.selNode != null) { // one point only, or all selected points? if(bf.selNode.data.selected == StateSelect.not) { bf.selNode.data.MoveCoordPoint(pt); } else { bf.ps.TranslateCPSelected(bf.displacement); } } } // if selecting a rectangle of points // ??? else if(bf.state.stateMouse == StateMouse.selectR) { bf.p2.x = pt.x; bf.p2.y = pt.y; // p1 is first corner of rectangle // p2 is second corner of rectangle // look into the set of points, at all points with coordinates // inside rectangle p1, p2 // select them with point.selected = StateSelect.yes bf.ps.RectSelect(); } bf.crtPt = null; bf.pc.repaint(); if(bf.lf != null) bf.lf.lc.repaint(); } //ends mouseDragged }// end class HandlerMouseMotionPoint