package oripa.paint.vertical;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import javax.vecmath.Vector2d;
import oripa.paint.core.GraphicMouseAction;
import oripa.paint.core.PaintContext;
import oripa.value.OriLine;
public class VerticalLineAction extends GraphicMouseAction {
public VerticalLineAction(){
setActionState(new SelectingVertexForVertical());
}
@Override
public void destroy(PaintContext context) {
super.destroy(context);
setActionState(new SelectingVertexForVertical());
}
private OriLine closeLine = null;
@Override
public Vector2d onMove(PaintContext context, AffineTransform affine,
boolean differentAction) {
Vector2d result = super.onMove(context, affine, differentAction);
if(context.getVertexCount() == 1){
if(closeLine != null){
closeLine.selected = false;
}
closeLine = context.pickCandidateL;
if(closeLine != null){
closeLine.selected = true;
}
}
return result;
}
@Override
public void onDrag(PaintContext context, AffineTransform affine, boolean differentAction) {
// TODO Auto-generated method stub
}
@Override
public void onRelease(PaintContext context, AffineTransform affine,
boolean differentAction) {
// TODO Auto-generated method stub
}
@Override
public void onDraw(Graphics2D g2d, PaintContext context) {
super.onDraw(g2d, context);
if(context.getVertexCount() == 0){
drawPickCandidateVertex(g2d, context);
}
else if(context.getVertexCount() == 1){
drawPickCandidateLine(g2d, context);
}
}
@Override
public void onPress(PaintContext context, AffineTransform affine,
boolean differentAction) {
// TODO Auto-generated method stub
}
}