Main Page | Class Hierarchy | Class List | File List | Class Members | Related Pages

TemplateDescription.java

00001 /* 00002 * Created on Jun 25, 2004 00003 * 00004 * To change the template for this generated file go to 00005 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments 00006 */ 00007 package org.nees.rbnb; 00008 00009 import java.util.Hashtable; 00010 import java.util.Enumeration; 00011 00012 import javax.swing.tree.DefaultMutableTreeNode; 00013 import javax.swing.tree.MutableTreeNode; 00014 00015 import org.w3c.dom.Document; 00016 import org.w3c.dom.Element; 00017 import org.w3c.dom.Node; 00018 import org.w3c.dom.NodeList; 00019 00020 class TemplateDescription { 00021 private final NeesControlMetadata metadata; 00022 private String name; 00023 private String type = "undefined"; 00024 private Hashtable parameters = new Hashtable(); 00025 00029 public TemplateDescription(NeesControlMetadata metadata, Node node) { 00030 NodeList children = node.getChildNodes(); 00031 this.metadata = metadata; 00032 final int length = children.getLength(); 00033 for(int i = 0; i < length; i++) 00034 { 00035 Node child = children.item(i); 00036 if (child.getNodeType() == Node.ELEMENT_NODE) 00037 { 00038 Element element = (Element)child; 00039 String tag = element.getTagName(); 00040 if (tag.equals(NeesControlMetadata.XML_TAG_FOR_TEMPLATE_NAME)) 00041 { 00042 // get string from templage name 00043 // <templateName>name</templateName> 00044 String name = child.getChildNodes().item(0).getNodeValue(); 00045 setName(name); 00046 } 00047 else 00048 if (tag.equals(NeesControlMetadata.XML_TAG_FOR_TEMPLATE_TYPE)) 00049 { 00050 // get string from templage name 00051 // <type>type</type> 00052 String type = child.getChildNodes().item(0).getNodeValue(); 00053 setType(type); 00054 } 00055 else 00056 if (tag.equals(NeesControlMetadata.XML_TAG_FOR_PARAMETER_LIST)) 00057 { 00058 NodeList param_children = child.getChildNodes(); 00059 final int l = param_children.getLength(); 00060 for(int j = 0; j < l; j++) 00061 { 00062 Node param_child = param_children.item(j); 00063 if (param_child.getNodeType() == Node.ELEMENT_NODE) 00064 { 00065 Element e = (Element)param_child; 00066 String tg = e.getTagName(); 00067 if (tg.equals(NeesControlMetadata.XML_TAG_FOR_PARAMETER)) 00068 { 00069 RBNBBaseParameterHolder h = 00070 new RBNBBaseParameterHolder(param_child); 00071 parameters.put(h.getName(),h); 00072 } 00073 } 00074 } 00075 } 00076 } // if (child.getNodeType() == Node.ELEMENT_NODE) 00077 } // for 00078 } // TemplateDescription 00079 00083 public MutableTreeNode makeSwingTreeNode() { 00084 DefaultMutableTreeNode root = new DefaultMutableTreeNode(this); 00085 DefaultMutableTreeNode node = new DefaultMutableTreeNode("Type: " + type); 00086 root.add(node); 00087 root.add(RBNBBaseParameterHolder.makeParamersSwingTreeNode(parameters)); 00088 return root; 00089 } 00090 00094 public void setParamters(Hashtable hashtable) { 00095 System.out.println("Set Paramters for " + name + " size = " + hashtable.size()); 00096 parameters = hashtable; 00097 } 00098 00103 public Node createXmlNode(Document doc) { 00104 Node node, root = doc.createElement(NeesControlMetadata.XML_TAG_FOR_TEMPLATE); 00105 if (valid()) 00106 { 00107 node = doc.createElement(NeesControlMetadata.XML_TAG_FOR_TEMPLATE_NAME); 00108 node.appendChild(doc.createTextNode(name)); 00109 root.appendChild(node); 00110 00111 node = doc.createElement(NeesControlMetadata.XML_TAG_FOR_TEMPLATE_TYPE); 00112 node.appendChild(doc.createTextNode(type)); 00113 root.appendChild(node); 00114 00115 if ((parameters != null) && (parameters.size() > 0)) 00116 root.appendChild(createParamterListNode(doc)); 00117 } 00118 return root; 00119 } 00120 00121 private Node createParamterListNode(Document doc) 00122 { 00123 Node node, root = doc.createElement(NeesControlMetadata.XML_TAG_FOR_PARAMETER_LIST); 00124 Enumeration e = parameters.elements(); 00125 while (e.hasMoreElements()) 00126 { 00127 RBNBBaseParameterHolder p = (RBNBBaseParameterHolder)e.nextElement(); 00128 root.appendChild(p.createXmlNode(doc)); 00129 } 00130 return root; 00131 } 00132 00133 00137 public boolean valid() { 00138 return 00139 ( (name != null) 00140 && (!name.equals("")) 00141 && (type != null) 00142 && ((type.equals(NeesControlMetadata.IMAGE_TYPE)) 00143 || (type.equals(NeesControlMetadata.MOVIE_TYPE)) 00144 || (type.equals(NeesControlMetadata.DATA_TYPE)) 00145 || (type.equals(NeesControlMetadata.DAQ_TYPE))) 00146 ); 00147 } 00148 00154 public TemplateDescription(NeesControlMetadata metadata, String name, String type) 00155 { 00156 setName(name); 00157 this.metadata = metadata; 00158 setType(type); 00159 } 00160 00161 public void setName(String name) 00162 { 00163 this.name = name; 00164 } 00165 00166 public String getName() 00167 { 00168 return name; 00169 } 00170 00171 public String toString() 00172 { 00173 return getName(); 00174 } 00175 00176 public void addParameterTemplate(String name, String type, Object defaultValue) 00177 { 00178 parameters.put(name,new RBNBBaseParameterHolder(name,type,defaultValue)); 00179 } 00180 00181 public RBNBBaseParameterHolder getParameterTemplate(String name) 00182 { 00183 return (RBNBBaseParameterHolder)parameters.get(name); 00184 } 00185 00186 public void setType(String type) 00187 { 00188 this.type = type; 00189 } 00190 00191 public Enumeration getParameterEnumeration() 00192 { 00193 return parameters.elements(); 00194 } 00195 00196 } // TemplageDescription

Generated on Tue Aug 24 11:12:26 2004 for Data turbine for NEESGrid by doxygen 1.3.7