1 package org.jdesktop.swing.auth; 2 3 9 10 11 import java.util.Vector ; 12 import java.util.prefs.Preferences ; 13 14 15 21 class UsernameStore { 22 23 private Preferences prefs = Preferences 24 .userNodeForPackage(JXLoginPanel.class); 25 26 private String appNameForPreferences = "default"; 27 28 private static final String USER_KEY = "usernames"; 29 30 private static final String NUM_KEY = "usernames.length"; 31 32 private Vector <String > usernames = null; 33 34 private static UsernameStore INSTANCE = null; 35 36 private UsernameStore() { 37 usernames = new Vector <String >(); 38 String numPrefix = getNumPrefix(); 39 int n = prefs.getInt(numPrefix, 0); 40 String valuePrefix = getValuePrefix(); 41 String value; 42 for (int i = 0; i < n; i++) { 43 value = prefs.get(valuePrefix + "." + i, null); 44 if (value != null) { 45 usernames.add(value); 46 } 47 } 48 } 49 50 public static UsernameStore getUsernameStore() { 51 synchronized (UsernameStore.class) 52 { 53 if (INSTANCE == null) { 54 INSTANCE = new UsernameStore(); 55 } 56 } 57 return INSTANCE; 58 } 59 60 String getNumPrefix() { 61 return this.getClass().getName() + "." + getAppNameForPreferences() 62 + "." + NUM_KEY; 63 } 64 65 String getValuePrefix() { 66 return this.getClass().getName() + "." + getAppNameForPreferences() 67 + "." + USER_KEY; 68 } 69 70 74 public Vector getUsernames() { 75 return usernames; 76 } 77 78 82 public void saveUsernames() { 83 if (prefs != null) { 84 String numPrefix = getNumPrefix(); 85 String valuePrefix = getValuePrefix(); 86 prefs.putInt(numPrefix, usernames.size()); 87 for (int i = 0; i < usernames.size(); i++) { 88 prefs.put(valuePrefix + "." + i, usernames.get(i)); 89 } 90 } 91 } 92 93 97 public void addUsername(String username) { 98 if (!usernames.contains(username)) { 99 usernames.add(username); 100 } 101 } 102 103 108 public void removeUsername(String username) { 109 if (usernames.contains(username)) { 110 usernames.remove(username); 111 } 112 } 113 114 117 public String getAppNameForPreferences() { 118 return appNameForPreferences; 119 } 120 123 public void setAppNameForPreferences(String appNameForPreferences) { 124 this.appNameForPreferences = appNameForPreferences; 125 } 126 } 127 | Popular Tags |