use of org.eclipse.jdt.core.ISourceManipulation in project che by eclipse.
the class DeleteSourceManipulationChange method doDelete.
/*
* @see DeleteChange#doDelete(IProgressMonitor)
*/
@Override
protected Change doDelete(IProgressMonitor pm) throws CoreException {
ISourceManipulation element = getSourceManipulation();
// since the primary working copy still exists.
if (element instanceof ICompilationUnit) {
//$NON-NLS-1$
pm.beginTask("", 2);
ICompilationUnit unit = (ICompilationUnit) element;
saveCUnitIfNeeded(unit, new SubProgressMonitor(pm, 1));
IResource resource = unit.getResource();
ResourceDescription resourceDescription = ResourceDescription.fromResource(resource);
element.delete(false, new SubProgressMonitor(pm, 1));
resourceDescription.recordStateFromHistory(resource, new SubProgressMonitor(pm, 1));
return new UndoDeleteResourceChange(resourceDescription);
} else if (element instanceof IPackageFragment) {
ICompilationUnit[] units = ((IPackageFragment) element).getCompilationUnits();
//$NON-NLS-1$
pm.beginTask("", units.length + 1);
for (int i = 0; i < units.length; i++) {
// fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=66835
saveCUnitIfNeeded(units[i], new SubProgressMonitor(pm, 1));
}
element.delete(false, new SubProgressMonitor(pm, 1));
// caveat: real undo implemented by UndoablePackageDeleteChange
return new NullChange();
} else {
element.delete(false, pm);
//should not happen
return null;
}
}
Aggregations