package com.dci.intellij.dbn.data.find.action;
import com.dci.intellij.dbn.common.ui.KeyUtil;
import com.dci.intellij.dbn.data.find.DataSearchComponent;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CustomShortcutSet;
import com.intellij.openapi.actionSystem.KeyboardShortcut;
import com.intellij.openapi.actionSystem.Shortcut;
import com.intellij.openapi.project.DumbAware;
import javax.swing.JComponent;
import javax.swing.KeyStroke;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
public class CloseOnESCAction extends DataSearchHeaderAction implements DumbAware {
public CloseOnESCAction(DataSearchComponent searchComponent, JComponent component) {
super(searchComponent);
ArrayList<Shortcut> shortcuts = new ArrayList<Shortcut>();
if (KeyUtil.isEmacsKeymap()) {
shortcuts.add(new KeyboardShortcut(KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_MASK), null));
ActionListener actionListener = new ActionListener() {
@Override
public void actionPerformed(final ActionEvent e) {
CloseOnESCAction.this.actionPerformed(null);
}
};
component.registerKeyboardAction(
actionListener,
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
JComponent.WHEN_FOCUSED);
} else {
shortcuts.add(new KeyboardShortcut(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), null));
}
registerCustomShortcutSet(new CustomShortcutSet(shortcuts.toArray(new Shortcut[shortcuts.size()])), component);
}
@Override
public void actionPerformed(AnActionEvent e) {
getSearchComponent().close();
}
}