}
	public void doActionPerformed() {		Shell activeShell= JavaPlugin.getActiveWorkbenchShell();				String title= JavaPlugin.getResourceString(CONFIRM_TITLE);		String label= JavaPlugin.getResourceString(CONFIRM_LABEL);				final Iterator iter= getStructuredSelection().iterator();		final MultiStatus status= new MultiStatus(JavaPlugin.getPluginId(), IStatus.OK, JavaPlugin.getResourceString(ERROR_STATUS), null);		final List elements= new ArrayList();		boolean hasReadOnlyResources= false;		while (iter.hasNext()) {			Object element= iter.next();			if (!hasReadOnlyResources && shouldConfirmReadOnly(element))				hasReadOnlyResources= true;			elements.add(element);		}				try {			if (!isClasspathDelete(elements) && !MessageDialog.openConfirm(activeShell, title, label))				return;		} catch (CoreException e) {			ExceptionHandler.handle(e, "Delete", "An exception occured while deleting elements");			return;		}		String msg= "The selected elements contain read-only resources. Do you still wish to delete them?";		if (hasReadOnlyResources && !confirmReadOnly("Check Deletion", msg))			return;								WorkspaceModifyOperation op= new WorkspaceModifyOperation() {			public void execute(IProgressMonitor pm) {				int size= elements.size();				pm.beginTask(JavaPlugin.getResourceString(TASK), size);				final IDeleteSupport support= ReorgSupportFactory.createDeleteSupport(elements);				Comparator lengthComparator= new Comparator() {					public int compare(Object left, Object right) {						int leftLength= support.getPathLength(left);						int rightLength= support.getPathLength(right);						return rightLength - leftLength;					}				};								Collections.sort(elements, lengthComparator);								for (int i= 0; i < size; i++) {					Object o= elements.get(i);					try {						support.delete(o, pm);					} catch (CoreException e) {						status.merge(e.getStatus());					}				}				pm.done();			}		};		try {			new ProgressMonitorDialog(activeShell).run(true, true, op);		} catch (InvocationTargetException e) {			// this will never happen		} catch (InterruptedException e) {			return;		}		if (!status.isOK()) {			Throwable t= new JavaUIException(status);			ResourceBundle bundle= JavaPlugin.getResourceBundle();			ExceptionHandler.handle(t, activeShell, bundle, ERROR_PREFIX);		}		}