277 {
278 Platform.runLater(() -> {
279 AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
280 if (sceneListener == null) {
281 return null;
282 }
283 // Click events are generated in Scene, so we don't expect them here
284 assert type != AbstractEvents.MOUSEEVENT_CLICKED;
285 EventType<MouseEvent> eventType = AbstractEvents.mouseIDToFXEventID(type);
286 sceneListener.mouseEvent(eventType, x, y, xAbs, yAbs,
287 AbstractEvents.mouseButtonToFXMouseButton(button),
288 popupTrigger, false, // do we know if it's synthesized? RT-20142
289 shift, ctrl, alt, meta,
290 primaryBtnDown, middleBtnDown, secondaryBtnDown);
291 return null;
292 }, getAccessControlContext());
293 });
294 }
295
296 @Override
297 public void scrollEvent(final int type, final double scrollX, final double scrollY,
298 final double x, final double y,
299 final double xAbs, final double yAbs,
300 final boolean shift, final boolean ctrl, final boolean alt, final boolean meta) {
301 {
302 Platform.runLater(() -> {
303 AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
304 if (sceneListener == null) {
305 return null;
306 }
307 sceneListener.scrollEvent(ScrollEvent.SCROLL, scrollX, scrollY, 0, 0, 40.0, 40.0,
308 0, 0, 0, 0, 0,
309 x, y, xAbs, yAbs, shift, ctrl, alt, meta, false, false);
310 return null;
311 }, getAccessControlContext());
312 });
313 }
314 }
315
316 @Override
317 public void inputMethodEvent(final EventType<InputMethodEvent> type,
318 final ObservableList<InputMethodTextRun> composed, final String committed,
319 final int caretPosition) {
320 Platform.runLater(() -> {
321 AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
322 if (sceneListener != null) {
323 sceneListener.inputMethodEvent(type, composed, committed, caretPosition);
324 }
325 return null;
326 });
327 });
328 }
329
347 boolean shiftDown = (modifiers & AbstractEvents.MODIFIER_SHIFT) != 0;
348 boolean controlDown = (modifiers & AbstractEvents.MODIFIER_CONTROL) != 0;
349 boolean altDown = (modifiers & AbstractEvents.MODIFIER_ALT) != 0;
350 boolean metaDown = (modifiers & AbstractEvents.MODIFIER_META) != 0;
351
352 String str = new String(ch);
353 String text = str; // TODO: this must be a text like "HOME", "F1", or "A"
354 javafx.scene.input.KeyEvent keyEvent = new javafx.scene.input.KeyEvent(
355 AbstractEvents.keyIDToFXEventType(type),
356 str, text,
357 KeyCodeMap.valueOf(key),
358 shiftDown, controlDown, altDown, metaDown);
359 sceneListener.keyEvent(keyEvent);
360 }
361 return null;
362 }, getAccessControlContext());
363 });
364 }
365
366 @Override
367 public void setCursor(final Object cursor) {
368 super.setCursor(cursor);
369 host.setCursor((CursorFrame) cursor);
370 }
371
372 @Override
373 public void setDragStartListener(HostDragStartListener l) {
374 embeddedDnD.setDragStartListener(l);
375 }
376
377 @Override
378 public EmbeddedSceneDTInterface createDropTarget() {
379 return embeddedDnD.createDropTarget();
380 }
381
382 @Override
383 public InputMethodRequests getInputMethodRequests() {
384 return inputMethodRequests;
385 }
386 }
|
277 {
278 Platform.runLater(() -> {
279 AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
280 if (sceneListener == null) {
281 return null;
282 }
283 // Click events are generated in Scene, so we don't expect them here
284 assert type != AbstractEvents.MOUSEEVENT_CLICKED;
285 EventType<MouseEvent> eventType = AbstractEvents.mouseIDToFXEventID(type);
286 sceneListener.mouseEvent(eventType, x, y, xAbs, yAbs,
287 AbstractEvents.mouseButtonToFXMouseButton(button),
288 popupTrigger, false, // do we know if it's synthesized? RT-20142
289 shift, ctrl, alt, meta,
290 primaryBtnDown, middleBtnDown, secondaryBtnDown);
291 return null;
292 }, getAccessControlContext());
293 });
294 }
295
296 @Override
297 public void scrollEvent(final int type,
298 final double scrollX, final double scrollY,
299 final double totalScrollX, final double totalScrollY,
300 double xMultiplier, double yMultiplier,
301 final double x, final double y,
302 final double xAbs, final double yAbs,
303 final boolean shift, final boolean ctrl, final boolean alt, final boolean meta,
304 final boolean inertia) {
305 {
306 Platform.runLater(() -> {
307 AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
308 if (sceneListener == null) {
309 return null;
310 }
311 sceneListener.scrollEvent(AbstractEvents.scrollIDToFXEventType(type), scrollX, scrollY, totalScrollX, totalScrollY, xMultiplier, yMultiplier,
312 0, 0, 0, 0, 0, x, y, xAbs, yAbs, shift, ctrl, alt, meta, false, inertia);
313 return null;
314 }, getAccessControlContext());
315 });
316 }
317 }
318
319 @Override
320 public void inputMethodEvent(final EventType<InputMethodEvent> type,
321 final ObservableList<InputMethodTextRun> composed, final String committed,
322 final int caretPosition) {
323 Platform.runLater(() -> {
324 AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
325 if (sceneListener != null) {
326 sceneListener.inputMethodEvent(type, composed, committed, caretPosition);
327 }
328 return null;
329 });
330 });
331 }
332
350 boolean shiftDown = (modifiers & AbstractEvents.MODIFIER_SHIFT) != 0;
351 boolean controlDown = (modifiers & AbstractEvents.MODIFIER_CONTROL) != 0;
352 boolean altDown = (modifiers & AbstractEvents.MODIFIER_ALT) != 0;
353 boolean metaDown = (modifiers & AbstractEvents.MODIFIER_META) != 0;
354
355 String str = new String(ch);
356 String text = str; // TODO: this must be a text like "HOME", "F1", or "A"
357 javafx.scene.input.KeyEvent keyEvent = new javafx.scene.input.KeyEvent(
358 AbstractEvents.keyIDToFXEventType(type),
359 str, text,
360 KeyCodeMap.valueOf(key),
361 shiftDown, controlDown, altDown, metaDown);
362 sceneListener.keyEvent(keyEvent);
363 }
364 return null;
365 }, getAccessControlContext());
366 });
367 }
368
369 @Override
370 public void zoomEvent(final int type, final double zoomFactor, final double totalZoomFactor,
371 final double x, final double y, final double screenX, final double screenY,
372 boolean shift, boolean ctrl, boolean alt, boolean meta, boolean inertia)
373 {
374 Platform.runLater(() -> {
375 AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
376 if (sceneListener == null) {
377 return null;
378 }
379 sceneListener.zoomEvent(AbstractEvents.zoomIDToFXEventType(type),
380 zoomFactor, totalZoomFactor,
381 x, y, screenX, screenY,
382 shift, ctrl, alt, meta, false, inertia);
383 return null;
384 }, getAccessControlContext());
385 });
386 }
387
388 @Override
389 public void rotateEvent(final int type, final double angle, final double totalAngle,
390 final double x, final double y, final double screenX, final double screenY,
391 boolean shift, boolean ctrl, boolean alt, boolean meta, boolean inertia)
392 {
393 Platform.runLater(() -> {
394 AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
395 if (sceneListener == null) {
396 return null;
397 }
398 sceneListener.rotateEvent(AbstractEvents.rotateIDToFXEventType(type),
399 angle, totalAngle,
400 x, y, screenX, screenY,
401 shift, ctrl, alt, meta, false, inertia);
402 return null;
403 }, getAccessControlContext());
404 });
405 }
406
407 @Override
408 public void swipeEvent(final int type, final double x, final double y, final double screenX, final double screenY,
409 boolean shift, boolean ctrl, boolean alt, boolean meta)
410 {
411 Platform.runLater(() -> {
412 AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
413 if (sceneListener == null) {
414 return null;
415 }
416 sceneListener.swipeEvent(AbstractEvents.swipeIDToFXEventType(type),
417 0, x, y, screenX, screenY,
418 shift, ctrl, alt, meta, false);
419 return null;
420 }, getAccessControlContext());
421 });
422 }
423
424 @Override
425 public void setCursor(final Object cursor) {
426 super.setCursor(cursor);
427 host.setCursor((CursorFrame) cursor);
428 }
429
430 @Override
431 public void setDragStartListener(HostDragStartListener l) {
432 embeddedDnD.setDragStartListener(l);
433 }
434
435 @Override
436 public EmbeddedSceneDTInterface createDropTarget() {
437 return embeddedDnD.createDropTarget();
438 }
439
440 @Override
441 public InputMethodRequests getInputMethodRequests() {
442 return inputMethodRequests;
443 }
444 }
|