in idea-plugin/src/main/java/com/jetbrains/ide/streamdeck/keymap/KeymapPanel.java [84:131]
public KeymapPanel(boolean showOnlyConflicts) {
myShowOnlyConflicts = showOnlyConflicts;
setLayout(new BorderLayout());
JPanel keymapPanel = new JPanel(new BorderLayout());
keymapPanel.add(myManager.getSchemesPanel(), BorderLayout.NORTH);
keymapPanel.add(createKeymapSettingsPanel(), BorderLayout.CENTER);
IdeFrame ideFrame = IdeFocusManager.getGlobalInstance().getLastFocusedFrame();
if (ideFrame != null && NationalKeyboardSupport.isSupportedKeyboardLayout(ideFrame.getComponent())) {
nationalKeyboardsSupport = new JCheckBox(
new AbstractAction(KeyMapBundle.message(NationalKeyboardSupport.getKeymapBundleKey())) {
@Override
public void actionPerformed(ActionEvent e) {
NationalKeyboardSupport.getInstance().setEnabled(nationalKeyboardsSupport.isSelected());
try {
VMOptions.setProperty(NationalKeyboardSupport.getVMOption(), Boolean.toString(NationalKeyboardSupport.getInstance().getEnabled()));
ApplicationManager.getApplication().invokeLater(
() -> ApplicationManager.getApplication().restart(),
ModalityState.nonModal()
);
}
catch (IOException x) {
Messages.showErrorDialog(keymapPanel, IoErrorText.message(x), OptionsBundle.message("cannot.save.settings.default.dialog.title"));
}
}
});
nationalKeyboardsSupport.setSelected(NationalKeyboardSupport.getInstance().getEnabled());
nationalKeyboardsSupport.setBorder(JBUI.Borders.empty());
keymapPanel.add(nationalKeyboardsSupport, BorderLayout.SOUTH);
}
add(keymapPanel, BorderLayout.CENTER);
addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(final @NotNull PropertyChangeEvent evt) {
if (evt.getPropertyName().equals("ancestor") && evt.getNewValue() != null && evt.getOldValue() == null && myQuickListsModified) {
currentKeymapChanged();
myQuickListsModified = false;
}
}
});
myFilteringPanel.addPropertyChangeListener("shortcut", new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
filterTreeByShortcut(myFilteringPanel.getShortcut());
}
});
}