01: /*******************************************************************************
02: * Copyright (c) 2000, 2007 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.jdt.ui.dialogs;
11:
12: import org.eclipse.swt.widgets.Composite;
13: import org.eclipse.swt.widgets.Control;
14:
15: import org.eclipse.ui.dialogs.ISelectionStatusValidator;
16:
17: import org.eclipse.jdt.core.IType;
18:
19: /**
20: * The class provides API to extend type selection dialogs like the
21: * open type dialog.
22: * <p>
23: * The class should be subclassed by clients wishing to extend the type
24: * selection dialog.
25: * </p>
26: *
27: * @see org.eclipse.jdt.ui.JavaUI#createTypeDialog(org.eclipse.swt.widgets.Shell, org.eclipse.jface.operation.IRunnableContext, org.eclipse.jdt.core.search.IJavaSearchScope, int, boolean, String, TypeSelectionExtension)
28: * @since 3.2
29: */
30: public abstract class TypeSelectionExtension {
31:
32: private ITypeSelectionComponent fComponent;
33:
34: /**
35: * Initializes the type dialog extension with the given type dialog
36: *
37: * @param component the type dialog hosting this extension
38: */
39: public final void initialize(ITypeSelectionComponent component) {
40: fComponent = component;
41: }
42:
43: /**
44: * Returns the type selection dialog or <code>null</code> if
45: * the extension has not been initialized yet.
46: *
47: * @return the type selection dialog or <code>null</code>
48: */
49: public final ITypeSelectionComponent getTypeSelectionComponent() {
50: return fComponent;
51: }
52:
53: /**
54: * Creates the content area which the extensions contributes to the
55: * type selection dialog. The area will be presented between the
56: * table showing the list of types and the optional status line.
57: *
58: * @param parent the parent of the additional content area
59: * @return the additional content area or <code>null</code> if no
60: * additional content area is required
61: */
62: public Control createContentArea(Composite parent) {
63: return null;
64: }
65:
66: /**
67: * Returns the filter extension or <code>null</code> if
68: * no additional filtering is required.
69: *
70: * @return the additional filter extension
71: */
72: public ITypeInfoFilterExtension getFilterExtension() {
73: return null;
74: }
75:
76: /**
77: * Returns the selection validator or <code>null</code> if
78: * selection validation is not required. The elements passed
79: * to the selection validator are of type {@link IType}.
80: *
81: * @return the selection validator or <code>null</code>
82: */
83: public ISelectionStatusValidator getSelectionValidator() {
84: return null;
85: }
86:
87: /**
88: * Returns an image provider or <code>null</code> if the standard
89: * images should be used.
90: *
91: * @return the image provider
92: */
93: public ITypeInfoImageProvider getImageProvider() {
94: return null;
95: }
96: }
|