Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
1 result

Target

Select target project
  • b21228304/graphic-2020-2-0
  • l21221596/graphic-2020
  • c19014407/graphic-2020
  • b23019494/graphic-2020
  • g21212987/graphic-2020
  • couetoux.b/graphic-2020
  • s22029480/graphic-2020
  • c23025119/tp-3-graphique
  • m19023837/graphic-2020-tp-5
  • s22029480/graphic-tp-4
  • m19023837/graphic-2020-tp-7
  • n22021899/tp-3-programmation-conception
  • r24025701/graphic-2020
  • a23022716/exo-2-tp-3-algo
  • m23000189/graphic-2024
  • b21228304/graphic-2020
  • t21234458/graphic-2020
  • v23014723/graphic-2020
  • h22021483/graphic-2020
  • t21234458/graphic-2020-tiakout-khaled
  • m19023837/graphic-2020-chadi
  • b20031964/graphic-2020
22 results
Select Git revision
  • master
1 result
Show changes
Commits on Source (2)
Showing with 0 additions and 335 deletions
package serializer;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class App extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Group root = new Group();
DrawerWithSave container = new DrawerWithSave(800, 600);
root.getChildren().add(container);
primaryStage.setScene(new Scene(root));
primaryStage.show();
Button save = new Button("save");
root.getChildren().add(save);
save.setLayoutX(0);
save.setLayoutY(0);
root.setOnKeyPressed(event->container.context.keyPressed(event));
//save.setOnKeyPressed(event->container.context.keyPressed(event));
save.setOnAction(event -> container.write());
}
}
\ No newline at end of file
package serializer;
import javafx.scene.canvas.Canvas;
import javafx.scene.control.Alert;
import javafx.stage.FileChooser;
import shape.Shape;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
public class DrawerWithSave extends state.Drawer {
public DrawerWithSave(int width, int height) {
super(width, height);
}
void write(){
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Save");
File file = fileChooser.showSaveDialog(getScene().getWindow());
if (file == null) return;
try {
ShapeWriter.write(file, super.shapes);
}
catch (IOException e) {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Error Dialog");
alert.setHeaderText(null);
alert.setContentText("Ooops, there was an error!");
alert.showAndWait();
}
}
public void load() {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Load");
File file = fileChooser.showOpenDialog(getScene().getWindow());
if (file == null) return;
try {
super.shapes = ShapeReader.read(file);
repaint();
} catch (IOException e) {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Error Dialog");
alert.setHeaderText(null);
alert.setContentText("Ooops, there was an error!");
alert.showAndWait();
}
}
}
package serializer;
import shape.Shape;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collector;
public class ShapeReader {
public static List<Shape> read(File file) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
/*for(String line : bufferedReader.lines().toList()) {
System.out.println(line);
}*/
return null;
}
}
package serializer;
import shape.Shape;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
public class ShapeWriter {
public static void write (File file, List<Shape> shapes) throws IOException {
PrintWriter printWriter = new PrintWriter(file);
printWriter.println("Coucou");
}
}
package shape;
import javafx.application.Application;
import javafx.geometry.Point2D;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.stage.Stage;
public class App extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Group root = new Group();
Canvas canvas = new Canvas(130, 110);
GraphicsContext graphicsContext = canvas.getGraphicsContext2D();
ShapeContainer shapeContainer = new ShapeContainer();
graphicsContext.setFill(Color.AQUAMARINE);
graphicsContext.fillOval(10,10,10,10);
shapeContainer.addShape(new Rectangle(Color.BLUE,new Point2D(10,10), new Point2D(40,40)));
shapeContainer.draw(graphicsContext);
root.getChildren().add(canvas);
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
}
\ No newline at end of file
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
public class Circle implements Shape {
public Circle(double x, double y, double sqrt) {
}
@Override
public int pointsCount() {
return 0;
}
@Override
public Point2D point(int index) {
return null;
}
@Override
public void draw(GraphicsContext context) {
}
}
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
public class Rectangle implements Shape{
Color color;
Rectangle(Color color, Point2D point0, Point2D point1){
this.color = color;
}
@Override
public int pointsCount() {
return 0;
}
@Override
public Point2D point(int index) {
return null;
}
@Override
public void draw(GraphicsContext context) {
}
}
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
public interface Shape {
int pointsCount();
Point2D point(int index);
void draw(GraphicsContext context);
}
package shape;
import javafx.scene.canvas.GraphicsContext;
import java.util.ArrayList;
import java.util.List;
public class ShapeContainer{
private List<Shape> shapes = new ArrayList<>();
public void addShape(Shape shape){}
public void draw(GraphicsContext context){
for(Shape shape : shapes)
shape.draw(context);
}
}
package state;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class App extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Group root = new Group();
Drawer container = new Drawer(800, 600);
root.getChildren().add(container);
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
}
\ No newline at end of file
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<>();
public 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){}
public 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) {
}
}