// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.gui.preferences.shortcut;
import static org.openstreetmap.josm.tools.I18n.tr;
import javax.swing.JPanel;
import org.openstreetmap.josm.gui.preferences.DefaultTabPreferenceSetting;
import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
import org.openstreetmap.josm.tools.GBC;
import org.openstreetmap.josm.tools.Shortcut;
/**
* Keyboard shortcut preferences.
*/
public final class ShortcutPreference extends DefaultTabPreferenceSetting {
private String defaultFilter;
/**
* Factory used to create a new {@code ShortcutPreference}.
*/
public static class Factory implements PreferenceSettingFactory {
@Override
public PreferenceSetting createPreferenceSetting() {
return new ShortcutPreference();
}
}
private ShortcutPreference() {
super(/* ICON(preferences/) */ "shortcuts", tr("Keyboard Shortcuts"), tr("Changing keyboard shortcuts manually."));
}
@Override
public void addGui(PreferenceTabbedPane gui) {
JPanel p = gui.createPreferenceTab(this);
PrefJPanel prefpanel = new PrefJPanel();
p.add(prefpanel, GBC.eol().fill(GBC.BOTH));
if (defaultFilter != null) {
prefpanel.filter(defaultFilter);
}
}
@Override
public boolean ok() {
return Shortcut.savePrefs();
}
/**
* Sets the default filter used to show only shortcuts with descriptions containing given substring.
* @param substring The substring used to filter
* @see PrefJPanel#filter(String)
*/
public void setDefaultFilter(String substring) {
defaultFilter = substring;
}
}