/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package me.dsnet.quickopener.prefs;
import java.util.ArrayList;
import java.util.List;
import java.util.prefs.BackingStoreException;
import org.openide.util.NbPreferences;
/**
*
* @author SessonaD
*/
public class PrefsUtil {
public static void store(String key, String val){
NbPreferences.forModule(QuickOpenerPanel.class).put(key,val);
}
public static void removeSingleProperty(String key){
NbPreferences.forModule(QuickOpenerPanel.class).remove(key);
}
public static void remove(String key) throws BackingStoreException{
List<QuickOpenerProperty> commands = getAllMatching("command");
List<QuickOpenerProperty> folders = getAllMatching("folder");
NbPreferences.forModule(QuickOpenerPanel.class).clear();
for(QuickOpenerProperty p:commands){
String desc="command" + p.getDescription().replaceAll(" ", "_");
if(! desc.equals(key))
store(desc,p.getValue());
}
for(QuickOpenerProperty p:folders){
String desc="folder" + p.getDescription().replaceAll(" ", "_");
if(! desc.equals(key))
store(desc,p.getValue());
}
}
public static void removeAll(String prefix) throws BackingStoreException{
List<QuickOpenerProperty> commands = getAllMatching("command");
List<QuickOpenerProperty> folders = getAllMatching("folder");
NbPreferences.forModule(QuickOpenerPanel.class).clear();
if (prefix.equals("command")) {
for (QuickOpenerProperty p : folders) {
String desc = "folder" + p.getDescription().replaceAll(" ", "_");
store(desc, p.getValue());
}
} else if (prefix.equals("folder")) {
for (QuickOpenerProperty p : commands) {
String desc = "command" + p.getDescription().replaceAll(" ", "_");
store(desc, p.getValue());
}
}
}
public static QuickOpenerProperty load(String prefix,String key, String defaultVal){
String desc =(prefix==null)?key:key.replace(prefix, "");
desc =desc.replaceAll("_", " ");
return new QuickOpenerProperty(desc,NbPreferences.forModule(QuickOpenerPanel.class).get(key, defaultVal));
}
public static List<QuickOpenerProperty> getAllMatching(String prefix) throws BackingStoreException{
List<QuickOpenerProperty> list = new ArrayList<QuickOpenerProperty> ();
for(String key:NbPreferences.forModule(QuickOpenerPanel.class).keys()){
if(key.startsWith(prefix)){
String desc =key.replace(prefix, "");
desc =desc.replaceAll("_", " ");
String val=NbPreferences.forModule(QuickOpenerPanel.class).get(key, "");
list.add(new QuickOpenerProperty(desc,val));
}
}
return list;
}
}