/******************************************************************************* * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *******************************************************************************/ package org.ebayopensource.turmeric.eclipse.registry.consumer.preferences; import org.ebayopensource.turmeric.eclipse.registry.consumer.Activator; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; /** * This class represents a preference page that * is contributed to the Preferences dialog. By * subclassing <samp>FieldEditorPreferencePage</samp>, we * can use the field support built into JFace that allows * us to create a page that is small and knows how to * save, restore and apply itself. * <p> * This page is used to modify preferences only. They * are stored in the preference store that belongs to * the main plug-in class. That way, preferences can * be accessed directly via the preference store. * * @author yayu * @since 1.0.0 */ public class AssertionServicePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { private BooleanFieldEditor enableASField; private BooleanFieldEditor overwriteASField; private StringFieldEditor asEndpointField; /** * Instantiates a new assertion service preference page. */ public AssertionServicePreferencePage() { super(GRID); setPreferenceStore(Activator.getDefault().getPreferenceStore()); setDescription("a preference page for Assertion Service"); } /** * Creates the field editors. Field editors are abstractions of * the common GUI blocks needed to manipulate various types * of preferences. Each field editor knows how to save and * restore itself. */ @Override public void createFieldEditors() { final Composite fieldParent = getFieldEditorParent(); enableASField = new BooleanFieldEditor( AssertionServicePreferenceConstants.ENABLE_ASSERTION_SERVICE, "&Enable Assertion Service Integration", fieldParent); addField(enableASField); overwriteASField = new BooleanFieldEditor( AssertionServicePreferenceConstants.OVERWRITE_AS_ENDPOINT, "&Overwrite Assertion Service Properties", fieldParent) { @Override protected void valueChanged(boolean oldValue, boolean newValue) { setFieldEnabled(newValue, fieldParent); if (newValue == false) { //user want to use the default value asEndpointField.loadDefault(); } super.valueChanged(oldValue, newValue); } }; addField(overwriteASField); boolean overwrite = Activator.getDefault().getPreferenceStore().getBoolean( AssertionServicePreferenceConstants.OVERWRITE_AS_ENDPOINT); asEndpointField = new StringFieldEditor(AssertionServicePreferenceConstants.URL_AS_ENDPOINT, "&Endpoint:", fieldParent); addField(asEndpointField); setFieldEnabled(overwrite, fieldParent); } private void setFieldEnabled(boolean enabled, Composite fieldParent) { asEndpointField.setEnabled(enabled, fieldParent); } /** * {@inheritDoc} */ @Override public void init(IWorkbench workbench) { } }