From 30d79020a5436aced32f7744d9d07444d6297925 Mon Sep 17 00:00:00 2001 From: Bruno Sinou Date: Thu, 8 Nov 2012 15:32:37 +0000 Subject: [PATCH] fix bug on cancel overwrite git-svn-id: https://svn.argeo.org/slc/trunk@5749 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../slc/client/ui/model/ParentNodeFolder.java | 6 ++-- .../client/ui/views/JcrResultTreeView.java | 5 ++- .../ui/wizards/ConfirmOverwriteWizard.java | 31 +++++++++++++++++-- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/ParentNodeFolder.java b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/ParentNodeFolder.java index 93cef51cd..85da2632e 100644 --- a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/ParentNodeFolder.java +++ b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/ParentNodeFolder.java @@ -20,8 +20,6 @@ import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; import javax.jcr.nodetype.NodeType; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.argeo.slc.SlcException; import org.argeo.slc.jcr.SlcJcrResultUtils; import org.argeo.slc.jcr.SlcNames; @@ -40,8 +38,8 @@ import org.argeo.slc.jcr.SlcTypes; * and keeps a reference to its parent. */ public class ParentNodeFolder extends ResultParent { - private final static Log log = LogFactory.getLog(ParentNodeFolder.class); - + // private final static Log log = LogFactory.getLog(ParentNodeFolder.class); + private Node node = null; /** diff --git a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrResultTreeView.java b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrResultTreeView.java index 40b295c42..e1a5759ef 100644 --- a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrResultTreeView.java +++ b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrResultTreeView.java @@ -1,5 +1,6 @@ package org.argeo.slc.client.ui.views; +import java.awt.Window; import java.util.ArrayList; import java.util.Calendar; import java.util.List; @@ -615,7 +616,9 @@ public class JcrResultTreeView extends ViewPart { name, targetParentNode); WizardDialog dialog = new WizardDialog(Display.getDefault() .getActiveShell(), wizard); - dialog.open(); + + if (dialog.open() == WizardDialog.CANCEL) + return true; if (wizard.overwrite()) { targetParentNode.getNode(name).remove(); diff --git a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/wizards/ConfirmOverwriteWizard.java b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/wizards/ConfirmOverwriteWizard.java index 3ec3530c7..4c812770e 100644 --- a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/wizards/ConfirmOverwriteWizard.java +++ b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/wizards/ConfirmOverwriteWizard.java @@ -2,9 +2,12 @@ package org.argeo.slc.client.ui.wizards; import javax.jcr.Node; import javax.jcr.RepositoryException; +import javax.jcr.Session; import org.argeo.slc.SlcException; import org.argeo.slc.client.ui.ClientUiPlugin; +import org.argeo.slc.client.ui.SlcUiConstants; +import org.argeo.slc.jcr.SlcJcrResultUtils; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.wizard.Wizard; import org.eclipse.jface.wizard.WizardPage; @@ -34,6 +37,7 @@ public class ConfirmOverwriteWizard extends Wizard { private Node targetParentNode; private String newName; + private String parentRelPath; private boolean overwrite; public ConfirmOverwriteWizard(String sourceNodeName, Node targetParentNode) { @@ -72,6 +76,7 @@ public class ConfirmOverwriteWizard extends Wizard { if (overwriteBtn.getSelection()) doFinish = MessageDialog.openConfirm(Display.getDefault() .getActiveShell(), "CAUTION", "All data contained in [" + + (parentRelPath !=null?parentRelPath:"") + sourceNodeName + "] are about to be definitively destroyed. \n " + "Are you sure you want to proceed ?"); @@ -90,8 +95,30 @@ public class ConfirmOverwriteWizard extends Wizard { public MyPage() { super(""); - setTitle("An object with same name (" + sourceNodeName - + ") already exists"); + String msg = "An object with same name (" + sourceNodeName + + ") already exists at chosen target path"; + + // Add target rel path to the message + Session session; + String relPath; + try { + session = targetParentNode.getSession(); + relPath = targetParentNode.getPath(); + String basePath = SlcJcrResultUtils + .getMyResultsBasePath(session); + if (relPath.startsWith(basePath)) + relPath = relPath.substring(basePath.length()); + // FIXME currently add the default base label + parentRelPath = SlcUiConstants.DEFAULT_MY_RESULTS_FOLDER_LABEL + "/" + + relPath; + } catch (RepositoryException e) { + throw new SlcException("Unexpected error while defining " + + "target parent node rel path", e); + } + msg = msg + (parentRelPath == null ? "." : ": \n" + parentRelPath); + + // Set Title + setTitle(msg); } public void createControl(Composite parent) { -- 2.39.2