Lines 30-36
Link Here
|
30 |
import org.eclipse.core.resources.IFile; |
30 |
import org.eclipse.core.resources.IFile; |
31 |
import org.eclipse.core.resources.IProject; |
31 |
import org.eclipse.core.resources.IProject; |
32 |
import org.eclipse.core.resources.IProjectDescription; |
32 |
import org.eclipse.core.resources.IProjectDescription; |
|
|
33 |
import org.eclipse.core.resources.IResource; |
34 |
import org.eclipse.core.resources.IResourceChangeEvent; |
35 |
import org.eclipse.core.resources.IResourceChangeListener; |
36 |
import org.eclipse.core.resources.IResourceDelta; |
33 |
import org.eclipse.core.resources.IStorage; |
37 |
import org.eclipse.core.resources.IStorage; |
|
|
38 |
import org.eclipse.core.resources.ResourcesPlugin; |
34 |
import org.eclipse.core.runtime.CoreException; |
39 |
import org.eclipse.core.runtime.CoreException; |
35 |
import org.eclipse.core.runtime.IConfigurationElement; |
40 |
import org.eclipse.core.runtime.IConfigurationElement; |
36 |
import org.eclipse.core.runtime.IExtension; |
41 |
import org.eclipse.core.runtime.IExtension; |
Lines 513-518
Link Here
|
513 |
loadTextState(); |
518 |
loadTextState(); |
514 |
readIgnoreState(); |
519 |
readIgnoreState(); |
515 |
initializePluginIgnores(); |
520 |
initializePluginIgnores(); |
|
|
521 |
// Register a delta listener that will tell the provider about a project move |
522 |
ResourcesPlugin.getWorkspace().addResourceChangeListener(new IResourceChangeListener() { |
523 |
public void resourceChanged(IResourceChangeEvent event) { |
524 |
IResourceDelta[] projectDeltas = event.getDelta().getAffectedChildren(); |
525 |
for (int i = 0; i < projectDeltas.length; i++) { |
526 |
IResourceDelta delta = projectDeltas[i]; |
527 |
IResource resource = delta.getResource(); |
528 |
RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject()); |
529 |
// Only consider projects that have a provider |
530 |
if (provider == null) continue; |
531 |
// Only consider project additions that are moves |
532 |
if (delta.getKind() != IResourceDelta.ADDED) continue; |
533 |
if ((delta.getFlags() & IResourceDelta.MOVED_FROM) == 0) continue; |
534 |
// Only consider providers whose project is not mapped properly already |
535 |
if (provider.getProject().equals(resource.getProject())) continue; |
536 |
// Tell the provider about it's new project |
537 |
provider.setProject(resource.getProject()); |
538 |
} |
539 |
} |
540 |
}, IResourceChangeEvent.PRE_AUTO_BUILD); |
516 |
} catch (TeamException e) { |
541 |
} catch (TeamException e) { |
517 |
throw new CoreException(e.getStatus()); |
542 |
throw new CoreException(e.getStatus()); |
518 |
} |
543 |
} |