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    }