View | Details | Raw Unified | Return to bug 21036 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/team/core/Team.java (+25 lines)
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
		}

Return to bug 21036