/** * Method checkReadOnlyNonResourceFiles. * * @return boolean */ private boolean checkReadOnlyNonResourceFiles() { List files = provider.getNonResourceFiles(); if (files == null || files.isEmpty()) return false; int size = files.size(); IFile file = null; for (int i = 0; i < size; i++) { file = (IFile) files.get(i); if (file.isReadOnly()) return true; } return false; }
/** * Method getNonResourceInconsistentFiles. * * @return List */ private List getNonResourceInconsistentFiles() { List files = provider.getNonResourceInconsistentFiles(); if (files != null && !files.isEmpty()) return files; //Determine consistency based on the synchronization of the IFile files = provider.getNonResourceFiles(); if (files == null || files.isEmpty()) return Collections.EMPTY_LIST; List inconsistent = null; int size = files.size(); IFile file = null; for (int i = 0; i < size; i++) { file = (IFile) files.get(i); if (file.isAccessible() && !file.isSynchronized(IResource.DEPTH_ZERO)) { if (inconsistent == null) inconsistent = new ArrayList(); inconsistent.add(file); } } if (inconsistent == null) inconsistent = Collections.EMPTY_LIST; return inconsistent; }
/** * 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; }