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

Initial commit

parents
Branches
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