throws InvocationTargetException, InterruptedException {
log.trace("progressMonitorDialog.run started");
if (!Utils.isSWT())
log.trace("not in SWT thread");
if (activityType == VCSActivity.Type.Connect) {
vcs.connect(project, url, directory, progress);
} else if (activityType == VCSActivity.Type.Disconnect) {
vcs.disconnect(project, revision != null, progress);
} else if (activityType == VCSActivity.Type.Switch) {
vcs.switch_(resource, url, revision, progress);
} else if (activityType == VCSActivity.Type.Update) {