Skip to content
Snippets Groups Projects
Commit d6f0f60e authored by BasileCouetoux's avatar BasileCouetoux
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
package state;
import javafx.scene.canvas.Canvas;
import shape.Circle;
import shape.Shape;
import java.util.ArrayList;
import java.util.List;
public class Drawer extends Canvas {
protected List<Shape> shapes = new ArrayList<>();
DrawerContext context = new DrawerContext(this);
public Drawer(int width, int height) {
super(width,height);
setFocusTraversable(true);
setOnMousePressed(event->context.mousePressed(event));
setOnMouseReleased(event->context.mouseReleased(event));
setOnMouseMoved(event->context.mouseMoved(event));
setOnMouseDragged(event->context.mouseMoved(event));
setOnKeyPressed(event -> context.keyPressed(event));
}
public void repaint(){
this.getGraphicsContext2D().clearRect(0,0,this.getWidth(),this.getHeight());
}
}
package state;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
public class DrawerContext {
Drawer drawer;
DrawerState currentState;
public DrawerContext(Drawer drawer) {
this.drawer = drawer;
}
void mousePressed(MouseEvent event){
currentState.mousePressed(this,event.getX(),event.getY());
}
void mouseReleased(MouseEvent event){
currentState.mouseReleased(this,event.getX(),event.getY());
}
void mouseMoved(MouseEvent event){}
void keyPressed(KeyEvent event) {
switch (event.getText()) {
case "c":
currentState = new StateCircle0();
}
}
}
package state;
public interface DrawerState {
void mousePressed(DrawerContext context, double x, double y);
void mouseReleased(DrawerContext context, double x, double y);
}
package state;
public class StateCircle0 implements DrawerState {
@Override
public void mousePressed(DrawerContext context, double x, double y) {
}
@Override
public void mouseReleased(DrawerContext context, double x, double y) {
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment