blob: 926e9a60e3be4c9f564a0143255e6fdf85d81599 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 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 v2.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.wst.jsdt.ui.dialogs;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.dialogs.ISelectionStatusValidator;
/**
* The class provides API to extend type selection dialogs like the
* open type dialog.
* <p>
* The class should be subclassed by clients wishing to extend the type
* selection dialog.
* </p>
*
* @see org.eclipse.wst.jsdt.ui.JavaScriptUI#createTypeDialog(org.eclipse.swt.widgets.Shell, org.eclipse.jface.operation.IRunnableContext, org.eclipse.wst.jsdt.core.search.IJavaScriptSearchScope, int, boolean, String, TypeSelectionExtension)
*
* Provisional API: This class/interface is part of an interim API that is still under development and expected to
* change significantly before reaching stability. It is being made available at this early stage to solicit feedback
* from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
* (repeatedly) as the API evolves. */
public abstract class TypeSelectionExtension {
private ITypeSelectionComponent fComponent;
/**
* Initializes the type dialog extension with the given type dialog
*
* @param component the type dialog hosting this extension
*/
public final void initialize(ITypeSelectionComponent component) {
fComponent= component;
}
/**
* Returns the type selection dialog or <code>null</code> if
* the extension has not been initialized yet.
*
* @return the type selection dialog or <code>null</code>
*/
public final ITypeSelectionComponent getTypeSelectionComponent() {
return fComponent;
}
/**
* Creates the content area which the extensions contributes to the
* type selection dialog. The area will be presented between the
* table showing the list of types and the optional status line.
*
* @param parent the parent of the additional content area
* @return the additional content area or <code>null</code> if no
* additional content area is required
*/
public Control createContentArea(Composite parent) {
return null;
}
/**
* Returns the filter extension or <code>null</code> if
* no additional filtering is required.
*
* @return the additional filter extension
*/
public ITypeInfoFilterExtension getFilterExtension() {
return null;
}
/**
* Returns the selection validator or <code>null</code> if
* selection validation is not required. The elements passed
* to the selection validator are of type {@link org.eclipse.wst.jsdt.core.IType}.
*
* @return the selection validator or <code>null</code>
*/
public ISelectionStatusValidator getSelectionValidator() {
return null;
}
/**
* Returns an image provider or <code>null</code> if the standard
* images should be used.
*
* @return the image provider
*/
public ITypeInfoImageProvider getImageProvider() {
return null;
}
}