001 package org.shiftone.jrat.desktop.action.file;
002
003 import org.shiftone.jrat.desktop.DesktopPreferences;
004 import org.shiftone.jrat.desktop.util.Errors;
005 import org.shiftone.jrat.util.log.Logger;
006
007 import javax.swing.*;
008 import java.awt.*;
009 import java.awt.event.ActionEvent;
010 import java.awt.event.KeyEvent;
011 import java.util.prefs.Preferences;
012
013 /**
014 * @author (jeff@shiftone.org) Jeff Drost
015 */
016 public class ClearPreferencesAction extends AbstractAction {
017
018 private static final Logger LOG = Logger.getLogger(ClearPreferencesAction.class);
019 private final Component component;
020
021 public ClearPreferencesAction(Component component) {
022 super("Clear All Preferences");
023 putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
024 this.component = component;
025 }
026
027 public void actionPerformed(ActionEvent event) {
028 try {
029 Preferences desktop = Preferences.userNodeForPackage(DesktopPreferences.class);
030 Preferences jrat = desktop.parent();
031 // leaving the shiftone node
032 jrat.removeNode();
033 } catch (Exception e) {
034 Errors.showError(component, e, "Failed to clear preferences");
035 }
036 }
037 }