1 package org.sapia.regis.gui.command; 2 3 import java.io.StringWriter ; 4 5 import org.dom4j.Document; 6 import org.sapia.gumby.RenderContext; 7 import org.sapia.gumby.event.EventManager; 8 import org.sapia.regis.Configurable; 9 import org.sapia.regis.Registry; 10 import org.sapia.regis.gui.GlobalContext; 11 import org.sapia.regis.gui.event.NodeCreatedEvent; 12 import org.sapia.regis.gui.model.NewNodeModel; 13 14 public class NodeCreateCommand extends JellyCommand{ 15 16 private NewNodeModel _node; 17 18 public NodeCreateCommand(NewNodeModel node){ 19 _node = node; 20 } 21 22 protected Object doExecute(RenderContext ctx, Document doc) throws Exception { 23 if(_node.getParent().getChild(_node.getName()) != null){ 24 throw new IllegalStateException ("Child node " + _node.getName() + " already exists"); 25 } 26 StringWriter writer = new StringWriter (); 27 doc.write(writer); 28 Registry reg = GlobalContext.getInstance().getRegistry(); 29 ((Configurable)reg).load( 30 _node.getParent().getAbsolutePath(), 31 GlobalContext.getInstance().getUsername(), 32 GlobalContext.getInstance().getPassword(), 33 writer.toString(), 34 null 35 ); 36 EventManager.getInstance().dispatchEvent(new NodeCreatedEvent(_node.getParent().getChild(_node.getName()))); 37 return null; 38 } 39 40 } 41 | Popular Tags |