Files
new-shapes/src/main/java/ovh/gasser/newshapes/shapes/SRectangle.java

45 lines
1.4 KiB
Java

package ovh.gasser.newshapes.shapes;
import ovh.gasser.newshapes.attributes.ColorAttributes;
import ovh.gasser.newshapes.attributes.SelectionAttributes;
import ovh.gasser.newshapes.ShapeVisitor;
import java.awt.*;
public class SRectangle extends AbstractShape {
private SRectangle(Rectangle rect) {
super(rect);
}
@Override
public void accept(ShapeVisitor visitor) {
visitor.visitRectangle(this);
}
@Override
public String toString() {
return "SRectangle{" +
super.toString() +
'}';
}
@Override
public Shape clone() {
var color = (ColorAttributes) this.getAttributes(ColorAttributes.ID);
Color strokeColor = color != null ? color.strokedColor : Color.BLACK;
return SRectangle.create(super.getBounds().x, super.getBounds().y, getBounds().width, getBounds().height, strokeColor);
}
public static SRectangle create(int x, int y, int width, int height) {
return create(x, y, width, height, Color.BLACK);
}
public static SRectangle create(int x, int y, int width, int height, Color color) {
SRectangle rect = new SRectangle(new Rectangle(x, y, width, height));
rect.addAttributes(new SelectionAttributes());
rect.addAttributes(new ColorAttributes(false, true, Color.BLACK, color));
return rect;
}
}