// XAAL toolkit // Copyright (C) 2009 Ville Karavirta // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . package xaal.objects.graphical; import xaal.objects.Xaal; public class Line extends Polyline implements Cloneable { private Coordinate startCoordinate; private Coordinate endCoordinate; public Line(Xaal xaalDoc) { super(xaalDoc); } public Line(Xaal xaalDoc, String id) { super(xaalDoc, id); } public Object clone() throws CloneNotSupportedException { Line copy = (Line) super.clone(); if (startCoordinate!=null) copy.startCoordinate = (Coordinate)startCoordinate.clone(); if (endCoordinate!=null) copy.endCoordinate = (Coordinate)endCoordinate.clone(); return copy; } public void addCoordinate(Coordinate coordinate) { if (points.size() >= 2) //XXX Error handling?? System.out.println("too many points in line!"); else { if (points.size() == 0) startCoordinate = coordinate; else endCoordinate = coordinate; super.addCoordinate(coordinate); } } /** * @return Returns the endCoordinate. */ public Coordinate getEndCoordinate() { return endCoordinate; } /** * @param endCoordinate The endCoordinate to set. */ public void setEndCoordinate(Coordinate endCoordinate) { this.endCoordinate = endCoordinate; } /** * @return Returns the startCoordinate. */ public Coordinate getStartCoordinate() { return startCoordinate; } /** * @param startCoordinate The startCoordinate to set. */ public void setStartCoordinate(Coordinate startCoordinate) { this.startCoordinate = startCoordinate; } public String toString() { String s = "line (" + getId() + ") [" + getStartCoordinate() + " - " + getEndCoordinate() + "]"; return s; } }