Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2002-04-16 17:58:25 +0000
committerMichael Valenta2002-04-16 17:58:25 +0000
commit326828feedeea64d6bea9c74ad8101ab7f3f7b17 (patch)
treeb13c5dcb0c3d44b6df65c113842aebde3fe84447
parent5f696b93530e6df710f8ef367420075d00c58d80 (diff)
downloadeclipse.platform.team-326828feedeea64d6bea9c74ad8101ab7f3f7b17.tar.gz
eclipse.platform.team-326828feedeea64d6bea9c74ad8101ab7f3f7b17.tar.xz
eclipse.platform.team-326828feedeea64d6bea9c74ad8101ab7f3f7b17.zip
Update CVSDecorator to use project configure/deconfigure notification
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java118
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSMoveDeleteHook.java114
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java4
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ChangeListener.java106
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UnmanageAction.java1
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java1
6 files changed, 157 insertions, 187 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java
index 0ba07afdf..08ca6a425 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java
@@ -6,17 +6,23 @@ package org.eclipse.team.internal.ccvs.ui;
*/
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
import org.eclipse.core.resources.IResourceVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.resource.ImageDescriptor;
@@ -30,7 +36,6 @@ import org.eclipse.team.core.RepositoryProvider;
import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
import org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener;
-import org.eclipse.team.internal.ccvs.core.util.ResourceDeltaVisitor;
import org.eclipse.ui.internal.DecoratorDefinition;
import org.eclipse.ui.internal.DecoratorManager;
import org.eclipse.ui.internal.WorkbenchPlugin;
@@ -50,7 +55,7 @@ import org.eclipse.ui.internal.WorkbenchPlugin;
* the queue used between the decorator and the decorator runnable such that priority can be
* given to visible elements when decoration requests are made.]
*/
-public class CVSDecorator extends LabelProvider implements ILabelDecorator, IResourceStateChangeListener, IDecorationNotifier {
+public class CVSDecorator extends LabelProvider implements ILabelDecorator, IResourceChangeListener, IResourceStateChangeListener, IDecorationNotifier {
// Resources that need an icon and text computed for display to the user
private List decoratorNeedsUpdating = new ArrayList();
@@ -65,43 +70,15 @@ public class CVSDecorator extends LabelProvider implements ILabelDecorator, IRes
private Hashtable imageCache = new Hashtable();
- private ChangeListener changeListener;
-
- private class ChangeListener extends ResourceDeltaVisitor {
- List changedResources = new ArrayList();
- protected void handleAdded(IResource[] resources) {
- }
- // remove the cached decoration for any removed resource
- protected void handleRemoved(IResource[] resources) {
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if(RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId())!=null) {
- cache.remove(resources[i]);
- }
- }
- }
- // for changed resources we have to update the decoration
- protected void handleChanged(IResource[] resources) {
- changedResources.addAll(Arrays.asList(resources));
- }
- protected void finished() {
- resourceStateChanged((IResource[])changedResources.toArray(new IResource[changedResources.size()]));
- changedResources.clear();
- }
- protected int getEventMask() {
- return IResourceChangeEvent.PRE_AUTO_BUILD;
- }
- }
+ // Keep track of deconfigured projects
+ private Set deconfiguredProjects = new HashSet();
public CVSDecorator() {
// thread that calculates the decoration for a resource
decoratorUpdateThread = new Thread(new CVSDecorationRunnable(this), "CVS"); //$NON-NLS-1$
decoratorUpdateThread.start();
CVSProviderPlugin.addResourceStateChangeListener(this);
-
- // listener for workspace resource changes
- changeListener = new ChangeListener();
- changeListener.register();
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.PRE_AUTO_BUILD);
}
public String decorateText(String text, Object o) {
@@ -215,6 +192,54 @@ public class CVSDecorator extends LabelProvider implements ILabelDecorator, IRes
return decoratorNeedsUpdating.size();
}
/*
+ * Handle resource changes and project description changes
+ *
+ * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)
+ */
+ public void resourceChanged(IResourceChangeEvent event) {
+ try {
+ final List changedResources = new ArrayList();
+ event.getDelta().accept(new IResourceDeltaVisitor() {
+ public boolean visit(IResourceDelta delta) throws CoreException {
+ IResource resource = delta.getResource();
+
+ if(resource.getType()==IResource.ROOT) {
+ // continue with the delta
+ return true;
+ }
+
+ if (resource.getType() == IResource.PROJECT) {
+ // If there is no CVS nature, don't continue
+ if (RepositoryProvider.getProvider((IProject)resource, CVSProviderPlugin.getTypeId()) == null) {
+ // deconfigure if appropriate (see CVSDecorator#projectDeconfigured(IProject))
+ if (deconfiguredProjects.contains(resource)) {
+ refresh((IProject)resource);
+ deconfiguredProjects.remove(resource);
+ }
+ return false;
+ }
+ }
+
+ switch (delta.getKind()) {
+ case IResourceDelta.REMOVED:
+ // remove the cached decoration for any removed resource
+ cache.remove(resource);
+ break;
+ case IResourceDelta.CHANGED:
+ // for changed resources we have to update the decoration
+ changedResources.add(resource);
+ }
+
+ return true;
+ }
+ });
+ resourceStateChanged((IResource[])changedResources.toArray(new IResource[changedResources.size()]));
+ changedResources.clear();
+ } catch (CoreException e) {
+ CVSProviderPlugin.log(e.getStatus());
+ }
+ }
+ /*
* @see IResourceStateChangeListener#resourceStateChanged(IResource[])
*/
public void resourceStateChanged(IResource[] changedResources) {
@@ -283,16 +308,16 @@ public class CVSDecorator extends LabelProvider implements ILabelDecorator, IRes
WorkbenchPlugin.getDefault().getDecoratorManager().reset();
}
- public static void refresh(IResource resource) {
+ public void refresh(IProject project) {
final List resources = new ArrayList();
try {
- resource.accept(new IResourceVisitor() {
+ project.accept(new IResourceVisitor() {
public boolean visit(IResource resource) {
resources.add(resource);
return true;
}
});
- CVSProviderPlugin.broadcastResourceStateChanges((IResource[]) resources.toArray(new IResource[resources.size()]));
+ resourceStateChanged((IResource[]) resources.toArray(new IResource[resources.size()]));
} catch (CoreException e) {
}
}
@@ -391,7 +416,7 @@ public class CVSDecorator extends LabelProvider implements ILabelDecorator, IRes
shutdown();
// unregister change listeners
- changeListener.deregister();
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
CVSProviderPlugin.removeResourceStateChangeListener(this);
// dispose of images created as overlays
@@ -407,4 +432,21 @@ public class CVSDecorator extends LabelProvider implements ILabelDecorator, IRes
}
imageCache = new Hashtable();
}
+ /**
+ * @see IResourceStateChangeListener#projectConfigured(IProject)
+ */
+ public void projectConfigured(IProject project) {
+ refresh(project);
+ }
+
+ /**
+ * @see IResourceStateChangeListener#projectDeconfigured(IProject)
+ */
+ public void projectDeconfigured(IProject project) {
+ // Unfortunately, the nature is still associated with the project at this point.
+ // Therefore, we will remember that the project has been deconfigured and we will
+ // refresh the decorators in the resource delta listener
+ deconfiguredProjects.add(project);
+ }
+
} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSMoveDeleteHook.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSMoveDeleteHook.java
index fc1d5968e..a601fd547 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSMoveDeleteHook.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSMoveDeleteHook.java
@@ -16,30 +16,21 @@ import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
import org.eclipse.core.resources.team.IMoveDeleteHook;
import org.eclipse.core.resources.team.IResourceTree;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.team.internal.ccvs.core.CVSException;
import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
import org.eclipse.team.internal.ccvs.core.ICVSFile;
import org.eclipse.team.internal.ccvs.core.ICVSFolder;
import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
+import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
import org.eclipse.ui.IWorkbenchWindow;
public class CVSMoveDeleteHook implements IMoveDeleteHook {
@@ -63,46 +54,90 @@ public class CVSMoveDeleteHook implements IMoveDeleteHook {
});
}
- private void makeFileOutgoingDeletion(IResourceTree tree, IFile source, IFile destination, int updateFlags, IProgressMonitor monitor) throws CoreException {
+ /*
+ * Delete the file and return true if an outgoing deletion will result
+ * and the parent folder needs to remain
+ */
+ private boolean makeFileOutgoingDeletion(IResourceTree tree, IFile source, IFile destination, int updateFlags, IProgressMonitor monitor) throws CoreException {
+ // Delete or move the file
if (destination == null) {
tree.standardDeleteFile(source, updateFlags, monitor);
} else {
tree.standardMoveFile(source, destination, updateFlags, monitor);
}
+ // Indicate whether the parent folder must remain for outgoing deletions
+ ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(source);
+ boolean mustRemain;
+ try {
+ mustRemain = (cvsFile.isManaged() && ! cvsFile.getSyncInfo().isAdded());
+ } catch (CVSException e) {
+ tree.failed(e.getStatus());
+ mustRemain = true;
+ }
+ return mustRemain;
}
/*
* Delete the files contained in the folder structure rooted at source.
- * Return true if at least one file was deleted
+ * Return true if at least one file has been marked as an outgoing deletion and the parent folder must remain
*/
- private boolean makeFolderOutgoingDeletion(final IResourceTree tree, final IFolder source, final IFolder destination, final int updateFlags, final IProgressMonitor monitor) throws CoreException {
- final boolean[] fileFound = new boolean[] {false};
- source.accept(new IResourceVisitor() {
- public boolean visit(IResource resource) throws CoreException {
- if (resource.isTeamPrivateMember()) {
- return false;
+ private boolean makeFolderOutgoingDeletion(IResourceTree tree, IFolder source, IFolder destination, int updateFlags, IProgressMonitor monitor) throws CoreException {
+ boolean fileFound = false;
+
+ // Create the destination for a move
+ if (destination != null && ! destination.exists()) {
+ destination.create(false, true, monitor);
+ }
+
+ // Move or delete the children
+ IResource[] members = source.members();
+ for (int i = 0; i < members.length; i++) {
+ IResource child = members[i];
+ if (child.getType() == IResource.FOLDER) {
+ // Determine the corresponding destination folder
+ IFolder destFolder = null;
+ if (destination != null) {
+ destFolder = destination.getFolder(child.getFullPath().removeFirstSegments(source.getFullPath().segmentCount()));
}
- if (resource.getType() == IResource.FOLDER) {
- if (destination != null) {
- IFolder destFolder = destination.getFolder(resource.getFullPath().removeFirstSegments(source.getFullPath().segmentCount()));
- destFolder.create(false, true, monitor);
- }
+
+ // Try to delete/move the child
+ if (makeFolderOutgoingDeletion(tree, (IFolder)child, destFolder, updateFlags, monitor)) {
+ fileFound = true;
+ // XXX Below line commented out for now
// tree.failed(new CVSStatus(IStatus.WARNING, CVSStatus.FOLDER_NEEDED_FOR_FILE_DELETIONS, Policy.bind("CVSMoveDeleteHook.folderDeletionFailure", resource.getFullPath().toString()))); //$NON-NLS-1$
- } else if (resource.getType() == IResource.FILE) {
- fileFound[0] = true;
- IFile destFile = null;
- if (destination != null) {
- destFile = destination.getFile(resource.getFullPath().removeFirstSegments(source.getFullPath().segmentCount()));
- }
- makeFileOutgoingDeletion(tree, (IFile)resource, destFile, updateFlags, monitor);
- return false;
}
- return true;
+ } else if (child.getType() == IResource.FILE) {
+ IFile destFile = null;
+ if (destination != null) {
+ destFile = destination.getFile(child.getFullPath().removeFirstSegments(source.getFullPath().segmentCount()));
+ }
+ fileFound = makeFileOutgoingDeletion(tree, (IFile)child, destFile, updateFlags, monitor);
}
+ }
- }, IResource.DEPTH_INFINITE, false);
-
- return fileFound[0];
+ // If there were no files, delete the folder
+ if ( ! fileFound) {
+ try {
+ ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(source);
+ // We we need to check if the folder already has outgoing deletions
+ ICVSFile[] files = folder.getFiles();
+ for (int i = 0; i < files.length; i++) {
+ ICVSFile cvsFile = files[i];
+ if (cvsFile.isManaged() && ! cvsFile.getSyncInfo().isAdded()) {
+ fileFound = true;
+ break;
+ }
+ }
+ // If there is still no file, we can delete the folder
+ if ( ! fileFound) {
+ tree.standardDeleteFolder(source, updateFlags, monitor);
+ folder.unmanage(null);
+ }
+ } catch (CVSException e) {
+ tree.failed(e.getStatus());
+ }
+ }
+ return fileFound;
}
private boolean checkForTeamPrivate(final IResource resource) {
@@ -131,7 +166,12 @@ public class CVSMoveDeleteHook implements IMoveDeleteHook {
}
final ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(source);
- if (cvsFile.isManaged()) {
+ ResourceSyncInfo info = null;
+ try {
+ info = cvsFile.getSyncInfo();
+ } catch (CVSException e) {
+ }
+ if (info != null && ! info.isAdded()) {
// prompt the user for choices: Mark as outgoing deletion or cancel
final boolean[] performDelete = new boolean[] { ! CVSProviderPlugin.getPlugin().getPromptOnFileDelete()};
if ( ! performDelete[0]){
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java
index 49c98846a..74034bcdb 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java
@@ -50,8 +50,6 @@ public class CVSUIPlugin extends AbstractUIPlugin {
public static final String DECORATOR_ID = "org.eclipse.team.cvs.ui.decorator"; //$NON-NLS-1$
private Hashtable imageDescriptors = new Hashtable(20);
-
- private ChangeListener changeListener = new ChangeListener();
public final static String ICON_PATH;
static {
@@ -231,7 +229,6 @@ public class CVSUIPlugin extends AbstractUIPlugin {
initializeImages();
initializePreferences();
repositoryManager = new RepositoryManager();
- changeListener.register();
// if the global ignores list is changed then update decorators.
TeamUIPlugin.getPlugin().addPropertyChangeListener(new IPropertyChangeListener() {
@@ -257,7 +254,6 @@ public class CVSUIPlugin extends AbstractUIPlugin {
* @see Plugin#shutdown()
*/
public void shutdown() throws CoreException {
- changeListener.deregister();
super.shutdown();
try {
repositoryManager.shutdown();
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ChangeListener.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ChangeListener.java
deleted file mode 100644
index 8faa3ced7..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ChangeListener.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package org.eclipse.team.internal.ccvs.ui;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002.
- * All Rights Reserved.
- */
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.util.ResourceDeltaVisitor;
-
-public class ChangeListener extends ResourceDeltaVisitor {
-
- static class ConfirmFolderDeleteDialog extends MessageDialog {
- private Button doNotShowOption;
-
- ConfirmFolderDeleteDialog(Shell parentShell) {
- super(
- parentShell,
- getTitle(),
- null, // accept the default window icon
- getMessage(),
- MessageDialog.INFORMATION,
- new String[] {IDialogConstants.OK_LABEL},
- 0); // yes is the default
- }
-
- static String getTitle() {
- return Policy.bind("ChangeListener.Deleting_CVS_folders_1"); //$NON-NLS-1$
- }
-
- static String getMessage() {
- return Policy.bind("ChangeListener.Folders_cannot_be_deleted_from_a_CVS_server_from_the_client._To_delete_the_folder_2"); //$NON-NLS-1$
- }
-
- protected Control createCustomArea(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- doNotShowOption = new Button(composite, SWT.CHECK);
- doNotShowOption.addSelectionListener(selectionListener);
-
- doNotShowOption.setText(Policy.bind("ChangeListener.Do_not_ask_me_about_this_again_3")); //$NON-NLS-1$
-
- // set initial state
- doNotShowOption.setSelection(false);
- return composite;
- }
-
- private SelectionListener selectionListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button button = (Button) e.widget;
- if (button.getSelection()) {
- }
- }
- };
- }
-
- /*
- * @see ResourceDeltaVisitor#handleAdded(IResource[])
- */
- protected void handleAdded(IResource[] resources) {
- }
-
- /*
- * @see ResourceDeltaVisitor#handleRemoved(IResource[])
- */
- protected void handleRemoved(IResource[] resources) {
- List folderDeletions = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- if(resources[i].getType()==IResource.FOLDER) {
- folderDeletions.add(resources[i]);
- }
- }
-
- if(!folderDeletions.isEmpty()) {
- // prompt user
- }
- }
-
- /*
- * @see ResourceDeltaVisitor#handleChanged(IResource[])
- */
- protected void handleChanged(IResource[] resources) {
- }
-
- /*
- * @see ResourceDeltaVisitor#finished()
- */
- protected void finished() {
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UnmanageAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UnmanageAction.java
index 9b119849f..85f04e3a4 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UnmanageAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/UnmanageAction.java
@@ -164,7 +164,6 @@ public class UnmanageAction extends TeamAction {
} finally {
// We want to remove the nature even if the unmanage operation fails
Team.removeNatureFromProject((IProject)resource, CVSProviderPlugin.getTypeId(), Policy.subMonitorFor(subMonitor, 10));
- CVSDecorator.refresh(resource);
}
}
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
index 87f8f449e..8e7bd6563 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
@@ -216,7 +216,6 @@ public class SharingWizard extends Wizard implements IConfigurationWizard {
// Create the remote module for the project
CVSProviderPlugin.getProvider().createModule(location, project, getModuleName(), new SubProgressMonitor(monitor, 50));
}
- CVSDecorator.refresh(project);
} catch (TeamException e) {
throw new InvocationTargetException(e);
} finally {

Back to the top