2020-10-12 16:12:23 +02:00
|
|
|
package envoy.client.data.shortcuts;
|
|
|
|
|
|
|
|
import javafx.scene.input.*;
|
|
|
|
|
|
|
|
import envoy.client.data.Context;
|
|
|
|
import envoy.client.helper.ShutdownHelper;
|
|
|
|
import envoy.client.ui.SceneContext.SceneInfo;
|
|
|
|
import envoy.client.util.UserUtil;
|
2020-10-17 16:40:13 +02:00
|
|
|
import envoy.data.User.UserStatus;
|
2020-10-12 16:12:23 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Envoy-specific implementation of the keyboard-shortcut interaction offered by
|
|
|
|
* {@link GlobalKeyShortcuts}.
|
|
|
|
*
|
|
|
|
* @author Leon Hofmeister
|
|
|
|
* @since Envoy Client v0.3-beta
|
|
|
|
*/
|
|
|
|
public class EnvoyShortcutConfig {
|
|
|
|
|
|
|
|
private EnvoyShortcutConfig() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Supplies the default shortcuts for {@link GlobalKeyShortcuts}.
|
|
|
|
*
|
|
|
|
* @since Envoy Client v0.3-beta
|
|
|
|
*/
|
|
|
|
public static void initializeEnvoyShortcuts() {
|
|
|
|
final var instance = GlobalKeyShortcuts.getInstance();
|
|
|
|
|
|
|
|
// Add the option to exit with "Control" + "Q" or "Alt" + "F4" as offered by
|
|
|
|
// some desktop environments
|
|
|
|
instance.add(new KeyCodeCombination(KeyCode.Q, KeyCombination.CONTROL_DOWN), ShutdownHelper::exit);
|
|
|
|
|
|
|
|
// Add the option to logout using "Control"+"Shift"+"L" if not in login scene
|
|
|
|
instance.addForNotExcluded(new KeyCodeCombination(KeyCode.L, KeyCombination.CONTROL_DOWN, KeyCombination.SHIFT_DOWN),
|
|
|
|
UserUtil::logout,
|
|
|
|
SceneInfo.LOGIN_SCENE);
|
|
|
|
|
|
|
|
// Add option to open settings scene with "Control"+"S", if not in login scene
|
|
|
|
instance.addForNotExcluded(new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_DOWN),
|
|
|
|
() -> Context.getInstance().getSceneContext().load(SceneInfo.SETTINGS_SCENE),
|
|
|
|
SceneInfo.SETTINGS_SCENE,
|
|
|
|
SceneInfo.LOGIN_SCENE);
|
2020-10-17 16:40:13 +02:00
|
|
|
|
|
|
|
// Add option to change to status away
|
|
|
|
instance.addForNotExcluded(new KeyCodeCombination(KeyCode.A, KeyCombination.CONTROL_DOWN, KeyCombination.SHIFT_DOWN),
|
|
|
|
() -> UserUtil.changeStatus(UserStatus.AWAY),
|
|
|
|
SceneInfo.LOGIN_SCENE);
|
|
|
|
|
|
|
|
// Add option to change to status busy
|
|
|
|
instance.addForNotExcluded(new KeyCodeCombination(KeyCode.B, KeyCombination.CONTROL_DOWN, KeyCombination.SHIFT_DOWN),
|
|
|
|
() -> UserUtil.changeStatus(UserStatus.BUSY),
|
|
|
|
SceneInfo.LOGIN_SCENE);
|
|
|
|
|
|
|
|
// Add option to change to status offline
|
|
|
|
instance.addForNotExcluded(new KeyCodeCombination(KeyCode.F, KeyCombination.CONTROL_DOWN, KeyCombination.SHIFT_DOWN),
|
|
|
|
() -> UserUtil.changeStatus(UserStatus.OFFLINE),
|
|
|
|
SceneInfo.LOGIN_SCENE);
|
|
|
|
|
|
|
|
// Add option to change to status online
|
|
|
|
instance.addForNotExcluded(new KeyCodeCombination(KeyCode.N, KeyCombination.CONTROL_DOWN, KeyCombination.SHIFT_DOWN),
|
|
|
|
() -> UserUtil.changeStatus(UserStatus.ONLINE),
|
|
|
|
SceneInfo.LOGIN_SCENE);
|
2020-10-12 16:12:23 +02:00
|
|
|
}
|
|
|
|
}
|