package com.jediterm.terminal.display;
import com.jediterm.terminal.util.Pair;
import java.awt.*;
/**
* @author traff
*/
public class TerminalSelection {
private final Point myStart;
private Point myEnd;
public TerminalSelection(Point start) {
myStart = start;
}
public TerminalSelection(Point start, Point end) {
myStart = start;
myEnd = end;
}
public Point getStart() {
return myStart;
}
public Point getEnd() {
return myEnd;
}
public void updateEnd(Point end) {
myEnd = end;
}
public Pair<Point, Point> pointsForRun(int width) {
Pair<Point, Point> p = SelectionUtil.sortPoints(new Point(myStart), new Point(myEnd));
p.second.x = Math.min(p.second.x + 1, width);
return p;
}
public boolean contains(Point toTest) {
return SelectionUtil.sortPoints(myStart, toTest).first == myStart
&& SelectionUtil.sortPoints(toTest, myEnd).second == myEnd;
}
public void shiftY(int dy) {
myStart.y += dy;
myEnd.y += dy;
}
}