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;
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;
}
-
}