configpanel: various fixes (#2774)

* configpanel: ensure enums are properly displayed

* configpanel: properly categorize buttons.

* configpanel: remove unnecessary button array.
This commit is contained in:
Ganom
2020-08-13 23:06:20 -04:00
committed by GitHub
parent 25092dd865
commit 64da9b0ed1

View File

@@ -440,8 +440,6 @@ class ConfigPanel extends PluginPanel
ConfigDescriptor cd = pluginConfig.getConfigDescriptor();
assert cd != null;
List<JButton> buttons = new ArrayList<>();
Map<String, Map<String, String>> pluginsInfoMap = externalPluginManager.getPluginsInfoMap();
if (pluginConfig.getPlugin() != null && pluginsInfoMap.containsKey(pluginConfig.getPlugin().getClass().getSimpleName()))
@@ -566,28 +564,6 @@ class ConfigPanel extends PluginPanel
}
}
if (cid.getType() == Button.class)
{
try
{
ConfigItem item = cid.getItem();
JButton button = new JButton(item.name());
button.addActionListener((e) -> {
ConfigButtonClicked event = new ConfigButtonClicked();
event.setGroup(cd.getGroup().value());
event.setKey(cid.getItem().keyName());
eventBus.post(ConfigButtonClicked.class, event);
});
buttons.add(button);
}
catch (Exception ex)
{
log.error("Adding action listener failed: {}", ex.getMessage());
ex.printStackTrace();
}
continue;
}
JPanel item = new JPanel();
item.setLayout(new BorderLayout());
item.setMinimumSize(new Dimension(PANEL_WIDTH, 0));
@@ -597,6 +573,28 @@ class ConfigPanel extends PluginPanel
configEntryName.setToolTipText("<html>" + name + ":<br>" + cid.getItem().description() + "</html>");
item.add(configEntryName, cid.getType() != String.class ? BorderLayout.CENTER : BorderLayout.NORTH);
if (cid.getType() == Button.class)
{
try
{
ConfigItem cidItem = cid.getItem();
JButton button = new JButton(cidItem.name());
button.addActionListener((e) ->
{
ConfigButtonClicked event = new ConfigButtonClicked();
event.setGroup(cd.getGroup().value());
event.setKey(cid.getItem().keyName());
eventBus.post(ConfigButtonClicked.class, event);
});
item.add(button);
}
catch (Exception ex)
{
log.error("Adding action listener failed: {}", ex.getMessage());
ex.printStackTrace();
}
}
if (cid.getType() == boolean.class)
{
JCheckBox checkbox = new JCheckBox();
@@ -612,7 +610,8 @@ class ConfigPanel extends PluginPanel
item.remove(configEntryName);
JButton button = new JButton(cid.getItem().name());
button.addActionListener((e) -> {
button.addActionListener((e) ->
{
log.debug("Running consumer: {}.{}", cd.getGroup().value(), cid.getItem().keyName());
configManager.getConsumer(cd.getGroup().value(), cid.getItem().keyName()).accept(pluginConfig.getPlugin());
});
@@ -945,7 +944,7 @@ class ConfigPanel extends PluginPanel
box.setToolTipText(Text.titleCase((Enum) box.getSelectedItem()));
}
});
item.add(box, BorderLayout.CENTER);
item.add(box, BorderLayout.EAST);
}
if (cid.getType() == Keybind.class || cid.getType() == ModifierlessKeybind.class)
@@ -1015,8 +1014,6 @@ class ConfigPanel extends PluginPanel
}
}
buttons.forEach(mainPanel::add);
JButton resetButton = new JButton("Reset");
resetButton.addActionListener((e) ->
{