All Downloads are FREE. Search and download functionalities are using the official Maven repository.

us.ihmc.scs2.sessionVisualizer.jfx.managers.WindowShortcutManager Maven / Gradle / Ivy

package us.ihmc.scs2.sessionVisualizer.jfx.managers;

import javafx.event.EventHandler;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.stage.Window;
import us.ihmc.messager.Messager;
import us.ihmc.scs2.sessionVisualizer.jfx.SessionVisualizerTopics;

public class WindowShortcutManager
{
   private final Window owner;
   private final EventHandler currentIndexSteppingListener;

   public WindowShortcutManager(Window owner, Messager messager, SessionVisualizerTopics topics)
   {
      this.owner = owner;
      currentIndexSteppingListener = keyEvent ->
      {
         if (!keyEvent.isAltDown())
            return;

         int step;

         if (keyEvent.getCode() == KeyCode.LEFT || keyEvent.getCode() == KeyCode.KP_LEFT)
            step = -1;
         else if (keyEvent.getCode() == KeyCode.RIGHT || keyEvent.getCode() == KeyCode.KP_RIGHT)
            step = 1;
         else
            return;

         if (keyEvent.isShiftDown())
            step *= 10;

         messager.submitMessage(topics.getYoBufferIncrementCurrentIndexRequest(), step);
         keyEvent.consume();
      };

      owner.setOnCloseRequest(e -> stop());
   }

   public void start()
   {
      owner.addEventHandler(KeyEvent.KEY_PRESSED, currentIndexSteppingListener);
   }

   public void stop()
   {
      owner.removeEventHandler(KeyEvent.KEY_PRESSED, currentIndexSteppingListener);
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy