package org.rr.jeborker.gui.action; import java.awt.event.ActionEvent; import java.util.logging.Level; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JOptionPane; import org.rr.commons.log.LoggerFactory; import org.rr.jeborker.app.JeboorkerConstants; import org.rr.jeborker.app.preferences.PreferenceStoreFactory; import org.rr.jeborker.gui.MainController; class ChangeLookAndFeelAction extends AbstractAction { private static final long serialVersionUID = -6464113152395695332L; private String lafName; ChangeLookAndFeelAction(String text) { this.lafName = text; putValue(Action.NAME, text); putValue(ApplicationAction.NON_THREADED_ACTION_KEY, Boolean.TRUE); //No threading } @Override public void actionPerformed(ActionEvent e) { try { String lafClassName = JeboorkerConstants.LOOK_AND_FEELS.get(lafName); if(lafClassName != null) { openMessageDialog(); PreferenceStoreFactory.getPreferenceStore(PreferenceStoreFactory.PREFERENCE_KEYS.LOOK_AND_FEEL) .addEntryAsString(PreferenceStoreFactory.PREFERENCE_KEYS.LOOK_AND_FEEL, lafClassName); } else { LoggerFactory.getLogger().log(Level.WARNING, "Could not set look and feel " + lafName); } } catch (Exception ex) { LoggerFactory.getLogger().log(Level.WARNING, "Could not set look and feel " + lafName, ex); } } private void openMessageDialog() { String message = Bundle.getFormattedString("ChangeLookAndFeelAction.restart.message", lafName); String title = Bundle.getString("ChangeLookAndFeelAction.name"); MainController.getController().showMessageBox(message, title, JOptionPane.OK_OPTION, "ChangeLookAndFeelAction", -1, false); } }