package com.fr.common.inputevent; import com.fr.stable.OperatingSystem; import javax.swing.*; import javax.swing.text.DefaultEditorKit; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; /** * Created by hzzz on 2017/5/26. */ public class InputEventBaseOnOS { private static final boolean IS_MACOS = OperatingSystem.isMacOS(); public static boolean isControlDown(MouseEvent e) { return IS_MACOS ? e.isMetaDown() : e.isControlDown(); } public static boolean isControlDown(KeyEvent e) { return IS_MACOS ? e.isMetaDown() : e.isControlDown(); } public static void addBasicEditInputMap(JComponent jComponent) { InputMap inputMap = jComponent.getInputMap(); while (inputMap.getParent() != null) { inputMap = inputMap.getParent(); } if (inputMap.get(KeyStroke.getKeyStroke(KeyEvent.VK_A, DEFAULT_MODIFIER)) == null) { inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, DEFAULT_MODIFIER), DefaultEditorKit.selectAllAction); } if (inputMap.get(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER)) == null) { inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER), DefaultEditorKit.copyAction); } if (inputMap.get(KeyStroke.getKeyStroke(KeyEvent.VK_V, DEFAULT_MODIFIER)) == null) { inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_V, DEFAULT_MODIFIER), DefaultEditorKit.pasteAction); } if (inputMap.get(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER)) == null) { inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER), DefaultEditorKit.cutAction); } } }