Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.pentaho.ui.xul.gwt;
  
  
  import java.util.HashMap;
  import java.util.Map;
  
 
 
 public class GwtXulParser {
   
   private static final Map<StringGwtXulHandlerhandlers = new HashMap<StringGwtXulHandler>();
   
   public static void registerHandler(String nameGwtXulHandler handler) {
     .put(namehandler);
   }
   
   public static boolean isRegistered(String name){
     return .get(name) != null;
   }
   
   
   public GwtXulParser() {
   }
   
   private void resetParser(){
     try {
        = GwtDocumentFactory.createDocument();
     } catch (Exception e) {
       ..println(e.getMessage());
       e.printStackTrace();
     }
   }
   
   public void setContainer(XulDomContainer xulDomContainer) {
     resetParser();
     this. = xulDomContainer;
     xulDomContainer.addDocument();
   }
   
   public Document parseDocument(com.google.gwt.xml.client.Element rootSrcthrows XulException {
 
     
     XulComponent root = parse(rootSrcnull);
 
     //give root reference to runner for service calls
     if(root instanceof XulWindow){
       ((XulWindow)root).setXulDomContainer(this.);
     }
 
     .addChild(root);
     
 
     //descend back down firing notification that everything is on the tree.
     notifyDomReady(root);
     
     return ;
   }
 
   private void notifyDomReady(XulComponent node){
     node.onDomReady();
     for(XulComponent c : node.getChildNodes()){
       notifyDomReady(c);
     }
   }
   public XulComponent parse(com.google.gwt.xml.client.Element rootSrcXulContainer parentthrows XulException {
     //parse element
     XulComponent root = getElement(rootSrcparent);
 
     //descend down a level and parse children (root would be a container in the case)
     NodeList children = rootSrc.getChildNodes();
     for (int i = 0; i < children.getLength(); i++) {
       if (children.item(iinstanceof com.google.gwt.xml.client.Element) {
         Element childElement = parse((com.google.gwt.xml.client.Element)children.item(i), (XulContainerroot);
   
         //TODO: remove once exception handling in place
         if (childElement == null) {
           continue;
         }
   
         // Add to the XML DOM tree ...
         root.addChild(childElement);
   
       }
     }
     if (root != null && root instanceof AbstractGwtXulComponent) {
       ((AbstractGwtXulComponent)root).layout();
     }
 
    return root;
  }
    
  protected XulComponent getElement(com.google.gwt.xml.client.Element srcEleXulContainer parentthrows XulException {
    
    GwtXulHandler handler = .get(srcEle.getNodeName());
    if (handler != null) {
      gxc.init(srcEle);
      return gxc;
    } else {
      ..println("Error: No Handler for type " + srcEle.getNodeName());
      return null;
    }
  }
  
  public XulComponent getElement(String namethrows XulException{
    return getElement(namenull);
  }
  public XulComponent getElement(String nameXulComponent defaultParentthrows XulException{
    GwtXulHandler handler = .get(name);
    if (handler != null) {
      gxc.setParent(defaultParent);
      return gxc;
    } else {
      ..println("Error: No Handler for type " + name);
      return null;
    }
  }
New to GrepCode? Check out our FAQ X