X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=server%2Fplugins%2Forg.argeo.jcr.ui.explorer%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjcr%2Fui%2Fexplorer%2Fcommands%2FImportFileSystem.java;h=52ceb904705e697f3a66813f3c83630e554fd3ba;hb=c0b7b3f9d1781d074ab35d24017042fa9415e1e4;hp=12880bad0de4d51e9b92c14c8280d349aa86af2a;hpb=c425aea5b318f0c291804cf3973b3059f923e9b5;p=lgpl%2Fargeo-commons.git diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/ImportFileSystem.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/ImportFileSystem.java index 12880bad0..52ceb9047 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/ImportFileSystem.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/ImportFileSystem.java @@ -2,10 +2,12 @@ package org.argeo.jcr.ui.explorer.commands; import javax.jcr.Node; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.eclipse.ui.dialogs.Error; -import org.argeo.eclipse.ui.jcr.views.AbstractJcrBrowser; +import org.argeo.eclipse.ui.ErrorFeedback; +import org.argeo.eclipse.ui.TreeParent; +import org.argeo.jcr.ui.explorer.JcrExplorerPlugin; +import org.argeo.jcr.ui.explorer.model.SingleJcrNode; +import org.argeo.jcr.ui.explorer.model.WorkspaceNode; +import org.argeo.jcr.ui.explorer.views.GenericJcrBrowser; import org.argeo.jcr.ui.explorer.wizards.ImportFileSystemWizard; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; @@ -15,40 +17,39 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.ui.handlers.HandlerUtil; +/** Import a local file system directory tree. */ public class ImportFileSystem extends AbstractHandler { - private static Log log = LogFactory.getLog(ImportFileSystem.class); - public Object execute(ExecutionEvent event) throws ExecutionException { ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event) .getActivePage().getSelection(); - AbstractJcrBrowser view = (AbstractJcrBrowser) HandlerUtil + GenericJcrBrowser view = (GenericJcrBrowser) HandlerUtil .getActiveWorkbenchWindow(event).getActivePage() .findView(HandlerUtil.getActivePartId(event)); if (selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) { Object obj = ((IStructuredSelection) selection).getFirstElement(); try { - if (obj instanceof Node) { - Node folder = (Node) obj; - // if (!folder.getPrimaryNodeType().getName() - // .equals(NodeType.NT_FOLDER)) { - // Error.show("Can only import to a folder node"); - // return null; - // } + Node folder = null; + if (obj instanceof SingleJcrNode) { + folder = ((SingleJcrNode) obj).getNode(); + } else if (obj instanceof WorkspaceNode) { + folder = ((WorkspaceNode) obj).getRootNode(); + } else { + ErrorFeedback.show(JcrExplorerPlugin + .getMessage("warningInvalidNodeToImport")); + } + if (folder != null) { ImportFileSystemWizard wizard = new ImportFileSystemWizard( folder); WizardDialog dialog = new WizardDialog( HandlerUtil.getActiveShell(event), wizard); dialog.open(); - view.refresh(folder); - } else { - Error.show("Can only import to a node"); + view.nodeAdded((TreeParent) obj); } } catch (Exception e) { - Error.show("Cannot import files to " + obj, e); + ErrorFeedback.show("Cannot import files to " + obj, e); } } return null; } - }