Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.eclipse.xtext.ui.editor.preferences.fields;
  
  import java.util.List;
  
  import  org.eclipse.jface.preference.FieldEditor;
  import  org.eclipse.jface.preference.FieldEditorPreferencePage;
  import  org.eclipse.jface.preference.IPreferenceStore;
  import  org.eclipse.jface.preference.PreferenceStore;
 import  org.eclipse.jface.util.PropertyChangeEvent;
 import  org.eclipse.swt.widgets.Composite;
 import  org.eclipse.ui.texteditor.ChainedPreferenceStore;

Author(s):
Dennis H´┐Żbner - Initial contribution and API
 
 public abstract class AbstractDetailsPart extends FieldEditorPreferencePage {
 
 	protected IPreferenceStore masterPreferenceStore;
 	protected PreferenceStore internalStore;
 	private List<FieldEditor> internalEditorsList = new ArrayList<FieldEditor>();
 
 	public AbstractDetailsPart(IPreferenceStore masterPreferenceStore) {
 		super(GRID);
 		this. = masterPreferenceStore;
 		 = new PreferenceStore();
 	}
 
 	protected final void addField(FieldEditor editor) {
 		String prefix = null;
 		if (getPreferencePrefix() != null)
 			prefix = getPreferencePrefix() + . + editor.getPreferenceName();
 		else
 			prefix = editor.getPreferenceName();
 		editor.setPreferenceName(prefix);
 		.add(editor);
 		super.addField(editor);
 	}
 
 	protected final IPreferenceStore doGetPreferenceStore() {
 		return new ChainedPreferenceStore(new IPreferenceStore[] {  });
 	}
 
 	protected final void load(String preferencePrefix) {
 		setPreferencePrefix(preferencePrefix);
 	}
 
 	protected final void loadDefaults(String preferencePrefix) {
 		setPreferencePrefix(preferencePrefix);
 		for (FieldEditor fe : ) {
 			if (fe.presentsDefaultValue()) {
 				.setValue(fe.getPreferenceName(), .getDefaultString(fe
 						.getPreferenceName()));
 			}
 		}
 	}
 
 	public final boolean performOk() {
 		int changed = 0;
 		for (String prefKey : .preferenceNames()) {
 			String value = .getString(prefKey);
 			String defaultValue = .getDefaultString(prefKey);
 			if (!value.equals(defaultValue)) {
 				.putValue(prefKeyvalue);
 				changed++;
 			}
 			else {
 				.setToDefault(prefKey);
 				changed++;
 			}
 		}
 		if (changed > 0)
 			.firePropertyChangeEvent(getPreferencePrefix(), nullnull);
 		return true;
 	}

 
 	private void resetPreferenceStore() {
 		 = new PreferenceStore();
 	}
 
 	public final void createControl(Composite parent) {
 		super.createControl(parent);
	}
	public final void propertyChange(PropertyChangeEvent event) {
		if (event.getSource() instanceof FieldEditor) {
			FieldEditor fe = (FieldEditor) event.getSource();
			.setValue(fe.getPreferenceName(), fe.getPreferenceStore().getDefaultString(fe.getPreferenceName()));
			fe.setPreferenceStore();
			fe.store();
		}
		super.propertyChange(event);
	}
	abstract protected void createFieldEditors();
	protected final String getPreferencePrefix() {
	}
	private void setPreferencePrefix(String preferencePrefix) {
		this. = preferencePrefix;
		for (FieldEditor fe : ) {
			String oldPreferenceName = fe.getPreferenceName();
			if (oldPreferenceName.indexOf(.) >= 0) {
				oldPreferenceName = oldPreferenceName.substring(oldPreferenceName
			}
			fe.setPreferenceName(getPreferencePrefix() + . + oldPreferenceName);
		}
	}
New to GrepCode? Check out our FAQ X