From 486304dcdd982720e5f50f25ad53827dadbf62c1 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Sun, 12 Jun 2016 02:36:08 +0200 Subject: [PATCH] [FEATURE] Added base key listeners --- .../core/ui/listeners/PBKeyListener.java | 71 ++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/core/ui/listeners/PBKeyListener.java b/src/main/java/org/parabot/core/ui/listeners/PBKeyListener.java index 7f7ba79..b9460e0 100644 --- a/src/main/java/org/parabot/core/ui/listeners/PBKeyListener.java +++ b/src/main/java/org/parabot/core/ui/listeners/PBKeyListener.java @@ -1,7 +1,76 @@ package org.parabot.core.ui.listeners; +import org.parabot.core.ui.listeners.key.ActionEventBinding; +import org.parabot.core.ui.listeners.key.Binding; +import org.parabot.environment.OperatingSystem; + +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; +import java.util.ArrayList; +import java.util.List; + /** * @author JKetelaar */ -public class PBKeyListener { +public class PBKeyListener implements KeyListener { + + private int mainKey; + + private List bindings; + + public PBKeyListener() { + this.bindings = new ArrayList<>(); + this.mainKey = (OperatingSystem.getOS() == OperatingSystem.MAC ? KeyEvent.VK_META : KeyEvent.VK_CONTROL); + this.fillBindings(); + } + + public PBKeyListener(int mainKey) { + this.bindings = new ArrayList<>(); + this.mainKey = mainKey; + this.fillBindings(); + } + + private void fillBindings() { + this.bindings.add(new ActionEventBinding(KeyEvent.VK_R, "Run")); + this.bindings.add(new ActionEventBinding(KeyEvent.VK_R, "Stop")); + } + + public int getMainKey() { + return mainKey; + } + + public void setMainKey(int mainKey) { + this.mainKey = mainKey; + } + + public List getBindings() { + return bindings; + } + + public void addBinding(Binding binding) { + this.bindings.add(binding); + } + + @Override + public void keyTyped(KeyEvent e) { + + } + + @Override + public void keyPressed(KeyEvent e) { + + } + + @Override + public void keyReleased(KeyEvent e) { + System.out.println("test before"); + if (e.getKeyCode() == mainKey) { + System.out.println("Test"); + for (Binding binding : bindings) { + if (binding.getKey() == e.getKeyCode()) { + binding.perform(); + } + } + } + } }