32 package eu.mihosoft.vrl.v3d.ext.openjfx.utils3d;
35 import javafx.beans.property.Property;
36 import javafx.event.EventHandler;
37 import javafx.geometry.Orientation;
38 import javafx.scene.Scene;
39 import javafx.scene.input.KeyCode;
40 import javafx.scene.input.KeyEvent;
41 import javafx.scene.input.MouseButton;
42 import javafx.scene.input.MouseEvent;
81 public DragSupport(Scene
target,
final KeyCode modifier,
final Orientation orientation,
final Property<Number> property) {
82 this(
target, modifier, MouseButton.PRIMARY, orientation, property, 1);
94 public DragSupport(Scene
target,
final KeyCode modifier, MouseButton mouseButton,
final Orientation orientation,
final Property<Number> property) {
95 this(
target, modifier, mouseButton, orientation, property, 1);
117 public DragSupport(Scene
target,
final KeyCode modifier,
final Orientation orientation,
final Property<Number> property,
final double factor) {
118 this(
target, modifier, MouseButton.PRIMARY, orientation, property, factor);
131 public DragSupport(Scene
target,
final KeyCode modifier,
final MouseButton mouseButton,
final Orientation orientation,
final Property<Number> property,
final double factor) {
134 if (t.getEventType() != MouseEvent.MOUSE_ENTERED_TARGET
135 && t.getEventType() != MouseEvent.MOUSE_EXITED_TARGET) {
138 if (t.getEventType() == MouseEvent.MOUSE_PRESSED) {
139 if (t.getButton() == mouseButton
141 anchor =
property.getValue();
145 }
else if (t.getEventType() == MouseEvent.MOUSE_DRAGGED) {
146 if (t.getButton() == mouseButton
148 property.setValue(
anchor.doubleValue()
155 if (t.getEventType() == KeyEvent.KEY_PRESSED) {
156 if (t.getCode() == modifier) {
157 anchor =
property.getValue();
163 }
else if (t.getEventType() == KeyEvent.KEY_RELEASED) {
165 anchor =
property.getValue();
185 return (keyCode != KeyCode.ALT ^ t.isAltDown())
186 && (keyCode != KeyCode.CONTROL ^ t.isControlDown())
187 && (keyCode != KeyCode.SHIFT ^ t.isShiftDown())
188 && (keyCode != KeyCode.META ^ t.isMetaDown());
199 return (keyCode != KeyCode.ALT ^ t.isAltDown())
200 && (keyCode != KeyCode.CONTROL ^ t.isControlDown())
201 && (keyCode != KeyCode.SHIFT ^ t.isShiftDown())
202 && (keyCode != KeyCode.META ^ t.isMetaDown());
212 private double getCoord(MouseEvent t, Orientation orientation) {
213 switch (orientation) {
215 return t.getScreenX();
217 return t.getScreenY();
219 throw new IllegalArgumentException(
"This orientation is not supported: " + orientation);
DragSupport(Scene target, final KeyCode modifier, MouseButton mouseButton, final Orientation orientation, final Property< Number > property)
MouseEvent lastMouseEvent
double getCoord(MouseEvent t, Orientation orientation)
EventHandler< MouseEvent > mouseEventHandler
EventHandler< KeyEvent > keyboardEventHandler
DragSupport(Scene target, final KeyCode modifier, final Orientation orientation, final Property< Number > property)
DragSupport(Scene target, final KeyCode modifier, final MouseButton mouseButton, final Orientation orientation, final Property< Number > property, final double factor)
boolean isModifierCorrect(KeyEvent t, KeyCode keyCode)
DragSupport(Scene target, final KeyCode modifier, final Orientation orientation, final Property< Number > property, final double factor)
boolean isModifierCorrect(MouseEvent t, KeyCode keyCode)