public PreferencePropertyBinding(
        IProperty<T> property, IProjectPreference<T> preference, IProject project) {
      this.property = property;
      this.preference = preference;
      this.project = project;

      property.setValue(preference.getStoredValue(project));
    }
 @Override
 public void doSaveSettings() throws BackingStoreException {
   preference.setValue(project, property.getValue());
 }
 @Override
 public void loadDefaults() {
   property.setValue(preference.getGlobalPreference().get());
 }
 public void updateFieldFromInput() {
   property.setValue(preference.getStoredValue(project));
 }