package org.expeditee.gio.javafx; import javafx.scene.paint.CycleMethod; import javafx.scene.paint.Stop; public class JavaFXConversions { public static org.expeditee.core.Colour fromJavaFXColor(javafx.scene.paint.Color color) { if (color == null) return null; return new org.expeditee.core.Colour((float) color.getRed(), (float) color.getGreen(), (float) color.getBlue(), (float) color.getOpacity()); } public static javafx.scene.paint.Color toJavaFXColor(org.expeditee.core.Colour colour) { if (colour == null) return null; return new javafx.scene.paint.Color(colour.getRedFloat(), colour.getGreenFloat(), colour.getBlueFloat(), colour.getAlphaFloat()); } public static org.expeditee.core.bounds.AxisAlignedBoxBounds fromJavaFXRectangle2D(javafx.geometry.Rectangle2D rectangle) { if (rectangle == null) return null; return new org.expeditee.core.bounds.AxisAlignedBoxBounds((int) rectangle.getMinX(), (int) rectangle.getMinY(), (int) rectangle.getWidth(), (int) rectangle.getHeight()); } public static javafx.geometry.Rectangle2D toJavaFXRectangle2D(org.expeditee.core.bounds.AxisAlignedBoxBounds box) { if (box == null) return null; return new javafx.geometry.Rectangle2D(box.getMinX(), box.getMinY(), box.getWidth(), box.getHeight()); } public static javafx.scene.paint.LinearGradient toJavaFXLinearGradient(org.expeditee.core.GradientFill fill) { if (fill == null) return null; Stop[] stops = new Stop[2]; stops[0] = new Stop(0, toJavaFXColor(fill.getFromColour())); stops[1] = new Stop(1, toJavaFXColor(fill.getToColour())); CycleMethod cyclic = fill.isAcyclic() ? CycleMethod.NO_CYCLE : CycleMethod.REFLECT; return new javafx.scene.paint.LinearGradient( fill.getFromPoint().getX(), fill.getFromPoint().getY(), fill.getToPoint().getX(), fill.getToPoint().getY(), false, cyclic, stops ); } public static javafx.scene.shape.StrokeLineCap toJavaFXStrokeLineCap(org.expeditee.core.Stroke.CAP cap) { switch (cap) { case BUTT: return javafx.scene.shape.StrokeLineCap.BUTT; case ROUND: return javafx.scene.shape.StrokeLineCap.ROUND; case SQUARE: return javafx.scene.shape.StrokeLineCap.SQUARE; default: return null; } } public static javafx.scene.shape.StrokeLineJoin toJavaFXStrokeLineJoin(org.expeditee.core.Stroke.JOIN join) { switch (join) { case BEVEL: return javafx.scene.shape.StrokeLineJoin.BEVEL; case MITER: return javafx.scene.shape.StrokeLineJoin.MITER; case ROUND: return javafx.scene.shape.StrokeLineJoin.ROUND; default: return null; } } public static org.expeditee.gio.input.KBMInputEvent.Key fromJavaFXKeyCode(javafx.scene.input.KeyCode key) { switch (key) { case SHIFT: return org.expeditee.gio.input.KBMInputEvent.Key.SHIFT; case CONTROL: return org.expeditee.gio.input.KBMInputEvent.Key.CTRL; case ALT: return org.expeditee.gio.input.KBMInputEvent.Key.ALT; case ESCAPE: return org.expeditee.gio.input.KBMInputEvent.Key.ESC; case F1: return org.expeditee.gio.input.KBMInputEvent.Key.F1; case F2: return org.expeditee.gio.input.KBMInputEvent.Key.F2; case F3: return org.expeditee.gio.input.KBMInputEvent.Key.F3; case F4: return org.expeditee.gio.input.KBMInputEvent.Key.F4; case F5: return org.expeditee.gio.input.KBMInputEvent.Key.F5; case F6: return org.expeditee.gio.input.KBMInputEvent.Key.F6; case F7: return org.expeditee.gio.input.KBMInputEvent.Key.F7; case F8: return org.expeditee.gio.input.KBMInputEvent.Key.F8; case F9: return org.expeditee.gio.input.KBMInputEvent.Key.F9; case F10: return org.expeditee.gio.input.KBMInputEvent.Key.F10; case F11: return org.expeditee.gio.input.KBMInputEvent.Key.F11; case F12: return org.expeditee.gio.input.KBMInputEvent.Key.F12; case UP: return org.expeditee.gio.input.KBMInputEvent.Key.UP_ARROW; case DOWN: return org.expeditee.gio.input.KBMInputEvent.Key.DOWN_ARROW; case LEFT: return org.expeditee.gio.input.KBMInputEvent.Key.LEFT_ARROW; case RIGHT: return org.expeditee.gio.input.KBMInputEvent.Key.RIGHT_ARROW; case HOME: return org.expeditee.gio.input.KBMInputEvent.Key.HOME; case END: return org.expeditee.gio.input.KBMInputEvent.Key.END; case DELETE: return org.expeditee.gio.input.KBMInputEvent.Key.DELETE; case PAGE_UP: return org.expeditee.gio.input.KBMInputEvent.Key.PAGE_UP; case PAGE_DOWN: return org.expeditee.gio.input.KBMInputEvent.Key.PAGE_DOWN; case BACK_SPACE: return org.expeditee.gio.input.KBMInputEvent.Key.BACKSPACE; case TAB: return org.expeditee.gio.input.KBMInputEvent.Key.TAB; case A: return org.expeditee.gio.input.KBMInputEvent.Key.A; case B: return org.expeditee.gio.input.KBMInputEvent.Key.B; case C: return org.expeditee.gio.input.KBMInputEvent.Key.C; case D: return org.expeditee.gio.input.KBMInputEvent.Key.D; case E: return org.expeditee.gio.input.KBMInputEvent.Key.E; case F: return org.expeditee.gio.input.KBMInputEvent.Key.F; case G: return org.expeditee.gio.input.KBMInputEvent.Key.G; case H: return org.expeditee.gio.input.KBMInputEvent.Key.H; case I: return org.expeditee.gio.input.KBMInputEvent.Key.I; case J: return org.expeditee.gio.input.KBMInputEvent.Key.J; case K: return org.expeditee.gio.input.KBMInputEvent.Key.K; case L: return org.expeditee.gio.input.KBMInputEvent.Key.L; case M: return org.expeditee.gio.input.KBMInputEvent.Key.M; case N: return org.expeditee.gio.input.KBMInputEvent.Key.N; case O: return org.expeditee.gio.input.KBMInputEvent.Key.O; case P: return org.expeditee.gio.input.KBMInputEvent.Key.P; case Q: return org.expeditee.gio.input.KBMInputEvent.Key.Q; case R: return org.expeditee.gio.input.KBMInputEvent.Key.R; case S: return org.expeditee.gio.input.KBMInputEvent.Key.S; case T: return org.expeditee.gio.input.KBMInputEvent.Key.T; case U: return org.expeditee.gio.input.KBMInputEvent.Key.U; case V: return org.expeditee.gio.input.KBMInputEvent.Key.V; case W: return org.expeditee.gio.input.KBMInputEvent.Key.W; case X: return org.expeditee.gio.input.KBMInputEvent.Key.X; case Y: return org.expeditee.gio.input.KBMInputEvent.Key.Y; case Z: return org.expeditee.gio.input.KBMInputEvent.Key.Z; default: return null; } } }