package jp.ac.aiit.jointry.services.picture.paint.views; import java.util.logging.Level; import java.util.logging.Logger; import javafx.beans.value.ObservableValue; import javafx.event.EventHandler; import javafx.geometry.Point2D; import javafx.scene.canvas.Canvas; import javafx.stage.Stage; import javafx.stage.WindowEvent; import jp.ac.aiit.jointry.services.picture.camera.CameraApplication; import jp.ac.aiit.jointry.services.picture.paint.PaintApplication; public class PtCamera extends PaintTool { @Override public void changed(ObservableValue ov, PaintTool oldValue, PaintTool newValue) { if (this == newValue) { this.setEffect(AppEffect.RAISED); startCamera(); } else { this.setEffect(AppEffect.LOWERED); } } @Override public void paint(Canvas canvas, Point2D start, Point2D end) { //なにもしない } private void startCamera() { final CameraApplication app = new CameraApplication(); try { Stage stage = app.start(this.getScene().getWindow()); stage.setOnHidden(new EventHandler<WindowEvent>() { @Override public void handle(WindowEvent t) { if (app.getResult() != null) { PaintApplication.getModel().setImage(app.getResult()); } PtCamera.this.setEffect(AppEffect.LOWERED); //終わったら表示上は選択解除 } }); } catch (Exception ex) { Logger.getLogger(PtCamera.class.getName()).log(Level.SEVERE, null, ex); } } }