]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/commands/AddFileFolder.java
+ refactoring of the JCR UI Model (in a MVC point of view)
[lgpl/argeo-commons.git] / eclipse / runtime / org.argeo.eclipse.ui.jcr / src / main / java / org / argeo / eclipse / ui / jcr / commands / AddFileFolder.java
index 4dc0dbec16e6956ec12ee24cfe32734fbedd7d48..dcc708f6adaad5deb84bddbefd2fc017046884e4 100644 (file)
@@ -4,9 +4,10 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.eclipse.ui.dialogs.Error;
+import org.argeo.eclipse.ui.ErrorFeedback;
 import org.argeo.eclipse.ui.dialogs.SingleValue;
-import org.argeo.eclipse.ui.jcr.views.GenericJcrBrowser;
+import org.argeo.eclipse.ui.jcr.JcrUiPlugin;
+import org.argeo.eclipse.ui.jcr.views.AbstractJcrBrowser;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -14,17 +15,19 @@ import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 
+/** Adds a node of type nt:folder */
 public class AddFileFolder extends AbstractHandler {
 
        public Object execute(ExecutionEvent event) throws ExecutionException {
                ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
                                .getActivePage().getSelection();
-               GenericJcrBrowser view = (GenericJcrBrowser) HandlerUtil
+               AbstractJcrBrowser view = (AbstractJcrBrowser) HandlerUtil
                                .getActiveWorkbenchWindow(event).getActivePage()
                                .findView(HandlerUtil.getActivePartId(event));
                if (selection != null && !selection.isEmpty()
                                && selection instanceof IStructuredSelection) {
                        Object obj = ((IStructuredSelection) selection).getFirstElement();
+
                        if (obj instanceof Node) {
                                String folderName = SingleValue.ask("Folder name",
                                                "Enter folder name");
@@ -36,12 +39,13 @@ public class AddFileFolder extends AbstractHandler {
                                                view.nodeAdded(parentNode, newNode);
                                                parentNode.getSession().save();
                                        } catch (RepositoryException e) {
-                                               Error.show("Cannot create folder " + folderName
+                                               ErrorFeedback.show("Cannot create folder " + folderName
                                                                + " under " + parentNode, e);
                                        }
                                }
                        } else {
-                               Error.show("Can only add file folder to a node");
+                               ErrorFeedback.show(JcrUiPlugin
+                                               .getMessage("errorUnvalidNtFolderNodeType"));
                        }
                }
                return null;