package org.bbssh.keybinding.defaults; import net.rim.device.api.system.KeyListener; import net.rim.device.api.system.KeypadListener; import net.rim.device.api.ui.Keypad; import org.bbssh.command.CommandConstants; import org.bbssh.keybinding.KeyBindingHelper; import org.bbssh.model.KeyBindingManager; import org.bbssh.platform.PlatformServicesProvider; import org.bbssh.terminal.VT320; public class PhoneBase implements DefaultKeybindingSet { public void bindKeys(KeyBindingManager mgr, PlatformServicesProvider psp) { mgr.bindKey(Keypad.KEY_ENTER, KeyListener.STATUS_ALT, CommandConstants.SHOW_OVERLAY_INPUT); mgr.bindKey(Keypad.KEY_ESCAPE, 0, CommandConstants.POP_TERMINAL_SCREEN); mgr.bindKey(Keypad.KEY_ENTER, 0, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_ENTER); mgr.bindKey(Keypad.KEY_SEND, 0, CommandConstants.INPUT_MODE); mgr.bindKey(Keypad.KEY_END, KeyListener.STATUS_ALT, CommandConstants.DISCONNECT_SESSION); if (psp.hasVolumeControls()) { // Increment font size mgr.bindKey(Keypad.KEY_VOLUME_UP, KeyListener.STATUS_ALT, CommandConstants.INCDEC_FONT_SIZE, new Integer(0)); // Decrement font size mgr.bindKey(Keypad.KEY_VOLUME_DOWN, KeyListener.STATUS_ALT, CommandConstants.INCDEC_FONT_SIZE, new Integer(1)); mgr.bindKey(Keypad.KEY_VOLUME_UP, 0, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_ESCAPE); mgr.bindKey(Keypad.KEY_VOLUME_DOWN, 0, CommandConstants.SHOW_SCREEN_SPECIAL_KEYS); } if (psp.hasAccelerometer()) { mgr.bindKey(Keypad.KEY_SPEAKERPHONE, KeyListener.STATUS_ALT, CommandConstants.TOGGLE_ORIENTATION_LOCK); } if (psp.hasMuteKey()) { mgr.bindKey(Keypad.KEY_SPEAKERPHONE, 0, CommandConstants.SHOW_SCREEN_MACRO_LIST); } if (psp.hasNavigationMethod()) { mgr.bindKey(KeyBindingHelper.KEY_NAV_CLICK, KeyListener.STATUS_ALT, CommandConstants.COPY_CURRENT_BUFFER); if (psp.hasLeftShift()) mgr.bindKey(KeyBindingHelper.KEY_NAV_CLICK, KeyListener.STATUS_SHIFT_LEFT | KeyListener.STATUS_SHIFT, CommandConstants.PASTE_TEXT); if (psp.hasRightShift()) mgr.bindKey(KeyBindingHelper.KEY_NAV_CLICK, KeyListener.STATUS_SHIFT_RIGHT | KeyListener.STATUS_SHIFT, CommandConstants.PASTE_TEXT); mgr.bindKey(KeyBindingHelper.KEY_NAV_UP, 0, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_UP); mgr.bindKey(KeyBindingHelper.KEY_NAV_DOWN, 0, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_DOWN); mgr.bindKey(KeyBindingHelper.KEY_NAV_LEFT, 0, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_LEFT); mgr.bindKey(KeyBindingHelper.KEY_NAV_RIGHT, 0, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_RIGHT); mgr.bindKey(KeyBindingHelper.KEY_NAV_UP, KeypadListener.STATUS_ALT, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_PAGE_UP); mgr.bindKey(KeyBindingHelper.KEY_NAV_DOWN, KeypadListener.STATUS_ALT, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_PAGE_DOWN); mgr.bindKey(KeyBindingHelper.KEY_NAV_LEFT, KeypadListener.STATUS_ALT, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_HOME); mgr.bindKey(KeyBindingHelper.KEY_NAV_RIGHT, KeypadListener.STATUS_ALT, CommandConstants.SEND_TERMINAL_KEY, VT320.VK_END); } int key = -1; if (psp.hasCameraFocusKey()) { key = KeyBindingHelper.KEY_CAMERA_FOCUS; } else if (psp.hasConvKey1()) { key = Keypad.KEY_CONVENIENCE_1; } else if (psp.hasConvKey2()) { key = Keypad.KEY_CONVENIENCE_2; } if (key > -1) { mgr.bindKey(key, 0, CommandConstants.SHOW_SCREEN_URL_SCRAPER); mgr.bindKey(key, KeypadListener.STATUS_ALT, CommandConstants.LIST_SESSIONS); } } }