1 2 25 26 27 package org.aspectj.ajde.ui.internal; 28 29 import java.util.*; 30 import java.io.*; 31 import org.aspectj.ajde.*; 32 import org.aspectj.ajde.ui.UserPreferencesAdapter; 33 34 public class UserPreferencesStore implements UserPreferencesAdapter { 35 public static final String FILE_NAME = "/.ajbrowser"; 36 private final String VALUE_SEP = ";"; 37 private Properties properties = new Properties(); 38 39 public UserPreferencesStore() { 40 try { 41 if (new File(getPropertiesFilePath()).exists()) { 42 properties.load(new FileInputStream(getPropertiesFilePath())); 43 } 44 } catch (IOException ioe) { 45 Ajde.getDefault().getErrorHandler().handleError("Could not read properties", ioe); 46 } 47 } 48 49 public String getProjectPreference(String name) { 50 return properties.getProperty(name); 51 } 52 53 public List getProjectMultivalPreference(String name) { 54 List values = new ArrayList(); 55 String valuesString = properties.getProperty(name); 56 if (valuesString != null && !valuesString.trim().equals("")) { 57 StringTokenizer st = new StringTokenizer(valuesString, VALUE_SEP); 58 while (st.hasMoreTokens()) { 59 values.add(st.nextToken()); 60 } 61 } 62 return values; 63 } 64 65 public void setProjectPreference(String name, String value) { 66 properties.setProperty(name, value); 67 saveProperties(); 68 } 69 70 public void setProjectMultivalPreference(String name, List values) { 71 String valuesString = ""; 72 for (Iterator it = values.iterator(); it.hasNext(); ) { 73 valuesString += (String )it.next() + ';'; 74 } 75 properties.setProperty(name, valuesString); 76 saveProperties(); 77 } 78 79 public String getPropertiesFilePath() { 80 String path = System.getProperty("user.home"); 81 if (path == null) { 82 path = "."; 83 } 84 return path + FILE_NAME; 85 } 86 87 public String getGlobalPreference(String name) { 88 return getProjectPreference(name); 89 } 90 91 public List getGlobalMultivalPreference(String name) { 92 return getProjectMultivalPreference(name); 93 } 94 95 public void setGlobalPreference(String name, String value) { 96 setProjectPreference(name, value); 97 } 98 99 public void setGlobalMultivalPreference(String name, List values) { 100 setProjectMultivalPreference(name, values); 101 } 102 103 public void saveProperties() { 104 try { 105 properties.store(new FileOutputStream(getPropertiesFilePath()), "AJDE Settings"); 106 } catch (IOException ioe) { 107 Ajde.getDefault().getErrorHandler().handleError("Could not write properties", ioe); 108 } 109 } 110 } 111 | Popular Tags |