void addBooleanComponent(String name, boolean currentValue) { configGridLayout.setRows(configGridLayout.getRows() + 1); addConfigLabel(name); JCheckBox checkBox = new JCheckBox(); checkBox.setSelected(currentValue); componentByName.put(name, checkBox); configPanel.add(checkBox); }
void revertConfig() { try { debug("reverting config panel"); Config config = playerObjects.getConfig(); for (Field field : config.getClass().getDeclaredFields()) { Annotation excludeAnnotation = field.getAnnotation(ReflectionHelper.Exclude.class); if (excludeAnnotation == null) { // so, this field is not excluded debug("field " + field.getName()); Class<?> fieldType = field.getType(); Method getMethod = getGetMethod(config.getClass(), field.getType(), field.getName()); if (getMethod != null) { debug(" ... found accessor method"); Object value = getMethod.invoke(config); String fieldname = field.getName(); Component component = componentByName.get(fieldname); if (component != null) { debug(" ... found component"); if (fieldType == String.class) { ((JTextField) component).setText((String) value); } if (fieldType == boolean.class || fieldType == Boolean.class) { ((JCheckBox) component).setSelected((Boolean) value); } if (fieldType == float.class || fieldType == Float.class) { ((JTextField) component).setText("" + value); } if (fieldType == int.class || fieldType == Integer.class) { ((JTextField) component).setText("" + value); } } } else { playerObjects .getLogFile() .WriteLine("No get accessor method for config field " + field.getName()); } } } } catch (Exception e) { playerObjects.getLogFile().WriteLine(Formatting.exceptionToStackTrace(e)); } }