Files
new-shapes/src/main/java/ovh/gasser/newshapes/ui/ShapesView.java
2026-03-19 22:32:49 +01:00

42 lines
1.1 KiB
Java

package ovh.gasser.newshapes.ui;
import ovh.gasser.newshapes.ShapeVisitor;
import ovh.gasser.newshapes.shapes.SCollection;
import ovh.gasser.newshapes.shapes.Shape;
import ovh.gasser.newshapes.ui.listeners.SelectionListener;
import javax.swing.*;
import java.awt.*;
public class ShapesView extends JPanel {
private final Shape model;
private final Controller controller;
private ShapeVisitor draftman;
private boolean resizeMode;
public ShapesView(SCollection model) {
this.model = model;
this.controller = new Controller(this, model);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
this.draftman = new ShapeDraftman(g);
((ShapeDraftman) this.draftman).setResizeMode(resizeMode);
model.accept(draftman);
}
public Controller getController() {
return controller;
}
public void addSelectionChangeListener(SelectionListener listener) {
controller.addSelectionChangeListener(listener);
}
public void setResizeMode(boolean resizeMode) {
this.resizeMode = resizeMode;
}
}