/** Creates a panel that has a combo box to select a log level */ private Component createLogLevelPanel() { JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); logLevelComboBox = new JComboBox(getLogLevelWrappers()); panel.add(Utility.addLeftJustifiedComponent(new JLabel("Log Level"))); panel.add(Utility.addLeftJustifiedComponent(logLevelComboBox)); // initialize our value String logLevelName = settingsNode.getValueOfChild(LOG_LEVEL, null); LogLevel logLevel = gradlePluginLord.getLogLevel(); if (logLevelName != null) { try { logLevel = LogLevel.valueOf(logLevelName); } catch ( IllegalArgumentException e) // this may happen if the enum changes. We don't want this to stop the whole UI { logger.error("Converting log level text to log level enum '" + logLevelName + "'", e); } } gradlePluginLord.setLogLevel(logLevel); setLogLevelComboBoxSetting(logLevel); logLevelComboBox.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { LogLevelWrapper wrapper = (LogLevelWrapper) logLevelComboBox.getSelectedItem(); if (wrapper != null) { gradlePluginLord.setLogLevel(wrapper.logLevel); settingsNode.setValueOfChild(LOG_LEVEL, wrapper.logLevel.name()); } } }); return panel; }