]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - commands/AddFolderNode.java
1 package org
.argeo
.jcr
.ui
.explorer
.commands
;
4 import javax
.jcr
.RepositoryException
;
5 import javax
.jcr
.nodetype
.NodeType
;
7 import org
.argeo
.eclipse
.ui
.ErrorFeedback
;
8 import org
.argeo
.eclipse
.ui
.dialogs
.SingleValue
;
9 import org
.argeo
.eclipse
.ui
.jcr
.JcrUiPlugin
;
10 import org
.argeo
.jcr
.ui
.explorer
.model
.SingleJcrNode
;
11 import org
.argeo
.jcr
.ui
.explorer
.views
.GenericJcrBrowser
;
12 import org
.eclipse
.core
.commands
.AbstractHandler
;
13 import org
.eclipse
.core
.commands
.ExecutionEvent
;
14 import org
.eclipse
.core
.commands
.ExecutionException
;
15 import org
.eclipse
.jface
.viewers
.ISelection
;
16 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
17 import org
.eclipse
.ui
.handlers
.HandlerUtil
;
19 /** Adds a node of type nt:folder */
20 public class AddFolderNode
extends AbstractHandler
{
22 public Object
execute(ExecutionEvent event
) throws ExecutionException
{
23 ISelection selection
= HandlerUtil
.getActiveWorkbenchWindow(event
)
24 .getActivePage().getSelection();
25 GenericJcrBrowser view
= (GenericJcrBrowser
) HandlerUtil
26 .getActiveWorkbenchWindow(event
).getActivePage()
27 .findView(HandlerUtil
.getActivePartId(event
));
28 if (selection
!= null && !selection
.isEmpty()
29 && selection
instanceof IStructuredSelection
) {
30 Object obj
= ((IStructuredSelection
) selection
).getFirstElement();
32 if (obj
instanceof SingleJcrNode
) {
33 String folderName
= SingleValue
.ask("Folder name",
35 if (folderName
!= null) {
36 SingleJcrNode sjn
= (SingleJcrNode
) obj
;
37 Node parentNode
= sjn
.getNode();
39 Node newNode
= parentNode
.addNode(folderName
,
41 parentNode
.getSession().save();
43 } catch (RepositoryException e
) {
44 ErrorFeedback
.show("Cannot create folder " + folderName
45 + " under " + parentNode
, e
);
49 ErrorFeedback
.show(JcrUiPlugin
50 .getMessage("errorUnvalidNtFolderNodeType"));