/******************************************************************************* * Copyright (c) 2006, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jdt.internal.ui.javaeditor.saveparticipant; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.preferences.IScopeContext; import org.eclipse.jface.preference.IPreferencePageContainer; /** * Preference UI to configure details of a save participant on the the * Java > Editor > Save Participants preference page. * <p> * Clients may implement this interface. * </p> * * @since 3.3 */ public interface ISaveParticipantPreferenceConfiguration { /** * Creates a control that will be displayed on the Java > Editor > Save Participants * preference page to edit the details of a save participant. * * @param parent the parent composite to which to add the preferences control * @param container the container in which this preference configuration is displayed * @return the control that was added to the <code>parent</code> */ Control createControl(Composite parent, IPreferencePageContainer container); /** * Called after creating the control. * <p> * Implementations should load the preferences values and update the controls accordingly. * </p> * @param context the context from which to load the preference values from * @param element the element to configure, or null if this configures the workspace settings */ void initialize(IScopeContext context, IAdaptable element); /** * Called when the <code>OK</code> button is pressed on the preference * page. * <p> * Implementations should commit the configured preference settings * into their form of preference storage.</p> */ void performOk(); /** * Called when the <code>Defaults</code> button is pressed on the * preference page. * <p> * Implementation should reset any preference settings to * their default values and adjust the controls accordingly.</p> */ void performDefaults(); /** * Called when the preference page is being disposed. * <p> * Implementations should free any resources they are holding on to.</p> */ void dispose(); /** * Called when project specific settings have been enabled */ void enableProjectSettings(); /** * Called when project specific settings have been disabled */ void disableProjectSettings(); /** * Called when a compilation unit is saved. * <p> * @param context the context in which the compilation unit is saved * @return true if the corresponding {@link IPostSaveListener} needs to be informed */ boolean isEnabled(IScopeContext context); /** * Called when the property page is opened to check whether this has enabled settings * in the given context. * * @param context the context to check * @return true if this has settings in context */ boolean hasSettingsInScope(IScopeContext context); }