/* * Copyright (c) 2011, the Dart project authors. * * Licensed under the Eclipse Public License v1.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.eclipse.org/legal/epl-v10.html * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.dart.tools.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> * 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; /** * 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 an image provider or <code>null</code> if the standard images should be used. * * @return the image provider */ public ITypeInfoImageProvider getImageProvider() { return null; } /** * Returns the selection validator or <code>null</code> if selection validation is not required. * * @return the selection validator or <code>null</code> */ public ISelectionStatusValidator getSelectionValidator() { return null; } /** * 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; } /** * 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; } }