- String parentNodeJcrId) throws RepositoryException {
- Node parentNode = session.getNodeByIdentifier(parentNodeJcrId);
- Node node = parentNode.addNode("new", nodeType);
+ String nodeSubtype, String parentNodeJcrId)
+ throws RepositoryException {
+ Node node = null;
+
+ if (AkbTypes.AKB_ITEM.equals(nodeType)) {
+ Node parNode = session.getNodeByIdentifier(parentNodeJcrId);
+ AddItemDialog dialog = new AddItemDialog(Display.getDefault()
+ .getActiveShell(), "Add new item", parNode);
+ dialog.open();
+ node = dialog.getNewNode();
+ } else {
+ String name = SingleValue
+ .ask("Create "
+ + AkbMessages
+ .getLabelForType(nodeSubtype == null ? nodeType
+ : nodeSubtype),
+ "Please enter a name for the corresponding "
+ + AkbMessages
+ .getLabelForType(nodeSubtype == null ? nodeType
+ : nodeSubtype));
+ if (name == null)
+ return null;
+ if (AkbTypes.AKB_ENV_TEMPLATE.equals(nodeType)) {
+ node = akbService.createAkbTemplate(
+ session.getNodeByIdentifier(parentNodeJcrId), name);
+ } else if (AkbTypes.AKB_CONNECTOR_ALIAS.equals(nodeType)) {
+ // the Jcr ID of the corresponding template must be passed to
+ // create a new alias
+ node = session.getNodeByIdentifier(parentNodeJcrId);
+ akbService.createConnectorAlias(node, name, nodeSubtype);
+ } else {
+ Node parentNode = session.getNodeByIdentifier(parentNodeJcrId);
+ node = parentNode.addNode(name, nodeType);
+ node.setProperty(Property.JCR_TITLE, name);
+ }
+ }