1 11 package org.eclipse.ltk.internal.ui.refactoring.history; 12 13 import java.net.URI ; 14 15 import org.eclipse.core.runtime.CoreException; 16 import org.eclipse.core.runtime.IAdaptable; 17 import org.eclipse.core.runtime.IPath; 18 19 import org.eclipse.core.expressions.PropertyTester; 20 21 import org.eclipse.core.filesystem.EFS; 22 import org.eclipse.core.filesystem.IFileStore; 23 24 import org.eclipse.core.resources.IProject; 25 import org.eclipse.core.resources.IResource; 26 27 import org.eclipse.ltk.internal.core.refactoring.RefactoringCorePlugin; 28 import org.eclipse.ltk.internal.core.refactoring.history.RefactoringHistoryService; 29 30 35 public final class RefactoringPropertyPageTester extends PropertyTester { 36 37 38 public static final String PROPERTY_NAME= "refactoringPropertiesEnabled"; 40 private IFileStore getHistoryStore(final IProject project) { 41 final IPath location= RefactoringCorePlugin.getDefault().getStateLocation(); 42 final IFileStore store= EFS.getLocalFileSystem().getStore(location).getChild(RefactoringHistoryService.NAME_HISTORY_FOLDER); 43 try { 44 if (project.isAccessible()) { 45 if (RefactoringHistoryService.hasSharedRefactoringHistory(project)) { 46 final URI uri= project.getLocationURI(); 47 if (uri != null) 48 return EFS.getStore(uri).getChild(RefactoringHistoryService.NAME_HISTORY_FOLDER); 49 } else 50 return store.getChild(project.getName()); 51 } 52 } catch (CoreException exception) { 53 } 55 return null; 56 } 57 58 61 public boolean test(final Object receiver, final String property, final Object [] arguments, final Object expected) { 62 if (PROPERTY_NAME.equals(property)) { 63 if (receiver instanceof IAdaptable) { 64 final IAdaptable adaptable= (IAdaptable) receiver; 65 final IResource resource= (IResource) adaptable.getAdapter(IResource.class); 66 if (resource instanceof IProject) { 67 final IProject project= (IProject) resource; 68 final IFileStore store= getHistoryStore(project); 69 if (store != null) 70 return store.fetchInfo().exists(); 71 } 72 } 73 } 74 return false; 75 } 76 } | Popular Tags |