Package factory

Source Code of factory.AutoUIGenerateFactory

package factory;

import java.util.Iterator;
import java.util.StringTokenizer;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

import assembly.AssemblyManger;
import assembly.BasicAssembly;

import utils.XMLUtils;

import meta.FlaFileMeta;
import config.ProjectConfig;

public class AutoUIGenerateFactory {

  @SuppressWarnings("unchecked")
  public void generateXml() {
    Document document = DocumentHelper.createDocument();
    Element rootElement = document.addElement("root");

    for (Iterator flaDesignFileMetaIt = ProjectConfig.getInstance().flaDesignFileMetaList.iterator(); flaDesignFileMetaIt.hasNext();) {
      FlaFileMeta meta = (FlaFileMeta) flaDesignFileMetaIt.next();
      analysisFlaDesignFile(meta, rootElement);
    }
  }

  @SuppressWarnings("unchecked")
  public void analysisFlaDesignFile(FlaFileMeta meta, Element partentElement) {
    /**
     * Add Node <Component></Component>
     */
    Element generateComponentElement = partentElement.addElement("Component");

    /*
     * ReadEachLayer <DOMSymbolItem><timeline><DOMTimeline><layers>...
     */
    Document flaDesignFileDoc = XMLUtils.readXml(meta.filePath);
    Element readRootElement = flaDesignFileDoc.getRootElement().element("timeline").element(
        "DOMTimeline").element("layers");
    for (Iterator layerElementIt = readRootElement.elements("DOMLayer").iterator(); layerElementIt.hasNext();) {
      /**
       * Add Node <layer></layer>
       */
      Element generateLayerElement = generateComponentElement.addElement("layer");
      /*
       * Read Each Element ... <DOMLayer><frames><DOMFrame><elements>
       */
      Element layerElement = (Element) layerElementIt.next();
      Element elementsRoot = layerElement.element("frames").element("DOMFrame").element(
          "elements");

      for (Iterator analysElementIt = elementsRoot.elements("DOMSymbolInstance").iterator(); analysElementIt.hasNext();) {
        Element analysElement = (Element) analysElementIt.next();
        generateChildElementByType(
            analysElement.attributeValue("name"),
            generateLayerElement,
            meta.getFilePathWithoutName() + analysElement.attributeValue("libraryItemName") + ".xml");
      }
    }
  }

  /**
   *
   * @param symbolOriginalName
   * @param parentElement
   * @param possiblePath
   */
  private void generateChildElementByType(String symbolOriginalName, Element parentElement,
      String possiblePath) {
    StringTokenizer analysTokenizer = new StringTokenizer(symbolOriginalName, "_");

    String symbolCodeName = analysTokenizer.nextToken();
    String symbolCodeType = analysTokenizer.nextToken();
    String[] symbolParamaters = new String[analysTokenizer.countTokens()];

    int index = 0;
    while (analysTokenizer.hasMoreTokens()) {
      symbolParamaters[index] = analysTokenizer.nextToken();
      index++;
    }
    BasicAssembly assembly = AssemblyManger.getInstance().getAssemblyByType(symbolCodeType);
    if(assembly != null)
    {
      assembly.generateXmlNode(symbolCodeName, symbolParamaters, possiblePath);
    }
    else
    {
      //copy another node from other component , just recored x,y and componet name
    }
  }

}
TOP

Related Classes of factory.AutoUIGenerateFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.