final List<IContentProposal> result = new ArrayList<IContentProposal>();
final IRunnableWithProgress runnable = new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
try {
IType activatorType = javaProject.findType(BundleActivator.class.getName());
if (activatorType != null) {
ITypeHierarchy hierarchy = activatorType.newTypeHierarchy(javaProject, monitor);
for (IType subType : hierarchy.getAllSubtypes(activatorType)) {
if (!Flags.isAbstract(subType.getFlags()) && subType.getElementName().toLowerCase().contains(prefix.toLowerCase())) {
result.add(new JavaTypeContentProposal(subType));