1 11 12 package org.eclipse.jdt.internal.ui.text; 13 14 import org.eclipse.core.runtime.ListenerList; 15 import org.eclipse.core.runtime.Preferences; 16 17 import org.eclipse.swt.widgets.Display; 18 import org.eclipse.swt.widgets.Shell; 19 20 import org.eclipse.jface.preference.IPreferenceStore; 21 import org.eclipse.jface.util.IPropertyChangeListener; 22 import org.eclipse.jface.util.PropertyChangeEvent; 23 24 import org.eclipse.jdt.internal.ui.JavaPlugin; 25 26 32 public class PreferencesAdapter implements IPreferenceStore { 33 34 40 private class PropertyChangeListener implements Preferences.IPropertyChangeListener { 41 42 45 public void propertyChange(Preferences.PropertyChangeEvent event) { 46 firePropertyChangeEvent(event.getProperty(), event.getOldValue(), event.getNewValue()); 47 } 48 } 49 50 51 private ListenerList fListeners= new ListenerList(ListenerList.IDENTITY); 52 53 54 private PropertyChangeListener fListener= new PropertyChangeListener(); 55 56 57 private Preferences fPreferences; 58 59 60 private boolean fSilent; 61 62 65 public PreferencesAdapter() { 66 this(new Preferences()); 67 } 68 73 public PreferencesAdapter(Preferences preferences) { 74 fPreferences= preferences; 75 } 76 77 80 public void addPropertyChangeListener(IPropertyChangeListener listener) { 81 if (fListeners.size() == 0) 82 fPreferences.addPropertyChangeListener(fListener); 83 fListeners.add(listener); 84 } 85 86 89 public void removePropertyChangeListener(IPropertyChangeListener listener) { 90 fListeners.remove(listener); 91 if (fListeners.size() == 0) 92 fPreferences.removePropertyChangeListener(fListener); 93 } 94 95 98 public boolean contains(String name) { 99 return fPreferences.contains(name); 100 } 101 102 105 public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) { 106 if (!fSilent) { 107 final PropertyChangeEvent event= new PropertyChangeEvent(this, name, oldValue, newValue); 108 Object [] listeners= fListeners.getListeners(); 109 for (int i= 0; i < listeners.length; i++) { 110 final IPropertyChangeListener listener= (IPropertyChangeListener)listeners[i]; 111 Runnable runnable= new Runnable () { 112 public void run() { 113 listener.propertyChange(event); 114 } 115 }; 116 117 if (Display.getCurrent() != null) 118 runnable.run(); 119 else { 120 Shell shell= JavaPlugin.getActiveWorkbenchShell(); 122 Display display; 123 if (shell != null) 124 display= shell.getDisplay(); 125 else 126 display= Display.getDefault(); 127 display.asyncExec(runnable); 128 } 129 } 130 } 131 } 132 133 136 public boolean getBoolean(String name) { 137 return fPreferences.getBoolean(name); 138 } 139 140 143 public boolean getDefaultBoolean(String name) { 144 return fPreferences.getDefaultBoolean(name); 145 } 146 147 150 public double getDefaultDouble(String name) { 151 return fPreferences.getDefaultDouble(name); 152 } 153 154 157 public float getDefaultFloat(String name) { 158 return fPreferences.getDefaultFloat(name); 159 } 160 161 164 public int getDefaultInt(String name) { 165 return fPreferences.getDefaultInt(name); 166 } 167 168 171 public long getDefaultLong(String name) { 172 return fPreferences.getDefaultLong(name); 173 } 174 175 178 public String getDefaultString(String name) { 179 return fPreferences.getDefaultString(name); 180 } 181 182 185 public double getDouble(String name) { 186 return fPreferences.getDouble(name); 187 } 188 189 192 public float getFloat(String name) { 193 return fPreferences.getFloat(name); 194 } 195 196 199 public int getInt(String name) { 200 return fPreferences.getInt(name); 201 } 202 203 206 public long getLong(String name) { 207 return fPreferences.getLong(name); 208 } 209 210 213 public String getString(String name) { 214 return fPreferences.getString(name); 215 } 216 217 220 public boolean isDefault(String name) { 221 return fPreferences.isDefault(name); 222 } 223 224 227 public boolean needsSaving() { 228 return fPreferences.needsSaving(); 229 } 230 231 234 public void putValue(String name, String value) { 235 try { 236 fSilent= true; 237 fPreferences.setValue(name, value); 238 } finally { 239 fSilent= false; 240 } 241 } 242 243 246 public void setDefault(String name, double value) { 247 fPreferences.setDefault(name, value); 248 } 249 250 253 public void setDefault(String name, float value) { 254 fPreferences.setDefault(name, value); 255 } 256 257 260 public void setDefault(String name, int value) { 261 fPreferences.setDefault(name, value); 262 } 263 264 267 public void setDefault(String name, long value) { 268 fPreferences.setDefault(name, value); 269 } 270 271 274 public void setDefault(String name, String defaultObject) { 275 fPreferences.setDefault(name, defaultObject); 276 } 277 278 281 public void setDefault(String name, boolean value) { 282 fPreferences.setDefault(name, value); 283 } 284 285 288 public void setToDefault(String name) { 289 fPreferences.setToDefault(name); 290 } 291 292 295 public void setValue(String name, double value) { 296 fPreferences.setValue(name, value); 297 } 298 299 302 public void setValue(String name, float value) { 303 fPreferences.setValue(name, value); 304 } 305 306 309 public void setValue(String name, int value) { 310 fPreferences.setValue(name, value); 311 } 312 313 316 public void setValue(String name, long value) { 317 fPreferences.setValue(name, value); 318 } 319 320 323 public void setValue(String name, String value) { 324 fPreferences.setValue(name, value); 325 } 326 327 330 public void setValue(String name, boolean value) { 331 fPreferences.setValue(name, value); 332 } 333 } 334 | Popular Tags |