private void doPushKey( final Timeout pushTime, final KeyboardButton key, final Modifier... modifiers) { factory.runAction( control, new Action() { @Override public void run(Object... parameters) { for (Modifier m : modifiers) { factory.pressModifier(m); } GlassInputFactory.getRobot().keyPress(factory.map.key(key)); pushTime.sleep(); GlassInputFactory.getRobot().keyRelease(factory.map.key(key)); for (Modifier m : modifiers) { factory.releaseModifier(m); } } @Override public String toString() { return "Pushing " + key + " key " + factory.getModifiersString(modifiers); } }, detached); }
private void doReleaseKey(final KeyboardButton key, final Modifier... modifiers) { factory.runAction( control, new Action() { @Override public void run(Object... parameters) { GlassInputFactory.getRobot().keyRelease(factory.map.key(key)); for (Modifier m : modifiers) { factory.releaseModifier(m); } } @Override public String toString() { return "Releasing " + key + " key " + factory.getModifiersString(modifiers); } }, detached); }
@Override public void typeChar(final char keyChar, final Timeout pushTime) { factory.runAction( control, new Action() { @Override public void run(Object... parameters) { doPushKey( pushTime, (KeyboardButton) control.getEnvironment().getBindingMap().getCharKey(keyChar), control.getEnvironment().getBindingMap().getCharModifiers(keyChar)); } @Override public String toString() { return "Typing '" + keyChar + "' char"; } }, detached); }