Skip to content
Snippets Groups Projects
DrawerWithSave.java 1.52 KiB
Newer Older
  • Learn to ignore specific revisions
  • BasileCouetoux's avatar
    BasileCouetoux committed
    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, Collectors.toList());
                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();
            }
        }
    }