KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > regis > gui > command > NodeCreateCommand


1 package org.sapia.regis.gui.command;
2
3 import java.io.StringWriter JavaDoc;
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 JavaDoc doExecute(RenderContext ctx, Document doc) throws Exception JavaDoc {
23     if(_node.getParent().getChild(_node.getName()) != null){
24       throw new IllegalStateException JavaDoc("Child node " + _node.getName() + " already exists");
25     }
26     StringWriter JavaDoc writer = new StringWriter JavaDoc();
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