<<<<<<< HEAD package roadnetwork; import classes.ProjectElement; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.Shape; import java.io.Serializable; import shapes.Polygon2D; import shapes.Rectangle2DExt; /** * Abstract class representing a road network element(edge or junction) */ public abstract class RoadNetworkElement extends ProjectElement implements Serializable { /** * */ private static final long serialVersionUID = -8383351961238071184L; /** * The element's Id */ protected String id; /** * The element's shape */ protected Polygon2D.Double shape; @Override public void Draw(Graphics2D g, double zoomFactor, boolean isDeleted, boolean isSelected) { // Save the previous color to restore it later Color prev = g.getColor(); if ((!isSelected) && (!isDeleted)) { g.setColor(Color.BLACK); } if ((isSelected) && (!isDeleted)) { g.setColor(Color.GREEN); } if ((!isSelected) && (isDeleted)) { g.setColor(Color.RED); } if ((isSelected) && (isDeleted)) { g.setColor(Color.ORANGE); } // Draw the polygon representing the element g.fill(shape); g.setColor(prev); } /** * Returns the element's bounds * * @return */ public Rectangle2DExt getBounds() { return new Rectangle2DExt(shape.getBounds2D()); } /** * Returns the element's IDs * @return * @uml.property name="id" */ public String getId() { return id; } @Override public boolean Hit(Point p) { if (shape.getBounds2D().contains(p.x, p.y)) { if (shape.contains(p.x, p.y)) { return true; } } return false; } @Override public boolean Hit(Rectangle transformedRectangle) { return shape.intersects(transformedRectangle); } /** * Checks whether the specified shape intersects the element * * @param s * @return */ public boolean Overlaps(Shape s) { return shape.overlaps(s); } /** * Sets the element's id * @param id * @uml.property name="id" */ public void setId(String id) { this.id = id; } } ======= package roadnetwork; import classes.ProjectElement; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.Shape; import java.io.Serializable; import shapes.Polygon2D; import shapes.Rectangle2DExt; /** * Abstract class representing a road network element(edge or junction) */ public abstract class RoadNetworkElement extends ProjectElement implements Serializable { /** * */ private static final long serialVersionUID = -8383351961238071184L; /** * The element's Id */ protected String id; /** * The element's shape */ protected Polygon2D.Double shape; @Override public void Draw(Graphics2D g, double zoomFactor, boolean isDeleted, boolean isSelected) { // Save the previous color to restore it later Color prev = g.getColor(); if ((!isSelected) && (!isDeleted)) { g.setColor(Color.BLACK); } if ((isSelected) && (!isDeleted)) { g.setColor(Color.GREEN); } if ((!isSelected) && (isDeleted)) { g.setColor(Color.RED); } if ((isSelected) && (isDeleted)) { g.setColor(Color.ORANGE); } // Draw the polygon representing the element g.fill(shape); g.setColor(prev); } /** * Returns the element's bounds * * @return */ public Rectangle2DExt getBounds() { return new Rectangle2DExt(shape.getBounds2D()); } /** * Returns the element's IDs * @return * @uml.property name="id" */ public String getId() { return id; } @Override public boolean Hit(Point p) { if (shape.getBounds2D().contains(p.x, p.y)) { if (shape.contains(p.x, p.y)) { return true; } } return false; } @Override public boolean Hit(Rectangle transformedRectangle) { return shape.intersects(transformedRectangle); } /** * Checks whether the specified shape intersects the element * * @param s * @return */ public boolean Overlaps(Shape s) { return shape.overlaps(s); } /** * Sets the element's id * @param id * @uml.property name="id" */ public void setId(String id) { this.id = id; } } >>>>>>> origin/abdalla