blob: f0aceb5ea5561260b20318d8dc235660823d21bc [file] [log] [blame]
/*******************************************************************************
* 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 &gt; Editor &gt; 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);
}