X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcommands%2FCopyWorkspace.java;h=435410c46cf3d1a107e20bb77ac0df8354d2b313;hb=460cb0f2be7a8fa92ee6f22564b42a25aac5de4b;hp=ef2a94a1e3a636401b69830466a229229aa72015;hpb=bc95fc842d36a257a47fa4cd6bbecf626f255cf6;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CopyWorkspace.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CopyWorkspace.java index ef2a94a1e..435410c46 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CopyWorkspace.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CopyWorkspace.java @@ -35,6 +35,7 @@ import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.window.Window; import org.eclipse.ui.handlers.HandlerUtil; /** @@ -44,7 +45,7 @@ import org.eclipse.ui.handlers.HandlerUtil; public class CopyWorkspace extends AbstractHandler { // private static final Log log = LogFactory.getLog(CopyWorkspace.class); public final static String ID = DistPlugin.ID + ".copyWorkspace"; - public final static String DEFAULT_LABEL = "Duplicate"; + public final static String DEFAULT_LABEL = "Duplicate..."; public final static String PARAM_SOURCE_WORKSPACE_NAME = "srcWkspName"; public final static String PARAM_TARGET_REPO_PATH = "targetRepoPath"; public final static ImageDescriptor DEFAULT_ICON = DistPlugin @@ -75,21 +76,23 @@ public class CopyWorkspace extends AbstractHandler { .getActiveWorkbenchWindow(event).getShell(), "New copy of workspace " + wkspName, "Choose a name for the workspace to create", "", null); - inputDialog.open(); - String newWorkspaceName = inputDialog.getValue(); - srcSession = repository.login(credentials, wkspName); + int result = inputDialog.open(); + if (result == Window.OK) { + String newWorkspaceName = inputDialog.getValue(); + srcSession = repository.login(credentials, wkspName); - // Create the workspace - srcSession.getWorkspace().createWorkspace(newWorkspaceName); - Node srcRootNode = srcSession.getRootNode(); - // log in the newly created workspace - newSession = repository.login(credentials, newWorkspaceName); - Node newRootNode = newSession.getRootNode(); - RepoUtils.copy(srcRootNode, newRootNode); - newSession.save(); - JcrUtils.addPrivilege(newSession, "/", SlcConstants.ROLE_SLC, - Privilege.JCR_ALL); - CommandHelpers.callCommand(RefreshDistributionsView.ID); + // Create the workspace + srcSession.getWorkspace().createWorkspace(newWorkspaceName); + Node srcRootNode = srcSession.getRootNode(); + // log in the newly created workspace + newSession = repository.login(credentials, newWorkspaceName); + Node newRootNode = newSession.getRootNode(); + RepoUtils.copy(srcRootNode, newRootNode); + newSession.save(); + JcrUtils.addPrivilege(newSession, "/", SlcConstants.ROLE_SLC, + Privilege.JCR_ALL); + CommandHelpers.callCommand(RefreshDistributionsView.ID); + } } catch (RepositoryException re) { throw new ArgeoException( "Unexpected error while creating the new workspace.", re);