diff --git a/src/main/java/shape/tp5/DrawerContext.java b/src/main/java/shape/tp5/DrawerContext.java new file mode 100644 index 0000000000000000000000000000000000000000..0e91c1c827bd77b847baa78ab9126e8cf2155cec --- /dev/null +++ b/src/main/java/shape/tp5/DrawerContext.java @@ -0,0 +1,38 @@ +package shape.tp5; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.input.MouseEvent; + +public class DrawerContext { + private DrawerState currentState; + private Drawer drawer; + + public DrawerContext(Drawer drawer) { + this.drawer = drawer; + this.currentState = new NullDrawerState(); // État initial + } + + public void setState(DrawerState state) { + this.currentState = state; + } + + public void mousePressed(MouseEvent event) { + currentState.mousePressed(this, event.getX(), event.getY()); + } + + public void mouseReleased(MouseEvent event) { + currentState.mouseReleased(this, event.getX(), event.getY()); + } + + public void mouseMoved(MouseEvent event) { + currentState.mouseMoved(this, event.getX(), event.getY()); + } + + public void paint(GraphicsContext graphicsContext) { + currentState.paint(this, graphicsContext); + } + + public Drawer getDrawer() { + return drawer; + } +} \ No newline at end of file