}
}
};
final NewPackageExportDialog dialog = new NewPackageExportDialog(shell,
multiSelect);
dialog.setFilter(selectFilter);
dialog.setProjectVersion(project.getVersion());
if (selected != null)
{
dialog.setSelectedName(selected.getPackageName());
dialog.setVersion(selected.getRawVersion());
}
IJobRunnable job = new IJobRunnable()
{
public IStatus run(IProgressMonitor monitor)
{
try
{
ArrayList<IPackageFragment> list = new ArrayList<IPackageFragment>(
UPDATE_BATCH_SIZE);
for (IJavaElement e : JavaHelper.findTypes(project.getJavaModel(),
IJavaElement.PACKAGE_FRAGMENT))
{
IPackageFragment root = (IPackageFragment) e;
if (project.isInBundleClasspath(root))
{
list.add(root);
if (list.size() >= UPDATE_BATCH_SIZE)
{
dialog.addElements(list);
list.clear();
}
}
}
if (!list.isEmpty())
{
dialog.addElements(list);
}
return Status.OK_STATUS;
}
catch (JavaModelException e)
{
return e.getStatus();
}
}
};
dialog.addBackgroundJob("Scanning for packages in project", job);
return dialog;
}