diff --git a/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/importexport/SystemImportExportResources.java b/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/importexport/SystemImportExportResources.java index fa5334b3557..b5216f8c64f 100644 --- a/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/importexport/SystemImportExportResources.java +++ b/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/importexport/SystemImportExportResources.java @@ -78,6 +78,8 @@ public class SystemImportExportResources extends NLS { public static String RESID_SYNCHRONIZE_ACTIONS_MERGE_LABEL; public static String RESID_SYNCHRONIZE_ACTIONS_MERGE_ALL_LABEL; + public static String RESID_SYNCHRONIZE_DISCONNECT_WARNING; + static { // load message values from bundle file NLS.initializeMessages(BUNDLE_NAME, SystemImportExportResources.class); diff --git a/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/importexport/SystemImportExportResources.properties b/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/importexport/SystemImportExportResources.properties index c0825dbca1b..f3b91c6bb0e 100644 --- a/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/importexport/SystemImportExportResources.properties +++ b/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/importexport/SystemImportExportResources.properties @@ -98,3 +98,7 @@ RESID_SYNCHRONIZE_ACTIONS_GET_LABEL=Get RESID_SYNCHRONIZE_ACTIONS_GET_ALL_LABEL=Get All RESID_SYNCHRONIZE_ACTIONS_MERGE_LABEL=Merge RESID_SYNCHRONIZE_ACTIONS_MERGE_ALL_LABEL=Merge All + + +RESID_SYNCHRONIZE_DISCONNECT_WARNING=This operation will remove previous team sharing settings you had with {0}. Are you sure you want to do this? + diff --git a/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/synchronize/provisional/Synchronizer.java b/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/synchronize/provisional/Synchronizer.java index 8a6824c36be..6b254d605d8 100644 --- a/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/synchronize/provisional/Synchronizer.java +++ b/rse/plugins/org.eclipse.rse.importexport/src/org/eclipse/rse/internal/synchronize/provisional/Synchronizer.java @@ -22,10 +22,18 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.osgi.util.NLS; +import org.eclipse.rse.internal.importexport.RemoteImportExportPlugin; +import org.eclipse.rse.internal.importexport.SystemImportExportResources; import org.eclipse.rse.internal.importexport.files.UniFilePlus; import org.eclipse.rse.internal.synchronize.ISynchronizeData; import org.eclipse.rse.internal.synchronize.filesystem.FileSystemProvider; +import org.eclipse.rse.services.clientserver.messages.SimpleSystemMessage; +import org.eclipse.rse.services.clientserver.messages.SystemMessage; +import org.eclipse.rse.ui.SystemBasePlugin; +import org.eclipse.rse.ui.messages.SystemMessageDialog; import org.eclipse.team.core.RepositoryProvider; import org.eclipse.team.core.TeamException; @@ -68,7 +76,22 @@ public class Synchronizer implements ISynchronizer { data.getSynchronizeType() == ISynchronizeOperation.SYNC_MODE_OVERRIDE_SOURCE || data.getSynchronizeType() == ISynchronizeOperation.SYNC_MODE_UI_REVIEW_INITIAL) { for (int i = 0; i < projects.length; i++) { - connector.disconnect(projects[i]); + + IProject project = projects[i]; + // user should be prompted before disconnect or he/she will lose team synch info + if (connector.isConnected(project)){ + + String msg = NLS.bind(SystemImportExportResources.RESID_SYNCHRONIZE_DISCONNECT_WARNING, project.getName()); + SystemMessage msgObj = new SimpleSystemMessage(RemoteImportExportPlugin.PLUGIN_ID, IStatus.WARNING, msg); + + SystemMessageDialog dlg = new SystemMessageDialog(SystemBasePlugin.getActiveWorkbenchShell(), msgObj); + if (dlg.openQuestionNoException(true)){ + connector.disconnect(project); + } + else { + return false; + } + } } }