/** * This method should be called at least the first time a ResourceStateValidatorPresenter * becomes active and is about to edit its contents. The returned IStatus may have an ERROR * status which should be presented to the user. */ public IStatus validateState(ResourceStateValidatorPresenter presenter) throws CoreException { List roResources, nonResROFiles, roFiles = null; List[] readOnly = selectReadOnlyResources(provider.getResources()); roResources = readOnly[0]; roFiles = readOnly[1]; nonResROFiles = selectReadOnlyFiles(provider.getNonResourceFiles()); if (nonResROFiles != null) { if (roFiles == null) roFiles = nonResROFiles; else roFiles.addAll(nonResROFiles); } if (roFiles == null || roFiles.isEmpty()) return OK_STATUS; IFile[] files = new IFile[roFiles.size()]; roFiles.toArray(files); Object ctx = presenter != null ? presenter.getValidateEditContext() : null; IStatus result = ResourcesPlugin.getWorkspace().validateEdit(files, ctx); cacheValidateState(result, roResources, nonResROFiles); if (!result.isOK()) checkConsistency(presenter); return result; }