<classpathentry excluding="org/tizen/webuibuilder/ui/views/properties/method/StyleColorMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleComboMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleFontStyleMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleFontTextMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleFontWeightMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleGroupMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleImageMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StylePositionMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleResourceMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleSizeMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleSpinnerMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleTextAlignMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleTextDecoMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleTextMethod.java|org/tizen/webuibuilder/ui/views/properties/method/StyleToolBarMethod.java|org/tizen/webuibuilder/ui/views/properties/method/FontTextMethod.java|org/tizen/webuibuilder/ui/views/properties/method/IStyleChangedListener.java|org/tizen/webuibuilder/ui/views/properties/style/StandardViewer.java|org/tizen/webuibuilder/ui/views/properties/style/StyleContentProvider.java|org/tizen/webuibuilder/ui/views/properties/style/StyleLabelProvider.java|org/tizen/webuibuilder/ui/views/properties/style/StyleTab.java|org/tizen/webuibuilder/ui/views/properties/style/StyleEvent.java|org/tizen/webuibuilder/ui/views/properties/style/StyleTreeViewer.java|org/tizen/webuibuilder/ui/views/properties/style/Style.java" kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry exported="true" kind="lib" path="lib/gson-2.2.4.jar"/>
- <classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="lib/opal-0.9.5.jar"/>
<classpathentry kind="lib" path="lib/org.eclipse.nebula.widgets.gallery_0.6.0.201307092147.jar"/>
<classpathentry kind="lib" path="lib/org.eclipse.nebula.widgets.gallery.source_0.6.0.201307092147.jar"/>
Export-Package: org.tizen.webuibuilder.extintrf,
org.tizen.webuibuilder.ui.editor
Bundle-ClassPath: .,
- lib/dom4j-1.6.1.jar,
lib/opal-0.9.5.jar,
lib/org.eclipse.nebula.widgets.gallery_0.6.0.201307092147.jar,
lib/org.eclipse.nebula.widgets.gallery.source_0.6.0.201307092147.jar,
if (owner.getModel() instanceof Part) {
Part part = (Part) owner.getModel();
// Rectangle bounds = part.getPosition().getCopy();
- Rectangle bounds = part.getAniPosition().getCopy();
- return bounds;
+ if(part.getAniPosition() != null){
+ Rectangle bounds = part.getAniPosition().getCopy();
+ return bounds;
+ }
}
return super.getReferenceBox();
}
package org.tizen.webuibuilder.animator.model.descriptor;
+import java.io.IOException;
+import java.net.URISyntaxException;
import java.net.URL;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
/**
* @param descriptorPath
*/
public void parse(URL descriptorPath) {
- SAXReader reader = new SAXReader();
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
Document doc = null;
-
+
try {
- doc = reader.read(descriptorPath);
- } catch (DocumentException e) {
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(descriptorPath.toURI().toString());
+ } catch (URISyntaxException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
e.printStackTrace();
}
- if (doc != null && doc.getRootElement() != null) {
- parseRoot(doc.getRootElement());
+ if (doc != null && doc.getDocumentElement() != null) {
+ parseRoot(doc.getDocumentElement());
}
}
private void parseRoot(Element root) {
- for (Object childObj : root.elements(ELEM_ANIMATION)) {
- parseAnimation((Element) childObj, new CssAnimationDescriptor());
+ NodeList elemList = root.getElementsByTagName(ELEM_ANIMATION);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parseAnimation((Element) elemList.item(i), new CssAnimationDescriptor());
}
}
private void parseAnimation(Element elem, CssAnimationDescriptor cssAnimation) {
- String id = elem.attributeValue(ATTR_ID);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String iconPathSmall = elem.attributeValue(ATTR_SMALLICON);
- String iconPath16 = elem.attributeValue(ATTR_ICON_16);
- String description = elem.attributeValue(ATTR_DESCRIPTION);
- String category = elem.attributeValue(ATTR_CATEGORY);
+ String id = elem.getAttribute(ATTR_ID);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String iconPathSmall = elem.getAttribute(ATTR_SMALLICON);
+ String iconPath16 = elem.getAttribute(ATTR_ICON_16);
+ String description = elem.getAttribute(ATTR_DESCRIPTION);
+ String category = elem.getAttribute(ATTR_CATEGORY);
cssAnimation.init(id, displayName, iconPath16, iconPathSmall, category, description);
- for (Object propertyObj : elem.elements(ELEM_PROPERTY)) {
- parseProperty((Element) propertyObj, cssAnimation);
+ NodeList elemList = elem.getElementsByTagName(ELEM_PROPERTY);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parseProperty((Element) elemList.item(i), cssAnimation);
}
manager.addCssAnimationDescriptor(cssAnimation);
}
private void parseProperty(Element elem, CssAnimationDescriptor animationDescriptor) {
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
+ String name = elem.getAttribute(ATTR_NAME);
+ String type = elem.getAttribute(ATTR_TYPE);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String defaultValue = elem.getAttribute(ATTR_DEFAULT);
+ String initValue = elem.getAttribute(ATTR_INITVALUE);
CssAnimationPropertyDescriptor property = new CssAnimationPropertyDescriptor();
property.init(name, type, displayName, defaultValue, initValue);
animationDescriptor.addProperties(property);
- for (Object childObj : elem.elements(ELEM_PROPERTY)) {
- parseChildProperty((Element) childObj, property);
+ NodeList elemList = elem.getElementsByTagName(ELEM_PROPERTY);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parseChildProperty((Element) elemList.item(i), property);
}
}
private void parseChildProperty(Element elem,
CssAnimationPropertyDescriptor animationPropertyDescriptor) {
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
+ String name = elem.getAttribute(ATTR_NAME);
+ String type = elem.getAttribute(ATTR_TYPE);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String defaultValue = elem.getAttribute(ATTR_DEFAULT);
+ String initValue = elem.getAttribute(ATTR_INITVALUE);
CssAnimationPropertyDescriptor childProperty = new CssAnimationPropertyDescriptor();
childProperty.init(name, type, displayName, defaultValue, initValue);
String dstFile = htmlFile.getLocation().toString();
DescriptorManager descriptorManager = getDescriptorManager(project);
PartFactory partFactory = new PartFactory(descriptorManager);
- CodeGenerator.generateCode(srcFile, dstFile, descriptorManager, partFactory, project);
+ CodeGenerator.generateCode(srcFile, dstFile, descriptorManager, partFactory);
// page.managed.js
// InputStream xsltStream =
newElmBase.setAttribute("href", rootPathUri + "/");
elm.insertBefore(newElmBase, elm.getFirstChild());
- NodeList scripts = elm.getElementsByTagName("script");
- if (scripts != null) {
- int len = scripts.getLength();
- for (int i = 0; i < len; i++) {
- Element script = (Element) scripts.item(i);
- String src = script.getAttribute("src");
- int fileidx = src.lastIndexOf("/");
- String filename = src.substring(fileidx + 1);
- if (!filename.equals("jquery.js") && !filename.equals("tizen-web-ui-fw-libs.js")
- && !filename.equals("tizen-web-ui-fw.js")) {
- script.removeAttribute("src");
- script.setTextContent("");
- }
+ NodeList elemList = elm.getChildNodes();
+ for(int i = elemList.getLength(); i >= 0; i--){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals("script")){
+ Element script = (Element) childNode;
+ String src = script.getAttribute("src");
+ int fileidx = src.lastIndexOf("/");
+ String filename = src.substring(fileidx + 1);
+ if (!filename.equals("jquery.js") && !filename.equals("tizen-web-ui-fw-libs.js")
+ && !filename.equals("tizen-web-ui-fw.js")) {
+ elm.removeChild(childNode);
+ }
+ }
}
}
newElmBase.setAttribute("href", rootPathUri + "/");
elm.insertBefore(newElmBase, elm.getFirstChild());
- NodeList scripts = elm.getElementsByTagName("script");
- if (scripts != null) {
- int len = scripts.getLength();
- for (int i = 0; i < len; i++) {
- Element script = (Element) scripts.item(i);
- String src = script.getAttribute("src");
- int fileidx = src.lastIndexOf("/");
- String filename = src.substring(fileidx + 1);
- if (!filename.equals("jquery.js") && !filename.equals("tizen-web-ui-fw-libs.js")
- && !filename.equals("tizen-web-ui-fw.js")) {
- script.removeAttribute("src");
- script.setTextContent("");
- }
+ NodeList elemList = elm.getChildNodes();
+ for(int i = elemList.getLength(); i >= 0; i--){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals("script")){
+ Element script = (Element) childNode;
+ String src = script.getAttribute("src");
+ int fileidx = src.lastIndexOf("/");
+ String filename = src.substring(fileidx + 1);
+ if (!filename.equals("jquery.js") && !filename.equals("tizen-web-ui-fw-libs.js")
+ && !filename.equals("tizen-web-ui-fw.js")) {
+ elm.removeChild(childNode);
+ }
+ }
}
}
for (int i = 0; i < len; i++) {
body.removeChild(body.getFirstChild());
}
- body.setTextContent("%html%");
+ if (html == null) {
+ html = "";
+ }
+ body.setTextContent("%html%");
+
// String tempHtml =
// HtmlWriter.writeToString((Element)editDoc.getFirstChild().getChildNodes().item(index));
String tempHtml = HtmlWriter.writeToString(editDoc);
- if (html == null) {
- html = "";
- }
tempHtml = tempHtml.replace("%html%", html);
-
+
return tempHtml;
}
package org.tizen.webuibuilder.model.app.io;
+import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.io.SAXReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
import org.tizen.webuibuilder.model.filedata.AppFileData;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
public class AppMetaReader {
public static AppFileData read(InputStream stream) {
- SAXReader reader = new SAXReader();
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
Document doc = null;
- AppFileData descriptor = null;
try {
- doc = reader.read(stream);
- } catch (DocumentException e) {
- e.printStackTrace();
- }
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(stream);
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
- if (doc != null && doc.getRootElement() != null) {
- descriptor = AppMetaReader_ver_2.parse(doc.getRootElement());
+ AppFileData descriptor = null;
+
+ if (doc != null && doc.getDocumentElement() != null) {
+ descriptor = AppMetaReader_ver_2.parse(doc.getDocumentElement());
if (descriptor == null) {
- descriptor = AppMetaReader_ver_1.parse(doc.getRootElement());
+ descriptor = AppMetaReader_ver_1.parse(doc.getDocumentElement());
}
}
}
public static AppFileData read(URL descriptorPath) {
- SAXReader reader = new SAXReader();
- Document doc = null;
- AppFileData descriptor = null;
-
+ AppFileData descriptor = null;
+
try {
- doc = reader.read(descriptorPath);
- } catch (DocumentException e) {
- e.printStackTrace();
- }
-
- if (doc != null && doc.getRootElement() != null) {
- descriptor = AppMetaReader_ver_2.parse(doc.getRootElement());
- if (descriptor == null) {
- descriptor = AppMetaReader_ver_1.parse(doc.getRootElement());
- }
- }
-
+ descriptor = read(descriptorPath.openStream());
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
return descriptor;
}
}
package org.tizen.webuibuilder.model.app.io;
-import org.dom4j.Element;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.app.Framework;
import org.tizen.webuibuilder.model.app.Library;
import org.tizen.webuibuilder.model.app.Page;
import org.tizen.webuibuilder.model.app.Stylesheet;
+import org.tizen.webuibuilder.model.descriptors.DocumentPartDescriptor;
+import org.tizen.webuibuilder.model.descriptors.PagePartDescriptor;
+import org.tizen.webuibuilder.model.descriptors.WidgetPartDescriptor;
import org.tizen.webuibuilder.model.filedata.AppFileData;
descriptor = new AppFileData();
descriptor.setProjectFileVersion("0.0.1");
- for (Object childObj : root.elements(BuilderConstants.ELEMENT_PROJECTINFO)) {
- parseProjectInfo((Element) childObj, descriptor);
- }
-
- for (Object childObj : root.elements(BuilderConstants.ELEMENT_PAGESYSTEM)) {
- parsePart((Element) childObj, descriptor);
- }
+ NodeList elemList = root.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_PROJECTINFO)) {
+ parseProjectInfo((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_PAGESYSTEM)) {
+ parsePart((Element) childNode, descriptor);
+ }
+ }
+ }
return descriptor;
}
private static void parseProjectInfo(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_TITLE)) {
- Element title = (Element) childObj;
- descriptor.setTitle(title.getText());
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_AUTHOR)) {
- Element author = (Element) childObj;
- descriptor.setAuthor(author.getText());
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_VERSION)) {
- Element version = (Element) childObj;
- descriptor.setVersion(version.getText());
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_TITLE)) {
+ descriptor.setTitle(childNode.getTextContent());
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_AUTHOR)) {
+ descriptor.setAuthor(childNode.getTextContent());
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_VERSION)) {
+ descriptor.setVersion(childNode.getTextContent());
+ }
+ }
+ }
}
private static void parsePart(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_FRAMEWORKS)) {
- parseFrameworks((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_LIBRARIES)) {
- parseLibraries((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_PAGES)) {
- parsePages((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_ENTRIES)) {
- parseEntrys((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_STYLESHEETS)) {
- parseStylesheets((Element) childObj, descriptor);
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_FRAMEWORKS)) {
+ parseFrameworks((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_LIBRARIES)) {
+ parseLibraries((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_PAGES)) {
+ parsePages((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_ENTRIES)) {
+ parseEntrys((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_STYLESHEETS)) {
+ parseStylesheets((Element) childNode, descriptor);
+ }
+ }
+ }
}
private static void parseFrameworks(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_FRAMEWORK_THEME)) {
- String theme = parseTheme((Element) childObj);
- descriptor.addOrReplaceFrameworkVariable("theme", theme);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_SCRIPT)) {
- FrameworkEntry frameworkentry = parseFramework((Element) childObj, descriptor);
- descriptor.addLibrary(frameworkentry.library);
- if (frameworkentry.framework != null) {
- descriptor.addFramework(frameworkentry.framework);
- }
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_FRAMEWORK_THEME)) {
+ String theme = parseTheme((Element) childNode);
+ descriptor.addOrReplaceFrameworkVariable("theme", theme);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_SCRIPT)) {
+ FrameworkEntry frameworkentry = parseFramework((Element) childNode, descriptor);
+ descriptor.addLibrary(frameworkentry.library);
+ if (frameworkentry.framework != null) {
+ descriptor.addFramework(frameworkentry.framework);
+ }
+ }
+ }
+ }
}
private static void parseLibraries(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_SCRIPT)) {
- Library script = parseScript((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_SCRIPT);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Library script = parseScript((Element) elemList.item(i));
descriptor.addLibrary(script);
}
}
private static void parsePages(Element element, AppFileData descriptor) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_PAGE)) {
- Element element2 = (Element) childObj;
+ NodeList elemList = element.getElementsByTagName(BuilderConstants.ELEMENT_PAGE);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Element element2 = (Element) elemList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String startup = element2.attributeValue(BuilderConstants.ATTRIBUTE_STARTUP);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String startup = element2.getAttribute(BuilderConstants.ATTRIBUTE_STARTUP);
boolean boolStartup = Boolean.valueOf(startup).booleanValue();
- String pagePath = element2.attributeValue(BuilderConstants.ATTRIBUTE_PAGEPATH);
- String jsPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_JSPATH);
+ String pagePath = element2.getAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH);
+ String jsPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_JSPATH);
String managedJsPath =
- element2.attributeValue(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH);
- String htmlPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_HTMLPATH);
+ element2.getAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH);
+ String htmlPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH);
String cssPath = htmlPath.replace(".html", ".css");
String managedCssPath = htmlPath.replace(".html", ".managed.css");
}
private static void parseEntrys(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_SCRIPT)) {
- Library entry = parseEntry((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_SCRIPT);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Library entry = parseEntry((Element) elemList.item(i));
descriptor.addLibrary(entry);
}
}
private static void parseStylesheets(Element elem, AppFileData descriptor) {
Stylesheet stylesheet = new Stylesheet("pages", "all", "");
descriptor.addStylesheet(stylesheet);
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_STYLESHEET)) {
- stylesheet = parseStylesheet((Element) childObj);
+
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_STYLESHEET);
+ for(int i = 0; i < elemList.getLength(); i++){
+ stylesheet = parseStylesheet((Element) elemList.item(i));
descriptor.addStylesheet(stylesheet);
}
}
private static String parseTheme(Element element) {
- String theme = element.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
+ String theme = element.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
return theme;
}
private static FrameworkEntry parseFramework(Element element, AppFileData descriptor) {
// String type =
// element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String path = element.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
- String theme = element.attributeValue(BuilderConstants.ATTRIBUTE_THEME);
- String viewport = element.attributeValue(BuilderConstants.ATTRIBUTE_SCALE);
+ String path = element.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
+ String theme = element.getAttribute(BuilderConstants.ATTRIBUTE_THEME);
+ String viewport = element.getAttribute(BuilderConstants.ATTRIBUTE_SCALE);
String core = "";
if (theme != null && !theme.isEmpty()) {
// String type =
// element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
String type = "user";
- String path = element.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
+ String path = element.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
Library script = new Library(type, path); // type == "user"
// String type =
// element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
String type = " entry";
- String path = element.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
+ String path = element.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
Library framework = new Library(type, path); // type == "entry"
}
private static Stylesheet parseStylesheet(Element element) {
- String path = element.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
+ String path = element.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
Stylesheet stylesheet = new Stylesheet("user", path, "");
import java.util.List;
import java.util.Map.Entry;
-import org.dom4j.Element;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.app.Framework;
import org.tizen.webuibuilder.model.app.Library;
descriptor = new AppFileData();
descriptor.setProjectFileVersion(fileReader.getVersion());
- for (Object childObj : root.elements(BuilderConstants.ELEMENT_TIZENPROJECT)) {
- parsePart((Element) childObj, descriptor);
+ NodeList elemList = root.getElementsByTagName(BuilderConstants.ELEMENT_TIZENPROJECT);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parsePart((Element) elemList.item(i), descriptor);
}
return descriptor;
}
private static void parsePart(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_METAS)) {
- parseMetas((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_LIBRARIES)) {
- parseLibrarys((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_FRAMEWORKS)) {
- parseFrameworks((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_PAGES)) {
- parsePage((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_DATABINDING)) {
- parseDataBinding((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_STYLESHEETS)) {
- parseStylesheets((Element) childObj, descriptor);
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_METAS)) {
+ parseMetas((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_LIBRARIES)) {
+ parseLibrarys((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_FRAMEWORKS)) {
+ parseFrameworks((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_PAGES)) {
+ parsePage((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_DATABINDING)) {
+ parseDataBinding((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_STYLESHEETS)) {
+ parseStylesheets((Element) childNode, descriptor);
+ }
+ }
+ }
}
private static void parseMetas(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_META)) {
- Meta meta = parseMeta((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_META);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Meta meta = parseMeta((Element) elemList.item(i));
descriptor.addMeta(meta);
}
}
private static void parseFrameworks(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_VARIABLES)) {
- parseFrameworkVariables((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_FRAMEWORK)) {
- Framework script = parseFramework((Element) childObj);
- descriptor.addFramework(script);
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_VARIABLES)) {
+ parseFrameworkVariables((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_FRAMEWORK)) {
+ Framework script = parseFramework((Element) childNode);
+ descriptor.addFramework(script);
+ }
+ }
+ }
}
private static void parseLibrarys(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_LIBRARY)) {
- Library library = parseLibrary((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_LIBRARY);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Library library = parseLibrary((Element) elemList.item(i));
descriptor.addLibrary(library);
}
}
private static void parsePage(Element element, AppFileData descriptor) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_PAGE)) {
- Element element2 = (Element) childObj;
+ NodeList elemList = element.getElementsByTagName(BuilderConstants.ELEMENT_PAGE);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element element2 = (Element) elemList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String startup = element2.attributeValue(BuilderConstants.ATTRIBUTE_STARTUP);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String startup = element2.getAttribute(BuilderConstants.ATTRIBUTE_STARTUP);
boolean boolStartup = Boolean.valueOf(startup).booleanValue();
- String pagePath = element2.attributeValue(BuilderConstants.ATTRIBUTE_PAGEPATH);
- String jsPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_JSPATH);
+ String pagePath = element2.getAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH);
+ String jsPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_JSPATH);
String managedJsPath =
- element2.attributeValue(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH);
- String htmlPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_HTMLPATH);
- String cssPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_CSSPATH);
+ element2.getAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH);
+ String htmlPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH);
+ String cssPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_CSSPATH);
String managedCssPath =
- element2.attributeValue(BuilderConstants.ATTRIBUTE_MANAGED_CSSPATH);
+ element2.getAttribute(BuilderConstants.ATTRIBUTE_MANAGED_CSSPATH);
Page page =
new Page(name, pagePath, jsPath, managedJsPath, htmlPath, cssPath,
}
private static void parseUpdateStartUp(Element element, AppFileData descriptor) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_UPDATEONSTARTUP)) {
- Element element2 = (Element) childObj;
+ NodeList elemList = element.getElementsByTagName(BuilderConstants.ELEMENT_UPDATEONSTARTUP);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element element2 = (Element) elemList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String updateStartUp = element2.attributeValue(BuilderConstants.ATTRIBUTE_ISCHECKED);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String updateStartUp = element2.getAttribute(BuilderConstants.ATTRIBUTE_ISCHECKED);
boolean isChecked = false;
if (updateStartUp.equals("true")) {
}
private static void parseHandlerInfo(Element element, AppFileData descriptor) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_HANDLERINFO)) {
- Element element2 = (Element) childObj;
+ NodeList elemList = element.getElementsByTagName(BuilderConstants.ELEMENT_HANDLERINFO);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element element2 = (Element) elemList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
BindingData dataModel = new BindingData(name);
List<String> modelInfo = new ArrayList<String>();
- for (Object subChildObj : element.elements(BuilderConstants.ELEMENT_HANDLERINFO)) {
- Element element3 = (Element) subChildObj;
- String childName = element3.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
+ NodeList elemList2 = element.getElementsByTagName(BuilderConstants.ELEMENT_HANDLERINFO);
+ for (int j = 0; j < elemList2.getLength(); j++) {
+ Element element3 = (Element) elemList2.item(i);
+ String childName = element3.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
modelInfo.add(childName);
}
dataModel.addHandlerInfos(name, modelInfo);
}
private static void parseViewModel(Element element, AppFileData descriptor) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_VIEWMODEL)) {
- Element element2 = (Element) childObj;
+ NodeList elemList = element.getElementsByTagName(BuilderConstants.ELEMENT_VIEWMODEL);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element element2 = (Element) elemList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String dataSourceName = element2.attributeValue(BuilderConstants.ATTRIBUTE_DATASOURCE);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String dataSourceName = element2.getAttribute(BuilderConstants.ATTRIBUTE_DATASOURCE);
BindingData dataModel = new BindingData(name, dataSourceName);
parseObservableObject(element2, dataModel, null);
}
private static void parseDataSource(Element element, AppFileData descriptor) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_DATASOURCE)) {
- Element element2 = (Element) childObj;
+ NodeList elemList = element.getElementsByTagName(BuilderConstants.ELEMENT_DATASOURCE);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element element2 = (Element) elemList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String modelType = element2.attributeValue(BuilderConstants.ATTRIBUTE_MODELTYPE);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String modelType = element2.getAttribute(BuilderConstants.ATTRIBUTE_MODELTYPE);
if ((modelType != null) && (modelType.equals("REMOTECALL"))) {
- String url = element2.attributeValue(BuilderConstants.ATTRIBUTE_URL);
- String type = element2.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String proxy = element2.attributeValue(BuilderConstants.ATTRIBUTE_PROXY);
- String query = element2.attributeValue(BuilderConstants.ATTRIBUTE_QUERY);
- String sourceType = element2.attributeValue(BuilderConstants.ATTRIBUTE_SOURCETYPE);
- String timeout = element2.attributeValue(BuilderConstants.ATTRIBUTE_TIMEOUT);
- String jsonData = element2.attributeValue(BuilderConstants.ATTRIBUTE_JSONDATA);
+ String url = element2.getAttribute(BuilderConstants.ATTRIBUTE_URL);
+ String type = element2.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String proxy = element2.getAttribute(BuilderConstants.ATTRIBUTE_PROXY);
+ String query = element2.getAttribute(BuilderConstants.ATTRIBUTE_QUERY);
+ String sourceType = element2.getAttribute(BuilderConstants.ATTRIBUTE_SOURCETYPE);
+ String timeout = element2.getAttribute(BuilderConstants.ATTRIBUTE_TIMEOUT);
+ String jsonData = element2.getAttribute(BuilderConstants.ATTRIBUTE_JSONDATA);
BindingData dataModel =
new BindingData(name, modelType, url, type, proxy, query, sourceType,
timeout, jsonData);
descriptor.addDataSource(dataModel);
} else if ((modelType != null) && (modelType.equals("STATIC"))) {
- String jsonData = element2.attributeValue(BuilderConstants.ATTRIBUTE_JSONDATA);
- String filePath = element2.attributeValue(BuilderConstants.ATTRIBUTE_FILEPATH);
+ String jsonData = element2.getAttribute(BuilderConstants.ATTRIBUTE_JSONDATA);
+ String filePath = element2.getAttribute(BuilderConstants.ATTRIBUTE_FILEPATH);
BindingData dataModel = new BindingData(name, modelType, jsonData, filePath);
descriptor.addDataSource(dataModel);
} else if ((modelType != null) && (modelType.equals("RUNTIMEAPI"))) {
- String api = element2.attributeValue(BuilderConstants.ATTRIBUTE_API);
+ String api = element2.getAttribute(BuilderConstants.ATTRIBUTE_API);
BindingData dataModel = new BindingData(name, modelType, api);
descriptor.addDataSource(dataModel);
private static void parseObservableObject(Element element, BindingData dataModel,
BindingObject parentObject) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_OBSERVABLEOBJECT)) {
- Element element2 = (Element) childObj;
-
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String type = element2.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String value = element2.attributeValue(BuilderConstants.ATTRIBUTE_VALUE);
- String isMarked = element2.attributeValue(BuilderConstants.ATTRIBUTE_ISMARKED);
+ NodeList elemList = element.getElementsByTagName(BuilderConstants.ELEMENT_OBSERVABLEOBJECT);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element element2 = (Element) elemList.item(i);
+
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String type = element2.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String value = element2.getAttribute(BuilderConstants.ATTRIBUTE_VALUE);
+ String isMarked = element2.getAttribute(BuilderConstants.ATTRIBUTE_ISMARKED);
boolean boolMarked = Boolean.valueOf(isMarked).booleanValue();
BindingObject dataSource = new BindingObject(name, type, value, boolMarked);
}
private static void parseStylesheets(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_STYLESHEET)) {
- Stylesheet stylesheet = parseStylesheet((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_STYLESHEET);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Stylesheet stylesheet = parseStylesheet((Element) elemList.item(i));
descriptor.addStylesheet(stylesheet);
}
}
private static void parseFrameworkVariables(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_VARIABLE)) {
- Entry<String, String> variable = parseFrameworkVariable((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_VARIABLE);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Entry<String, String> variable = parseFrameworkVariable((Element) elemList.item(i));
descriptor.addFrameworkVariable(variable.getKey(), variable.getValue());
}
}
private static Framework parseFramework(Element elem) {
- String param = elem.attributeValue(BuilderConstants.ATTRIBUTE_PARAM);
- String path = elem.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
- String param2 = elem.attributeValue(BuilderConstants.ATTRIBUTE_PARAM2);
+ String param = elem.getAttribute(BuilderConstants.ATTRIBUTE_PARAM);
+ String path = elem.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
+ String param2 = elem.getAttribute(BuilderConstants.ATTRIBUTE_PARAM2);
Framework framework = new Framework(param, path, param2);
}
private static Entry<String, String> parseFrameworkVariable(Element elem) {
- String name = elem.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String value = elem.attributeValue(BuilderConstants.ATTRIBUTE_VALUE);
+ String name = elem.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String value = elem.getAttribute(BuilderConstants.ATTRIBUTE_VALUE);
Entry<String, String> variable = new AbstractMap.SimpleEntry<String, String>(name, value);
}
private static Meta parseMeta(Element element) {
- String type = element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String param = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM);
- String param2 = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM2);
+ String type = element.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String param = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM);
+ String param2 = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM2);
Meta meta = new Meta(type, param, param2);
}
private static Library parseLibrary(Element element) {
- String type = element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String param = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM);
+ String type = element.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String param = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM);
Library library = new Library(type, param);
}
private static Stylesheet parseStylesheet(Element element) {
- String type = element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String param = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM);
- String param2 = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM2);
+ String type = element.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String param = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM);
+ String param2 = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM2);
Stylesheet stylesheet = new Stylesheet(type, param, param2);
import java.io.StringWriter;
import java.io.Writer;
-import org.dom4j.Document;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.XMLWriter;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
import org.tizen.webuibuilder.model.filedata.AppFileData;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
public class AppMetaWriter {
private static final int INDENT_SIZE = 4;
public static void writeTo(AppFileData descriptor, Writer writer) throws IOException {
- Element elem = writeElement(descriptor);
-
- Document doc = DocumentHelper.createDocument();
- doc.add(elem);
-
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setIndentSize(INDENT_SIZE);
+ Document doc = writeElement(descriptor);
- XMLWriter xmlwriter = new XMLWriter(writer, format);
- xmlwriter.write(doc);
- xmlwriter.close();
+ DOMSource source = new DOMSource(doc);
+ StreamResult result = new StreamResult(writer);
+
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer;
+ try {
+ transformer = factory.newTransformer();
+ transformer.transform(source, result);
+ } catch (TransformerConfigurationException e) {
+ e.printStackTrace();
+ } catch (TransformerException e) {
+ e.printStackTrace();
+ }
}
public static String writeToString(AppFileData descriptor) {
writeTo(descriptor, new FileWriter(filePath));
}
- public static Element writeElement(AppFileData descriptor) {
+ public static Document writeElement(AppFileData descriptor) {
// return ProjectWriter_ver0_0_1.writeElement(descriptor);
return AppMetaWriter_ver_2.writeElement(descriptor);
}
import java.util.List;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.app.Framework;
import org.tizen.webuibuilder.model.app.Library;
import org.tizen.webuibuilder.model.app.Page;
import org.tizen.webuibuilder.model.app.Stylesheet;
import org.tizen.webuibuilder.model.filedata.AppFileData;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
public class AppMetaWriter_ver_1 {
- public static Element writeElement(AppFileData descriptor) {
- Element root = DocumentHelper.createElement(BuilderConstants.ELEMENT_TIZENPROJECT);
+ public static Document writeElement(AppFileData descriptor) {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
+
+ try {
+ builder = factory.newDocumentBuilder();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ Document doc = builder.newDocument();
+
+ Element root = doc.createElement(BuilderConstants.ELEMENT_TIZENPROJECT);
- Element projectInfo = DocumentHelper.createElement(BuilderConstants.ELEMENT_PROJECTINFO);
- root.add(projectInfo);
- writeProjectInfo(projectInfo, descriptor);
+ Element projectInfo = doc.createElement(BuilderConstants.ELEMENT_PROJECTINFO);
+ root.appendChild(projectInfo);
+ writeProjectInfo(doc, projectInfo, descriptor);
- Element pageSystem = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGESYSTEM);
- root.add(pageSystem);
+ Element pageSystem = doc.createElement(BuilderConstants.ELEMENT_PAGESYSTEM);
+ root.appendChild(pageSystem);
- Element frameworks = DocumentHelper.createElement(BuilderConstants.ELEMENT_FRAMEWORKS);
- pageSystem.add(frameworks);
- writeFrameworks(frameworks, descriptor);
+ Element frameworks = doc.createElement(BuilderConstants.ELEMENT_FRAMEWORKS);
+ pageSystem.appendChild(frameworks);
+ writeFrameworks(doc, frameworks, descriptor);
- Element libraries = DocumentHelper.createElement(BuilderConstants.ELEMENT_LIBRARIES);
- pageSystem.add(libraries);
- writeLibraries(libraries, descriptor);
+ Element libraries = doc.createElement(BuilderConstants.ELEMENT_LIBRARIES);
+ pageSystem.appendChild(libraries);
+ writeLibraries(doc, libraries, descriptor);
- Element pages = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGES);
- pageSystem.add(pages);
- writePages(pages, descriptor);
+ Element pages = doc.createElement(BuilderConstants.ELEMENT_PAGES);
+ pageSystem.appendChild(pages);
+ writePages(doc, pages, descriptor);
- Element entries = DocumentHelper.createElement(BuilderConstants.ELEMENT_ENTRIES);
- pageSystem.add(entries);
- writeEntries(entries, descriptor);
+ Element entries = doc.createElement(BuilderConstants.ELEMENT_ENTRIES);
+ pageSystem.appendChild(entries);
+ writeEntries(doc, entries, descriptor);
- Element stylesheets = DocumentHelper.createElement(BuilderConstants.ELEMENT_STYLESHEETS);
- pageSystem.add(stylesheets);
- writeStylesheets(stylesheets, descriptor);
+ Element stylesheets = doc.createElement(BuilderConstants.ELEMENT_STYLESHEETS);
+ pageSystem.appendChild(stylesheets);
+ writeStylesheets(doc, stylesheets, descriptor);
- return root;
+ doc.appendChild(root);
+
+ return doc;
}
- private static void writeProjectInfo(Element element, AppFileData descriptor) {
- Element title = DocumentHelper.createElement(BuilderConstants.ELEMENT_TITLE);
- title.addText(descriptor.getTitle());
- element.add(title);
+ private static void writeProjectInfo(Document doc, Element element, AppFileData descriptor) {
+ Element title = doc.createElement(BuilderConstants.ELEMENT_TITLE);
+ title.setTextContent(descriptor.getTitle());
+ element.appendChild(title);
- Element author = DocumentHelper.createElement(BuilderConstants.ELEMENT_AUTHOR);
- author.addText(descriptor.getAuthor());
- element.add(author);
+ Element author = doc.createElement(BuilderConstants.ELEMENT_AUTHOR);
+ author.setTextContent(descriptor.getAuthor());
+ element.appendChild(author);
- Element version = DocumentHelper.createElement(BuilderConstants.ELEMENT_VERSION);
- version.addText(descriptor.getVersion());
- element.add(version);
+ Element version = doc.createElement(BuilderConstants.ELEMENT_VERSION);
+ version.setTextContent(descriptor.getVersion());
+ element.appendChild(version);
}
- private static void writeFrameworks(Element element, AppFileData descriptor) {
- element.add(writeTheme(descriptor.getFrameworkVariable("theme")));
+ private static void writeFrameworks(Document doc, Element element, AppFileData descriptor) {
+ element.appendChild(writeTheme(doc, descriptor.getFrameworkVariable("theme")));
List<Library> frameworks = descriptor.getLibraries();
if (!framework.getType().equals("framework") && !framework.getType().equals("system")) {
continue;
}
- Element elm = writeFramework(framework, descriptor);
+ Element elm = writeFramework(doc, framework, descriptor);
if (elm != null) {
- element.add(elm);
+ element.appendChild(elm);
}
}
}
- private static void writeLibraries(Element element, AppFileData descriptor) {
+ private static void writeLibraries(Document doc, Element element, AppFileData descriptor) {
List<Library> libraries = descriptor.getLibraries();
int size = libraries.size();
if (!libraries.get(i).getType().equals("user")) {
continue;
}
- element.add(writeScript(libraries.get(i)));
+ element.appendChild(writeScript(doc, libraries.get(i)));
}
}
- private static void writePages(Element element, AppFileData descriptor) {
+ private static void writePages(Document doc, Element element, AppFileData descriptor) {
List<Page> pages = descriptor.getPages();
int size = pages.size();
for (int i = 0; i < size; i++) {
- element.add(writePage(pages.get(i), i == descriptor.getStartupPage()));
+ element.appendChild(writePage(doc, pages.get(i), i == descriptor.getStartupPage()));
}
}
- private static void writeEntries(Element element, AppFileData descriptor) {
+ private static void writeEntries(Document doc, Element element, AppFileData descriptor) {
List<Library> entries = descriptor.getLibraries();
int size = entries.size();
if (!entries.get(i).getType().equals("entry")) {
continue;
}
- element.add(writeEntry(entries.get(i)));
+ element.appendChild(writeEntry(doc, entries.get(i)));
}
}
- private static void writeStylesheets(Element element, AppFileData descriptor) {
+ private static void writeStylesheets(Document doc, Element element, AppFileData descriptor) {
List<Stylesheet> stylesheets = descriptor.getStylesheets();
int size = stylesheets.size();
if (!stylesheets.get(i).getType().equals("user")) {
continue;
}
- element.add(writeStylesheet(stylesheets.get(i)));
+ element.appendChild(writeStylesheet(doc, stylesheets.get(i)));
}
}
- private static Element writeTheme(String theme) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_FRAMEWORK_THEME);
+ private static Element writeTheme(Document doc, String theme) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_FRAMEWORK_THEME);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, theme);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, theme);
return element;
}
- private static Element writeFramework(Library framework, AppFileData descriptor) {
+ private static Element writeFramework(Document doc, Library framework, AppFileData descriptor) {
Framework data = null;
if (framework.getType().equals("framework")) {
data = descriptor.findFramework(framework.getParam());
}
}
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_SCRIPT);
+ Element element = doc.createElement(BuilderConstants.ELEMENT_SCRIPT);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
if (data != null) {
String path = new String(data.getPath());
path = path.replaceAll("%tizen-web-ui-fw-path%", "./tizen-web-ui-fw/latest");
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, path);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, path);
if (data.getParam2() != null && !data.getParam2().isEmpty()) {
- element.addAttribute(BuilderConstants.ATTRIBUTE_THEME,
+ element.setAttribute(BuilderConstants.ATTRIBUTE_THEME,
descriptor.getFrameworkVariable("theme"));
- element.addAttribute(BuilderConstants.ATTRIBUTE_SCALE,
+ element.setAttribute(BuilderConstants.ATTRIBUTE_SCALE,
descriptor.getFrameworkVariable("viewport-scale"));
}
} else {
String path = new String(framework.getParam());
path = path.replaceAll("%tizen-web-ui-fw-path%", "./tizen-web-ui-fw/latest");
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, path);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, path);
}
return element;
}
- private static Element writeEntry(Library framework) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_SCRIPT);
+ private static Element writeEntry(Document doc, Library framework) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_SCRIPT);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, framework.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, framework.getParam());
return element;
}
- private static Element writeScript(Library script) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_SCRIPT);
+ private static Element writeScript(Document doc, Library script) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_SCRIPT);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, "user");
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, script.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, "user");
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, script.getParam());
return element;
}
- private static Element writePage(Page page, boolean isStartup) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGE);
+ private static Element writePage(Document doc, Page page, boolean isStartup) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_PAGE);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, page.getName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_STARTUP, Boolean.toString(isStartup));
- element.addAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH, page.getPagePath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_JSPATH, page.getJsPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH, page.getManagedJsPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH, page.getHtmlPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, page.getName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_STARTUP, Boolean.toString(isStartup));
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH, page.getPagePath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_JSPATH, page.getJsPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH, page.getManagedJsPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH, page.getHtmlPath());
return element;
}
- private static Element writeStylesheet(Stylesheet stylesheet) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_STYLESHEET);
+ private static Element writeStylesheet(Document doc, Stylesheet stylesheet) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_STYLESHEET);
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, stylesheet.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, stylesheet.getParam());
return element;
}
import java.util.Map;
import java.util.Map.Entry;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.app.Framework;
import org.tizen.webuibuilder.model.app.Library;
import org.tizen.webuibuilder.model.io.TizenFileFormatter;
import org.tizen.webuibuilder.ui.views.databinding.model.BindingData;
import org.tizen.webuibuilder.ui.views.databinding.model.BindingObject;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
public class AppMetaWriter_ver_2 {
- public static Element writeElement(AppFileData descriptor) {
+ public static Document writeElement(AppFileData descriptor) {
TizenFileFormatter fmt =
new TizenFileFormatter("tizen-project", "2", "Tizen Web UI Builder Project");
- Element root = fmt.GenerateFileFormat();
+ Document doc = fmt.GenerateFileFormat();
- Element pageSystem = DocumentHelper.createElement(BuilderConstants.ELEMENT_TIZENPROJECT);
- root.add(pageSystem);
+ Element pageSystem = doc.createElement(BuilderConstants.ELEMENT_TIZENPROJECT);
+ doc.appendChild(pageSystem);
- Element libraries = DocumentHelper.createElement(BuilderConstants.ELEMENT_LIBRARIES);
- pageSystem.add(libraries);
- writeLibraries(libraries, descriptor);
+ Element libraries = doc.createElement(BuilderConstants.ELEMENT_LIBRARIES);
+ pageSystem.appendChild(libraries);
+ writeLibraries(doc, libraries, descriptor);
- Element frameworks = DocumentHelper.createElement(BuilderConstants.ELEMENT_FRAMEWORKS);
- pageSystem.add(frameworks);
- writeFrameworks(frameworks, descriptor);
+ Element frameworks = doc.createElement(BuilderConstants.ELEMENT_FRAMEWORKS);
+ pageSystem.appendChild(frameworks);
+ writeFrameworks(doc, frameworks, descriptor);
- Element pages = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGES);
- pageSystem.add(pages);
- writePages(pages, descriptor);
+ Element pages = doc.createElement(BuilderConstants.ELEMENT_PAGES);
+ pageSystem.appendChild(pages);
+ writePages(doc, pages, descriptor);
- Element dataModels = DocumentHelper.createElement(BuilderConstants.ELEMENT_DATABINDING);
- pageSystem.add(dataModels);
- writeDataModels(dataModels, descriptor);
+ Element dataModels = doc.createElement(BuilderConstants.ELEMENT_DATABINDING);
+ pageSystem.appendChild(dataModels);
+ writeDataModels(doc, dataModels, descriptor);
- Element stylesheets = DocumentHelper.createElement(BuilderConstants.ELEMENT_STYLESHEETS);
- pageSystem.add(stylesheets);
- writeStylesheets(stylesheets, descriptor);
+ Element stylesheets = doc.createElement(BuilderConstants.ELEMENT_STYLESHEETS);
+ pageSystem.appendChild(stylesheets);
+ writeStylesheets(doc, stylesheets, descriptor);
- return root;
+ return doc;
}
- private static void writeFrameworks(Element element, AppFileData descriptor) {
- element.add(writeFrameworkVariables(element, descriptor));
+ private static void writeFrameworks(Document doc, Element element, AppFileData descriptor) {
+ element.appendChild(writeFrameworkVariables(doc, element, descriptor));
List<Framework> frameworks = descriptor.getFrameworks();
int size = frameworks.size();
for (int i = 0; i < size; i++) {
- element.add(writeFramework(frameworks.get(i)));
+ element.appendChild(writeFramework(doc, frameworks.get(i)));
}
}
- private static Element writeFrameworkVariables(Element element, AppFileData descriptor) {
- Element element2 = DocumentHelper.createElement(BuilderConstants.ELEMENT_VARIABLES);
+ private static Element writeFrameworkVariables(Document doc, Element element, AppFileData descriptor) {
+ Element element2 = doc.createElement(BuilderConstants.ELEMENT_VARIABLES);
Map<String, String> variables = descriptor.getFrameworkVariables();
for (Entry<String, String> variable : variables.entrySet()) {
- element2.add(writeFrameworkVariable(variable));
+ element2.appendChild(writeFrameworkVariable(doc, variable));
}
return element2;
}
- private static void writeLibraries(Element element, AppFileData descriptor) {
+ private static void writeLibraries(Document doc, Element element, AppFileData descriptor) {
List<Library> libraries = descriptor.getLibraries();
int size = libraries.size();
for (int i = 0; i < size; i++) {
- element.add(writeLibrary(libraries.get(i)));
+ element.appendChild(writeLibrary(doc, libraries.get(i)));
}
}
- private static void writePages(Element element, AppFileData descriptor) {
+ private static void writePages(Document doc, Element element, AppFileData descriptor) {
List<Page> pages = descriptor.getPages();
int size = pages.size();
for (int i = 0; i < size; i++) {
- element.add(writePage(pages.get(i), i == descriptor.getStartupPage()));
+ element.appendChild(writePage(doc, pages.get(i), i == descriptor.getStartupPage()));
}
}
- private static void writeDataModels(Element element, AppFileData descriptor) {
+ private static void writeDataModels(Document doc, Element element, AppFileData descriptor) {
List<BindingData> dataSources = descriptor.getDataSources();
for (BindingData dataSource : dataSources) {
- element.add(writeDataSourceInfo(dataSource));
+ element.appendChild(writeDataSourceInfo(doc, dataSource));
}
List<BindingData> viewModels = descriptor.getViewModels();
for (BindingData viewModel : viewModels) {
- element.add(writeViewModelInfo(viewModel));
+ element.appendChild(writeViewModelInfo(doc, viewModel));
}
- writeHandlerInfoFromViewModels(element, viewModels);
+ writeHandlerInfoFromViewModels(doc, element, viewModels);
for (BindingData dataSource : dataSources) {
if (dataSource.getUpdateOnStartup()) {
- element.add(writeUpdateOnStartUp(dataSource));
+ element.appendChild(writeUpdateOnStartUp(doc, dataSource));
}
}
}
- private static void writeHandlerInfoFromViewModels(Element element, List<BindingData> dataModels) {
+ private static void writeHandlerInfoFromViewModels(Document doc, Element element, List<BindingData> dataModels) {
List<String> handlerModelInfo = new ArrayList<String>();
List<String> handlerSourceInfo = new ArrayList<String>();
if ((handlerSourceInfo.get(i) != null) && (handlerSourceInfo.get(i).equals(""))) {
continue;
}
- Element subElement = DocumentHelper.createElement(BuilderConstants.ELEMENT_HANDLERINFO);
- subElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME, handlerSourceInfo.get(i));
+ Element subElement = doc.createElement(BuilderConstants.ELEMENT_HANDLERINFO);
+ subElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME, handlerSourceInfo.get(i));
Element subSubElement =
- DocumentHelper.createElement(BuilderConstants.ELEMENT_MODELINFO);
- subSubElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME, handlerModelInfo.get(i));
- subElement.add(subSubElement);
+ doc.createElement(BuilderConstants.ELEMENT_MODELINFO);
+ subSubElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME, handlerModelInfo.get(i));
+ subElement.appendChild(subSubElement);
for (int j = i + 1; j < handlerSourceInfo.size(); j++) {
if ((handlerSourceInfo.get(i) != null) && (handlerSourceInfo.get(j) != null)
&& (handlerSourceInfo.get(i).equals(handlerSourceInfo.get(j)))) {
Element testElement =
- DocumentHelper.createElement(BuilderConstants.ELEMENT_MODELINFO);
- testElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME,
+ doc.createElement(BuilderConstants.ELEMENT_MODELINFO);
+ testElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME,
handlerModelInfo.get(j));
- subElement.add(testElement);
+ subElement.appendChild(testElement);
handlerSourceInfo.set(j, "");
}
}
- element.add(subElement);
+ element.appendChild(subElement);
}
}
- private static Element writeUpdateOnStartUp(BindingData dataModel) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_UPDATEONSTARTUP);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getSourceName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_ISCHECKED, dataModel.getUpdateOnStartup()
+ private static Element writeUpdateOnStartUp(Document doc, BindingData dataModel) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_UPDATEONSTARTUP);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getSourceName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_ISCHECKED, dataModel.getUpdateOnStartup()
.toString());
return element;
}
- private static Element writeDataSourceInfo(BindingData dataModel) {
+ private static Element writeDataSourceInfo(Document doc, BindingData dataModel) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_DATASOURCE);
+ Element element = doc.createElement(BuilderConstants.ELEMENT_DATASOURCE);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getSourceName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_MODELTYPE, dataModel.getModelType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getSourceName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_MODELTYPE, dataModel.getModelType());
if ((dataModel.getModelType() != null) && (dataModel.getModelType().equals("REMOTECALL"))) {
- element.addAttribute(BuilderConstants.ATTRIBUTE_URL, dataModel.getURL());
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, dataModel.getMethod());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PROXY, dataModel.getProxy());
- element.addAttribute(BuilderConstants.ATTRIBUTE_QUERY, dataModel.getQuery());
- element.addAttribute(BuilderConstants.ATTRIBUTE_SOURCETYPE, dataModel.getSourceType());
- element.addAttribute(BuilderConstants.ATTRIBUTE_TIMEOUT, dataModel.getTimeout());
- element.addAttribute(BuilderConstants.ATTRIBUTE_JSONDATA, dataModel.getJsonData());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_URL, dataModel.getURL());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, dataModel.getMethod());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PROXY, dataModel.getProxy());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_QUERY, dataModel.getQuery());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_SOURCETYPE, dataModel.getSourceType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TIMEOUT, dataModel.getTimeout());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_JSONDATA, dataModel.getJsonData());
} else if ((dataModel.getModelType() != null)
&& (dataModel.getModelType().equals("STATIC"))) {
List<BindingObject> observableObjects = dataModel.getDataSourceObjects();
int size = observableObjects.size();
for (int i = 0; i < size; i++) {
- element.add(writeObservableObjects(observableObjects.get(i)));
+ element.appendChild(writeObservableObjects(doc, observableObjects.get(i)));
}
String jsonData = dataModel.getJsonData();
if ((jsonData == null) || (jsonData.equals(""))) {
jsonData = "{}";
}
- element.addAttribute(BuilderConstants.ATTRIBUTE_JSONDATA, jsonData);
- element.addAttribute(BuilderConstants.ATTRIBUTE_FILEPATH, dataModel.getStaticFilePath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_JSONDATA, jsonData);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_FILEPATH, dataModel.getStaticFilePath());
} else if ((dataModel.getModelType() != null)
&& (dataModel.getModelType().equals("RUNTIMEAPI"))) {
- element.addAttribute(BuilderConstants.ATTRIBUTE_API, dataModel.getRuntimeApiName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_API, dataModel.getRuntimeApiName());
}
return element;
}
- private static Element writeViewModelInfo(BindingData dataModel) {
+ private static Element writeViewModelInfo(Document doc, BindingData dataModel) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_VIEWMODEL);
+ Element element = doc.createElement(BuilderConstants.ELEMENT_VIEWMODEL);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_DATASOURCE, dataModel.getSourceName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_DATASOURCE, dataModel.getSourceName());
List<BindingObject> observableObjects = dataModel.getViewModelObjects();
int size = observableObjects.size();
for (int i = 0; i < size; i++) {
- element.add(writeObservableObjects(observableObjects.get(i)));
+ element.appendChild(writeObservableObjects(doc, observableObjects.get(i)));
}
return element;
}
- private static Element writeObservableObjects(BindingObject observableObject) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_OBSERVABLEOBJECT);
- // Element element = DocumentHelper.createElement("dataSourceTreeNode");
+ private static Element writeObservableObjects(Document doc, BindingObject observableObject) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_OBSERVABLEOBJECT);
+ // Element element = doc.createElement("dataSourceTreeNode");
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, observableObject.getName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, observableObject.getName());
if (observableObject.getMarked() != null) {
- element.addAttribute(BuilderConstants.ATTRIBUTE_ISMARKED, observableObject.getMarked()
+ element.setAttribute(BuilderConstants.ATTRIBUTE_ISMARKED, observableObject.getMarked()
.toString());
}
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, observableObject.getType());
- element.addAttribute(BuilderConstants.ATTRIBUTE_VALUE, observableObject.getValue());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, observableObject.getType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_VALUE, observableObject.getValue());
List<BindingObject> observableObjects = observableObject.getItems();
int size = observableObjects.size();
for (int i = 0; i < size; i++) {
- element.add(writeObservableObjects(observableObjects.get(i)));
+ element.appendChild(writeObservableObjects(doc, observableObjects.get(i)));
}
return element;
}
- private static void writeStylesheets(Element element, AppFileData descriptor) {
+ private static void writeStylesheets(Document doc, Element element, AppFileData descriptor) {
List<Stylesheet> stylesheets = descriptor.getStylesheets();
int size = stylesheets.size();
for (int i = 0; i < size; i++) {
- element.add(writeStylesheet(stylesheets.get(i)));
+ element.appendChild(writeStylesheet(doc, stylesheets.get(i)));
}
}
- private static Element writeLibrary(Library library) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_LIBRARY);
+ private static Element writeLibrary(Document doc, Library library) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_LIBRARY);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, library.getType());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PARAM, library.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, library.getType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PARAM, library.getParam());
return element;
}
- private static Element writeFramework(Framework framework) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_FRAMEWORK);
+ private static Element writeFramework(Document doc, Framework framework) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_FRAMEWORK);
- element.addAttribute(BuilderConstants.ATTRIBUTE_PARAM, framework.getParam());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, framework.getPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PARAM2, framework.getParam2());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PARAM, framework.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, framework.getPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PARAM2, framework.getParam2());
return element;
}
- private static Element writeFrameworkVariable(Entry<String, String> variable) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_VARIABLE);
+ private static Element writeFrameworkVariable(Document doc, Entry<String, String> variable) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_VARIABLE);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, variable.getKey());
- element.addAttribute(BuilderConstants.ATTRIBUTE_VALUE, variable.getValue());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, variable.getKey());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_VALUE, variable.getValue());
return element;
}
- private static Element writePage(Page page, boolean isStartup) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGE);
+ private static Element writePage(Document doc, Page page, boolean isStartup) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_PAGE);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, page.getName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_STARTUP, Boolean.toString(isStartup));
- element.addAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH, page.getPagePath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_JSPATH, page.getJsPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH, page.getManagedJsPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH, page.getHtmlPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_CSSPATH, page.getCssPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_MANAGED_CSSPATH, page.getManagedCssPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, page.getName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_STARTUP, Boolean.toString(isStartup));
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH, page.getPagePath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_JSPATH, page.getJsPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH, page.getManagedJsPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH, page.getHtmlPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_CSSPATH, page.getCssPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_MANAGED_CSSPATH, page.getManagedCssPath());
return element;
}
- private static Element writeStylesheet(Stylesheet stylesheet) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_STYLESHEET);
+ private static Element writeStylesheet(Document doc, Stylesheet stylesheet) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_STYLESHEET);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, stylesheet.getType());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PARAM, stylesheet.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, stylesheet.getType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PARAM, stylesheet.getParam());
return element;
}
*
*/
-
package org.tizen.webuibuilder.model.app.io;
import java.io.File;
+import java.io.IOException;
import java.net.MalformedURLException;
+import java.net.URISyntaxException;
import java.net.URL;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.io.SAXReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
import org.tizen.webuibuilder.model.PartFactory;
import org.tizen.webuibuilder.model.app.AppManager;
import org.tizen.webuibuilder.model.filedata.HtmlMetaFileData;
-
public class HtmlMetaReader {
- public static HtmlMetaFileData read(AppManager appManager, String filePath,
- PartFactory partFactory) {
- HtmlMetaFileData fileData = null;
-
- try {
- fileData = read(appManager, new File(filePath).toURI().toURL(), partFactory);
- } catch (MalformedURLException e) {
- e.printStackTrace();
- }
-
- return fileData;
- }
-
- public static HtmlMetaFileData read(AppManager appManager, URL url, PartFactory partFactory) {
- SAXReader reader = new SAXReader();
- Document doc = null;
-
- try {
- doc = reader.read(url);
- } catch (DocumentException e) {
- if (doc == null) {
- return null;
- }
- }
-
- HtmlMetaFileData fileData = parsePage(appManager, doc, partFactory);
- if (fileData == null) {
- return null;
- }
-
- // if (fileData.getRootPart(0) instanceof DocumentPart) {
- return fileData;
- // } else {
- // TODO log error
- // return null;
- // }
- }
-
- public static HtmlMetaFileData parsePage(AppManager appManager, Document doc,
- PartFactory partFactory) {
- HtmlMetaFileData fileData = HtmlMetaReader_ver_1.parsePage(appManager, doc, partFactory);
-
- return fileData;
- }
+ public static HtmlMetaFileData read(AppManager appManager, String filePath,
+ PartFactory partFactory) {
+ HtmlMetaFileData fileData = null;
+
+ File file = new File(filePath);
+
+ if (!file.exists()) {
+ return null;
+ }
+
+ try {
+ fileData = read(appManager, file.toURI().toURL(), partFactory);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+
+ return fileData;
+ }
+
+ public static HtmlMetaFileData read(AppManager appManager, URL url,
+ PartFactory partFactory) {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
+ Document doc = null;
+
+ try {
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(url.toURI().toString());
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ } catch (URISyntaxException e) {
+ e.printStackTrace();
+ }
+
+ HtmlMetaFileData fileData = parsePage(appManager, doc, partFactory);
+ if (fileData == null) {
+ return null;
+ }
+
+ return fileData;
+ }
+
+ public static HtmlMetaFileData parsePage(AppManager appManager,
+ Document doc, PartFactory partFactory) {
+ HtmlMetaFileData fileData = HtmlMetaReader_ver_1.parsePage(appManager,
+ doc, partFactory);
+
+ return fileData;
+ }
}
\ No newline at end of file
import java.util.Iterator;
import java.util.List;
-import org.dom4j.Attribute;
-import org.dom4j.Document;
-import org.dom4j.Element;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.DocumentPart;
import org.tizen.webuibuilder.model.PagePart;
return null;
}
- Element root = doc.getRootElement();
+ Element root = doc.getDocumentElement();
FileReader fileReader = new FileReader(root);
if (!fileReader.isValidate()) {
HtmlMetaFileData fileData = new HtmlMetaFileData();
- for (Object childObj : root.elements("document")) {
- parsePart(fileData, (Element) childObj, partFactory);
+ NodeList elementList = root.getElementsByTagName("document");
+ for (int i = 0; i < elementList.getLength(); i++) {
+ parsePart(fileData, (Element) elementList.item(i), partFactory);
}
return fileData;
}
private static void parsePart(HtmlMetaFileData fileData, Element elem, PartFactory partFactory) {
- for (Object childObj : elem.elements("documentInfo")) {
- parsePageInfo(fileData, (Element) childObj);
+ NodeList elementList = elem.getElementsByTagName("documentInfo");
+ for (int i = 0; i < elementList.getLength(); i++) {
+ parsePageInfo(fileData, (Element) elementList.item(i));
}
- for (Object childObj : elem.elements("documentData")) {
- parsePageData(fileData, (Element) childObj, partFactory);
+ elementList = elem.getElementsByTagName("documentData");
+ for (int i = 0; i < elementList.getLength(); i++) {
+ parsePageData(fileData, (Element) elementList.item(i), partFactory);
}
}
private static void parsePageInfo(HtmlMetaFileData fileData, Element elem) {
- for (Object childObj : elem.elements("documentInfo")) {
- parsePageInfo(fileData, (Element) childObj);
+ NodeList elementList = elem.getElementsByTagName("documentInfo");
+ for (int i = 0; i < elementList.getLength(); i++) {
+ parsePageInfo(fileData, (Element) elementList.item(i));
}
}
private static void parsePageData(HtmlMetaFileData fileData, Element elem,
PartFactory partFactory) {
- for (Iterator<Element> i_nscreen = elem.elementIterator("tizen.nscreen"); i_nscreen
- .hasNext();) {
- Element nscreen = i_nscreen.next();
- for (Iterator<Element> i_screen = nscreen.elementIterator("screen"); i_screen.hasNext();) {
- Element screen = i_screen.next();
+ NodeList elementList = elem.getElementsByTagName("tizen.nscreen");
+ for (int i = 0; i < elementList.getLength(); i++) {
+ Element nscreen = (Element) elementList.item(i);
+ NodeList elementList2 = nscreen.getElementsByTagName("screen");
+ for (int j = 0; j < elementList.getLength(); j++) {
+ Element screen = (Element) elementList.item(j);
NScreenModel model = new NScreenModel();
- model.setTitle(screen.attributeValue("title"));
- model.setWidth(Integer.parseInt(screen.attributeValue("width")));
- model.setHeight(Integer.parseInt(screen.attributeValue("height")));
- model.setFileName(screen.attributeValue("cssFileName"));
+ model.setTitle(screen.getAttribute("title"));
+ model.setWidth(Integer.parseInt(screen.getAttribute("width")));
+ model.setHeight(Integer.parseInt(screen.getAttribute("height")));
+ model.setFileName(screen.getAttribute("cssFileName"));
fileData.getNscreenModelList().add(model);
}
}
- for (Object childObj : elem.elements("pageData")) {
- parsePagePart(fileData, (Element) childObj, partFactory);
+ elementList = elem.getElementsByTagName("pageData");
+ for (int i = 0; i < elementList.getLength(); i++) {
+ parsePagePart(fileData, (Element) elementList.item(i), partFactory);
}
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_DATABINDING)) {
- parseDataBinding(fileData, (Element) childObj);
+ elementList = elem.getElementsByTagName(BuilderConstants.ELEMENT_DATABINDING);
+ for (int i = 0; i < elementList.getLength(); i++) {
+ parseDataBinding(fileData, (Element) elementList.item(i));
}
}
}
private static void parseUpdateStartUp(HtmlMetaFileData fileData, Element element) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_UPDATEONSTARTUP)) {
- Element element2 = (Element) childObj;
+ NodeList elementList = element.getElementsByTagName(BuilderConstants.ELEMENT_UPDATEONSTARTUP);
+ for (int i = 0; i < elementList.getLength(); i++) {
+ Element element2 = (Element) elementList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String updateStartUp = element2.attributeValue(BuilderConstants.ATTRIBUTE_ISCHECKED);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String updateStartUp = element2.getAttribute(BuilderConstants.ATTRIBUTE_ISCHECKED);
boolean isChecked = false;
if (updateStartUp.equals("true")) {
}
private static void parseHandlerInfo(HtmlMetaFileData fileData, Element element) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_HANDLERINFO)) {
- Element element2 = (Element) childObj;
+ NodeList elementList = element.getElementsByTagName(BuilderConstants.ELEMENT_HANDLERINFO);
+ for (int i = 0; i < elementList.getLength(); i++) {
+ Element element2 = (Element)elementList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
BindingData dataModel = new BindingData(name);
List<String> modelInfo = new ArrayList<String>();
- for (Object subChildObj : element.elements(BuilderConstants.ELEMENT_HANDLERINFO)) {
- Element element3 = (Element) subChildObj;
- String childName = element3.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
+ NodeList elementList2 = element.getElementsByTagName(BuilderConstants.ELEMENT_HANDLERINFO);
+ for (int j = 0; j < elementList2.getLength(); j++) {
+ Element element3 = (Element)elementList2.item(j);
+ String childName = element3.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
modelInfo.add(childName);
}
dataModel.addHandlerInfos(name, modelInfo);
}
private static void parseDataSource(HtmlMetaFileData fileData, Element element) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_DATASOURCE)) {
- Element element2 = (Element) childObj;
+ NodeList elementList = element.getElementsByTagName(BuilderConstants.ELEMENT_DATASOURCE);
+ for (int i = 0; i < elementList.getLength(); i++) {
+ Element element2 = (Element)elementList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String modelType = element2.attributeValue(BuilderConstants.ATTRIBUTE_MODELTYPE);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String modelType = element2.getAttribute(BuilderConstants.ATTRIBUTE_MODELTYPE);
if ((modelType != null) && (modelType.equals("REMOTECALL"))) {
- String url = element2.attributeValue(BuilderConstants.ATTRIBUTE_URL);
- String type = element2.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String proxy = element2.attributeValue(BuilderConstants.ATTRIBUTE_PROXY);
- String query = element2.attributeValue(BuilderConstants.ATTRIBUTE_QUERY);
- String sourceType = element2.attributeValue(BuilderConstants.ATTRIBUTE_SOURCETYPE);
- String timeout = element2.attributeValue(BuilderConstants.ATTRIBUTE_TIMEOUT);
- String jsonData = element2.attributeValue(BuilderConstants.ATTRIBUTE_JSONDATA);
+ String url = element2.getAttribute(BuilderConstants.ATTRIBUTE_URL);
+ String type = element2.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String proxy = element2.getAttribute(BuilderConstants.ATTRIBUTE_PROXY);
+ String query = element2.getAttribute(BuilderConstants.ATTRIBUTE_QUERY);
+ String sourceType = element2.getAttribute(BuilderConstants.ATTRIBUTE_SOURCETYPE);
+ String timeout = element2.getAttribute(BuilderConstants.ATTRIBUTE_TIMEOUT);
+ String jsonData = element2.getAttribute(BuilderConstants.ATTRIBUTE_JSONDATA);
BindingData dataModel =
new BindingData(name, modelType, url, type, proxy, query, sourceType,
fileData.addDataSource(dataModel);
} else if ((modelType != null) && (modelType.equals("STATIC"))) {
- String jsonData = element2.attributeValue(BuilderConstants.ATTRIBUTE_JSONDATA);
- String filePath = element2.attributeValue(BuilderConstants.ATTRIBUTE_FILEPATH);
+ String jsonData = element2.getAttribute(BuilderConstants.ATTRIBUTE_JSONDATA);
+ String filePath = element2.getAttribute(BuilderConstants.ATTRIBUTE_FILEPATH);
BindingData dataModel = new BindingData(name, modelType, jsonData, filePath);
fileData.addDataSource(dataModel);
} else if ((modelType != null) && (modelType.equals("RUNTIMEAPI"))) {
- String api = element2.attributeValue(BuilderConstants.ATTRIBUTE_API);
+ String api = element2.getAttribute(BuilderConstants.ATTRIBUTE_API);
BindingData dataModel = new BindingData(name, modelType, api);
fileData.addDataSource(dataModel);
}
private static void parseViewModel(HtmlMetaFileData fileData, Element element) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_VIEWMODEL)) {
- Element element2 = (Element) childObj;
+ NodeList elementList = element.getElementsByTagName(BuilderConstants.ELEMENT_VIEWMODEL);
+ for (int i = 0; i < elementList.getLength(); i++) {
+ Element element2 = (Element) elementList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String dataSourceName = element2.attributeValue(BuilderConstants.ATTRIBUTE_DATASOURCE);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String dataSourceName = element2.getAttribute(BuilderConstants.ATTRIBUTE_DATASOURCE);
BindingData dataModel = new BindingData(name, dataSourceName);
parseObservableObject(element2, dataModel, null);
private static void parseObservableObject(Element element, BindingData dataModel,
BindingObject parentObject) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_OBSERVABLEOBJECT)) {
- Element element2 = (Element) childObj;
-
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String type = element2.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String value = element2.attributeValue(BuilderConstants.ATTRIBUTE_VALUE);
- String isMarked = element2.attributeValue(BuilderConstants.ATTRIBUTE_ISMARKED);
+ NodeList elementList = element.getElementsByTagName(BuilderConstants.ELEMENT_OBSERVABLEOBJECT);
+ for (int i = 0; i < elementList.getLength(); i++) {
+ Element element2 = (Element) elementList.item(i);
+
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String type = element2.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String value = element2.getAttribute(BuilderConstants.ATTRIBUTE_VALUE);
+ String isMarked = element2.getAttribute(BuilderConstants.ATTRIBUTE_ISMARKED);
boolean boolMarked = Boolean.valueOf(isMarked).booleanValue();
BindingObject dataSource = new BindingObject(name, type, value, boolMarked);
PartFactory partFactory) {
List<CssSelector> selectors = null;
- for (Object childObj : elem.elements("tizen.css")) {
- Element elem2 = (Element) childObj;
+ NodeList elementList = elem.getElementsByTagName("tizen.css");
+ for (int i = 0; i < elementList.getLength(); i++) {
+ Element elem2 = (Element) elementList.item(i);
selectors = parseStyle(elem2);
}
- for (Object childObj : elem.elements("tizen.doc")) {
- Element elem2 = (Element) childObj;
+ elementList = elem.getElementsByTagName("tizen.doc");
+ for (int i = 0; i < elementList.getLength(); i++) {
+ Element elem2 = (Element) elementList.item(i);
Part part = parseElement(fileData, elem2, partFactory, selectors);
if (part instanceof DocumentPart) {
fileData.addRootPart("", part);
List<CssSelector> selectors = new ArrayList<CssSelector>();
// Sets selectors.
- for (Object childObj : elem.elements("tizen.selector")) {
- Element element = (Element) childObj;
-
- String selectorName = element.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String partId = element.attributeValue(BuilderConstants.ATTRIBUTE_PARTID);
+ NodeList elementList = elem.getElementsByTagName("tizen.selector");
+ for (int i = 0; i < elementList.getLength(); i++) {
+ Element element = (Element) elementList.item(i);
+
+ String selectorName = element.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String partId = element.getAttribute(BuilderConstants.ATTRIBUTE_PARTID);
CssSelector selector = new CssSelector(selectorName, "", partId);
selectors.add(selector);
// Sets styles.
- for (Object childObj2 : element.elements("tizen.style")) {
- Element element2 = (Element) childObj2;
+ elementList = elem.getElementsByTagName("tizen.style");
+ for (int j = 0; j < elementList.getLength(); j++) {
+ Element element2 = (Element) elementList.item(j);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String value = element2.attributeValue(BuilderConstants.ATTRIBUTE_VALUE);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String value = element2.getAttribute(BuilderConstants.ATTRIBUTE_VALUE);
selector.setPropertyValue(name, value);
}
private static Part parseElement(HtmlMetaFileData fileData, Element elem,
PartFactory partFactory, List<CssSelector> selectors) {
- Part part = partFactory.createPart(elem.getName());
+ Part part = partFactory.createPart(elem.getNodeName());
if (part == null) {
} else {
if (part instanceof PagePart) {
- fileData.setName(0, elem.attribute(BuilderConstants.PROPERTY_ID).getValue());
+ fileData.setName(0, elem.getAttribute(BuilderConstants.PROPERTY_ID));
}
// Sets events and properties.
- Attribute attr = null;
- for (Object attrObj : elem.attributes()) {
- attr = (Attribute) attrObj;
+ NamedNodeMap attrList = elem.getAttributes();
+ for (int i = 0; i < attrList.getLength(); i++) {
+ Attr attr = (Attr) attrList.item(i);
// if (BuilderConstants.ATTRIBUTE_EVENT_PREFIX.equals((attr
// .getName()).substring(0,
// BuilderConstants.ATTRIBUTE_EVENT_PREFIX.length()))) {
}
if (part instanceof WidgetPart) {
- String text = elem.getText();
+ String text = elem.getTextContent();
if (!text.isEmpty()) {
((WidgetPart) part).setHtmlString(text);
// Adds children.
Element child = null;
Part childpart = null;
- for (Object childObj : elem.elements()) {
- child = (Element) childObj;
- if (child.getName().equals("event")) {
- Attribute eventAttr = null;
- for (Object attrObj : child.attributes()) {
- eventAttr = (Attribute) attrObj;
+ for (int i = 0; i < elem.getChildNodes().getLength(); i++) {
+ child = (Element) elem.getChildNodes().item(i);
+ if (child.getNodeName().equals("event")) {
+ attrList = child.getAttributes();
+ for (int j = 0; j < attrList.getLength(); j++) {
+ Attr eventAttr = (Attr) attrList.item(j);
part.setEventValue(eventAttr.getName(), eventAttr.getValue());
}
- } else if (child.getName().equals("gotoPage")) {
- Attribute eventAttr = null;
+ } else if (child.getNodeName().equals("gotoPage")) {
List<String> strList = new ArrayList<String>();
- for (Object attrObj : child.attributes()) {
- eventAttr = (Attribute) attrObj;
+ attrList = child.getAttributes();
+ for (int j = 0; j < attrList.getLength(); j++) {
+ Attr eventAttr = (Attr) attrList.item(j);
strList.add(eventAttr.getValue());
}
part.setGotoPageEventValue(strList.get(0), strList.get(1), strList.get(2));
return part;
}
-
- // private static boolean parseNScreen(HtmlMetaFileData fileData, Element
- // elem) {
- // int index = fileData.getPageCount() - 1;
- // if(index < 0){
- // return false;
- // }
- //
- // for(Iterator<Element> i_screen = elem.elementIterator("screen");
- // i_screen.hasNext(); ) {
- // Element screen = i_screen.next();
- // NScreenModel model = new NScreenModel();
- // for(Iterator<Element> i_child = screen.elementIterator();
- // i_child.hasNext(); ) {
- // Element child = i_child.next();
- // String tagName = child.getName();
- // if( "title".equals(tagName) ) {
- // model.setTitle(child.getText());
- // } else if( "width".equals(tagName) ) {
- // model.setWidth(Integer.parseInt(child.getText()));
- // } else if( "height".equals(tagName) ) {
- // model.setHeight(Integer.parseInt(child.getText()));
- // } else if( "cssFileName".equals(tagName) ) {
- // model.setFileName(child.getText());
- // }
- // }
- // fileData.addNScreenModel(index, model);
- // }
- //
- // return true;
- // }
+
}
import java.io.StringWriter;
import java.io.Writer;
-import org.dom4j.Document;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.XMLWriter;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import org.tizen.webuibuilder.model.app.AppManager;
+import org.tizen.webuibuilder.model.filedata.AppFileData;
public class HtmlMetaWriter {
private static final int INDENT_SIZE = 4;
public static void writeTo(AppManager appManager, Writer writer) throws IOException {
- Element elem = writeElement(appManager);
-
- Document doc = DocumentHelper.createDocument();
- doc.add(elem);
-
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setIndentSize(INDENT_SIZE);
-
- XMLWriter xmlwriter = new XMLWriter(writer, format);
- xmlwriter.write(doc);
- xmlwriter.close();
+ Document doc = writeElement(appManager);
+
+ DOMSource source = new DOMSource(doc);
+ StreamResult result = new StreamResult(writer);
+
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer;
+ try {
+ transformer = factory.newTransformer();
+ transformer.transform(source, result);
+ } catch (TransformerConfigurationException e) {
+ e.printStackTrace();
+ } catch (TransformerException e) {
+ e.printStackTrace();
+ }
}
-
+
public static String writeToString(AppManager appManager) {
StringWriter writer = new StringWriter();
try {
writeTo(appManager, new FileWriter(filePath));
}
- public static Element writeElement(AppManager appManager) {
+ public static Document writeElement(AppManager appManager) {
return HtmlMetaWriter_ver_1.writeElement(appManager);
}
import java.util.List;
import java.util.Map.Entry;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.GotoPageProperty;
import org.tizen.webuibuilder.model.Part;
public class HtmlMetaWriter_ver_1 {
- public static Element writeElement(AppManager appManager) {
+ public static Document writeElement(AppManager appManager) {
TizenFileFormatter fmt =
new TizenFileFormatter("tizen-app", "1", "Tizen Web UI Builder Project");
- Element root = fmt.GenerateFileFormat();
+ Document doc = fmt.GenerateFileFormat();
- Element elem0 = DocumentHelper.createElement("document");
- root.add(elem0);
+ Element elem0 = doc.createElement("document");
+ doc.appendChild(elem0);
- Element pageInfoelem = DocumentHelper.createElement("documentInfo");
+ Element pageInfoelem = doc.createElement("documentInfo");
Element elem;
- elem = DocumentHelper.createElement("title");
- elem.addText("test");
- pageInfoelem.add(elem);
- elem = DocumentHelper.createElement("author");
- elem.addText("noname");
- pageInfoelem.add(elem);
- elem = DocumentHelper.createElement("version");
- elem.addText("0.1.1");
- pageInfoelem.add(elem);
- elem0.add(pageInfoelem);
-
- Element docDataElem = DocumentHelper.createElement("documentData");
-
- Element nscreenElement = DocumentHelper.createElement("tizen.nscreen");
- docDataElem.add(writeNScreen(nscreenElement, appManager.getPageData(0).getCssFiles()));
+ elem = doc.createElement("title");
+ elem.setTextContent("test");
+ pageInfoelem.appendChild(elem);
+ elem = doc.createElement("author");
+ elem.setTextContent("noname");
+ pageInfoelem.appendChild(elem);
+ elem = doc.createElement("version");
+ elem.setTextContent("0.1.1");
+ pageInfoelem.appendChild(elem);
+ elem0.appendChild(pageInfoelem);
+
+ Element docDataElem = doc.createElement("documentData");
+
+ Element nscreenElement = doc.createElement("tizen.nscreen");
+ docDataElem.appendChild(writeNScreen(doc, nscreenElement, appManager.getPageData(0).getCssFiles()));
for (int i = 0; i < appManager.getNumberOfPages(); i++) {
PageData pageData = appManager.getPageData(i);
- Element pageDataElem = DocumentHelper.createElement("pageData");
- pageDataElem.setAttributeValue("id", pageData.getName());
+ Element pageDataElem = doc.createElement("pageData");
+ pageDataElem.setAttribute("id", pageData.getName());
- // Element cssElement = DocumentHelper.createElement("tizen.css");
+ // Element cssElement = doc.createElement("tizen.css");
// pageDataElem.add(writeCss(cssElement, pageData.getRootPart()));
- pageDataElem.add(writePart(pageData.getRootPart(), false));
+ pageDataElem.appendChild(writePart(doc, pageData.getRootPart(), false));
- docDataElem.add(pageDataElem);
+ docDataElem.appendChild(pageDataElem);
}
- Element dataModels = DocumentHelper.createElement(BuilderConstants.ELEMENT_DATABINDING);
- docDataElem.add(dataModels);
- writeDataModels(dataModels, appManager.getAppFileData());
+ Element dataModels = doc.createElement(BuilderConstants.ELEMENT_DATABINDING);
+ docDataElem.appendChild(dataModels);
+ writeDataModels(doc, dataModels, appManager.getAppFileData());
- elem0.add(docDataElem);
+ elem0.appendChild(docDataElem);
- return root;
+ return doc;
}
- public static Element writeCss(Element cssElement, Part part) {
+ public static Element writeCss(Document doc, Element cssElement, Part part) {
// Adds selector attribute.
for (CssSelector selector : part.getSelectors()) {
if (selector == null) {
continue;
}
- Element selectorElement = DocumentHelper.createElement("tizen.selector");
- selectorElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME,
+ Element selectorElement = doc.createElement("tizen.selector");
+ selectorElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME,
selector.getSelectorName());
- selectorElement.addAttribute(BuilderConstants.ATTRIBUTE_PARTID, selector.getPartId());
+ selectorElement.setAttribute(BuilderConstants.ATTRIBUTE_PARTID, selector.getPartId());
// Adds style attribute.
for (Entry<String, String> child : selector.getProperties()) {
- Element styleElement = DocumentHelper.createElement("tizen.style");
- styleElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME, child.getKey());
- styleElement.addAttribute(BuilderConstants.ATTRIBUTE_VALUE, child.getValue());
- selectorElement.add(styleElement);
+ Element styleElement = doc.createElement("tizen.style");
+ styleElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME, child.getKey());
+ styleElement.setAttribute(BuilderConstants.ATTRIBUTE_VALUE, child.getValue());
+ selectorElement.appendChild(styleElement);
}
- cssElement.add(selectorElement);
+ cssElement.appendChild(selectorElement);
}
List<Part> children = part.getChildren();
int size = children.size();
for (int i = 0; i < size; i++) {
- writeCss(cssElement, children.get(i));
+ writeCss(doc, cssElement, children.get(i));
}
return cssElement;
}
// public static Element writeDataBinding(Part part) {
- // Element elem = DocumentHelper.createElement("tizen.dataModel");
+ // Element elem = doc.createElement("tizen.dataModel");
//
// String value = part.getPropertyValue("data-bind");
// if ((value != null) && (!value.equals(""))) {
// return elem;
// }
- public static Element writeNScreen(Element nscreenElement, List<CssFile> list) {
+ public static Element writeNScreen(Document doc, Element nscreenElement, List<CssFile> list) {
Collections.sort(list, new Comparator<CssFile>() {
@Override
public int compare(CssFile o1, CssFile o2) {
int preWidth = 0;
for (CssFile model : list) {
- Element screenElement = DocumentHelper.createElement("screen");
- screenElement.addAttribute("title", model.getTitle());
- screenElement.addAttribute("width", String.valueOf(model.getWidth()));
- screenElement.addAttribute("height", String.valueOf(model.getHeight()));
- screenElement.addAttribute("cssFileName", model.getFileName());
- screenElement.addAttribute("minWidth", String.valueOf(preWidth));
+ Element screenElement = doc.createElement("screen");
+ screenElement.setAttribute("title", model.getTitle());
+ screenElement.setAttribute("width", String.valueOf(model.getWidth()));
+ screenElement.setAttribute("height", String.valueOf(model.getHeight()));
+ screenElement.setAttribute("cssFileName", model.getFileName());
+ screenElement.setAttribute("minWidth", String.valueOf(preWidth));
preWidth = model.getWidth();
if (preWidth != 0) {
preWidth++;
}
- nscreenElement.add(screenElement);
+ nscreenElement.appendChild(screenElement);
}
return nscreenElement;
}
- public static Element writePart(Part part, boolean includePid) {
- Element elem = DocumentHelper.createElement(part.getDescriptorId());
+ public static Element writePart(Document doc, Part part, boolean includePid) {
+ Element elem = doc.createElement(part.getDescriptorId());
if (includePid) {
- elem.addAttribute(BuilderConstants.ATTRIBUTE_PID, part.getPartId());
+ elem.setAttribute(BuilderConstants.ATTRIBUTE_PID, part.getPartId());
// Adds height style attribute.
PartDescriptor descriptor = part.getPartDescriptor();
String value =
BuilderConstants.ATTRIBUTE_VALUE_HEIGHT + BuilderConstants.COLON
+ height + BuilderConstants.ATTRIBUTE_VALUE_PX;
- elem.addAttribute(BuilderConstants.ATTRIBUTE_STYLE, value);
+ elem.setAttribute(BuilderConstants.ATTRIBUTE_STYLE, value);
- Element textElem = DocumentHelper.createElement(BuilderConstants.PART_TEXT);
- textElem.addAttribute(BuilderConstants.ATTRIBUTE_TEXT,
+ Element textElem = doc.createElement(BuilderConstants.PART_TEXT);
+ textElem.setAttribute(BuilderConstants.ATTRIBUTE_TEXT,
descriptor.getGuideText());
- elem.add(textElem);
+ elem.appendChild(textElem);
}
}
}
String value = part.getPropertyValue(property.getPropertyName());
if ((value != null) && (!value.isEmpty())) {
if (property.getPropertyType().equals(TypeDescriptor.ID_OF_HTMLSTRING)) {
- elem.setText(value);
+ elem.setTextContent(value);
} else if (property.getPropertyType()
.indexOf(BuilderConstants.PROPERTY_GROUP_PREFIX) != 0) {
- elem.addAttribute(property.getPropertyName(), value);
+ elem.setAttribute(property.getPropertyName(), value);
}
}
}
for (int i = 0; i < values.size(); i++) {
value = values.get(i);
if (value != null) {
- Element element = DocumentHelper.createElement("event");
- element.addAttribute(event.getKey(), value);
- elem.add(element);
+ Element element = doc.createElement("event");
+ element.setAttribute(event.getKey(), value);
+ elem.appendChild(element);
}
}
}
GotoPageProperty value = gotoPageEvent.getValue();
if ((value != null) && (value.getDestinationPage() != null)
&& (value.getTransition() != null)) {
- Element element = DocumentHelper.createElement("gotoPage");
- element.addAttribute("event", gotoPageEvent.getKey());
- element.addAttribute("destinationPage", value.getDestinationPage());
- element.addAttribute("transition", value.getTransition());
- elem.add(element);
+ Element element = doc.createElement("gotoPage");
+ element.setAttribute("event", gotoPageEvent.getKey());
+ element.setAttribute("destinationPage", value.getDestinationPage());
+ element.setAttribute("transition", value.getTransition());
+ elem.appendChild(element);
}
}
for (Part child : part.getChildren()) {
- elem.add(writePart(child, includePid));
+ elem.appendChild(writePart(doc, child, includePid));
}
return elem;
}
- private static void writeDataModels(Element element, AppFileData descriptor) {
+ private static void writeDataModels(Document doc, Element element, AppFileData descriptor) {
List<BindingData> dataSources = descriptor.getDataSources();
for (BindingData dataSource : dataSources) {
- element.add(writeDataSourceInfo(dataSource));
+ element.appendChild(writeDataSourceInfo(doc, dataSource));
}
List<BindingData> viewModels = descriptor.getViewModels();
for (BindingData viewModel : viewModels) {
- element.add(writeViewModelInfo(viewModel));
+ element.appendChild(writeViewModelInfo(doc, viewModel));
}
- writeHandlerInfoFromViewModels(element, viewModels);
+ writeHandlerInfoFromViewModels(doc, element, viewModels);
for (BindingData dataSource : dataSources) {
if (dataSource.getUpdateOnStartup()) {
- element.add(writeUpdateOnStartUp(dataSource));
+ element.appendChild(writeUpdateOnStartUp(doc, dataSource));
}
}
}
- private static void writeHandlerInfoFromViewModels(Element element, List<BindingData> dataModels) {
+ private static void writeHandlerInfoFromViewModels(Document doc, Element element, List<BindingData> dataModels) {
List<String> handlerModelInfo = new ArrayList<String>();
List<String> handlerSourceInfo = new ArrayList<String>();
if ((handlerSourceInfo.get(i) != null) && (handlerSourceInfo.get(i).equals(""))) {
continue;
}
- Element subElement = DocumentHelper.createElement(BuilderConstants.ELEMENT_HANDLERINFO);
- subElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME, handlerSourceInfo.get(i));
+ Element subElement = doc.createElement(BuilderConstants.ELEMENT_HANDLERINFO);
+ subElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME, handlerSourceInfo.get(i));
Element subSubElement =
- DocumentHelper.createElement(BuilderConstants.ELEMENT_MODELINFO);
- subSubElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME, handlerModelInfo.get(i));
- subElement.add(subSubElement);
+ doc.createElement(BuilderConstants.ELEMENT_MODELINFO);
+ subSubElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME, handlerModelInfo.get(i));
+ subElement.appendChild(subSubElement);
for (int j = i + 1; j < handlerSourceInfo.size(); j++) {
if ((handlerSourceInfo.get(i) != null) && (handlerSourceInfo.get(j) != null)
&& (handlerSourceInfo.get(i).equals(handlerSourceInfo.get(j)))) {
Element testElement =
- DocumentHelper.createElement(BuilderConstants.ELEMENT_MODELINFO);
- testElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME,
+ doc.createElement(BuilderConstants.ELEMENT_MODELINFO);
+ testElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME,
handlerModelInfo.get(j));
- subElement.add(testElement);
+ subElement.appendChild(testElement);
handlerSourceInfo.set(j, "");
}
}
- element.add(subElement);
+ element.appendChild(subElement);
}
}
- private static Element writeUpdateOnStartUp(BindingData dataModel) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_UPDATEONSTARTUP);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getSourceName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_ISCHECKED, dataModel.getUpdateOnStartup()
+ private static Element writeUpdateOnStartUp(Document doc, BindingData dataModel) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_UPDATEONSTARTUP);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getSourceName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_ISCHECKED, dataModel.getUpdateOnStartup()
.toString());
return element;
}
- private static Element writeDataSourceInfo(BindingData dataModel) {
+ private static Element writeDataSourceInfo(Document doc, BindingData dataModel) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_DATASOURCE);
+ Element element = doc.createElement(BuilderConstants.ELEMENT_DATASOURCE);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getSourceName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_MODELTYPE, dataModel.getModelType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getSourceName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_MODELTYPE, dataModel.getModelType());
if ((dataModel.getModelType() != null) && (dataModel.getModelType().equals("REMOTECALL"))) {
- element.addAttribute(BuilderConstants.ATTRIBUTE_URL, dataModel.getURL());
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, dataModel.getMethod());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PROXY, dataModel.getProxy());
- element.addAttribute(BuilderConstants.ATTRIBUTE_QUERY, dataModel.getQuery());
- element.addAttribute(BuilderConstants.ATTRIBUTE_SOURCETYPE, dataModel.getSourceType());
- element.addAttribute(BuilderConstants.ATTRIBUTE_TIMEOUT, dataModel.getTimeout());
- element.addAttribute(BuilderConstants.ATTRIBUTE_JSONDATA, dataModel.getJsonData());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_URL, dataModel.getURL());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, dataModel.getMethod());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PROXY, dataModel.getProxy());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_QUERY, dataModel.getQuery());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_SOURCETYPE, dataModel.getSourceType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TIMEOUT, dataModel.getTimeout());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_JSONDATA, dataModel.getJsonData());
List<BindingObject> observableObjects = dataModel.getDataSourceObjects();
int size = observableObjects.size();
for (int i = 0; i < size; i++) {
- element.add(writeObservableObjects(observableObjects.get(i)));
+ element.appendChild(writeObservableObjects(doc, observableObjects.get(i)));
}
} else if ((dataModel.getModelType() != null)
&& (dataModel.getModelType().equals("STATIC"))) {
List<BindingObject> observableObjects = dataModel.getDataSourceObjects();
int size = observableObjects.size();
for (int i = 0; i < size; i++) {
- element.add(writeObservableObjects(observableObjects.get(i)));
+ element.appendChild(writeObservableObjects(doc, observableObjects.get(i)));
}
String jsonData = dataModel.getJsonData();
if ((jsonData == null) || (jsonData.equals(""))) {
jsonData = "{}";
}
- element.addAttribute(BuilderConstants.ATTRIBUTE_JSONDATA, jsonData);
- element.addAttribute(BuilderConstants.ATTRIBUTE_FILEPATH, dataModel.getStaticFilePath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_JSONDATA, jsonData);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_FILEPATH, dataModel.getStaticFilePath());
} else if ((dataModel.getModelType() != null)
&& (dataModel.getModelType().equals("RUNTIMEAPI"))) {
- element.addAttribute(BuilderConstants.ATTRIBUTE_API, dataModel.getRuntimeApiName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_API, dataModel.getRuntimeApiName());
}
return element;
}
- private static Element writeViewModelInfo(BindingData dataModel) {
+ private static Element writeViewModelInfo(Document doc, BindingData dataModel) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_VIEWMODEL);
+ Element element = doc.createElement(BuilderConstants.ELEMENT_VIEWMODEL);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_DATASOURCE, dataModel.getSourceName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, dataModel.getName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_DATASOURCE, dataModel.getSourceName());
List<BindingObject> observableObjects = dataModel.getViewModelObjects();
int size = observableObjects.size();
for (int i = 0; i < size; i++) {
- element.add(writeObservableObjects(observableObjects.get(i)));
+ element.appendChild(writeObservableObjects(doc, observableObjects.get(i)));
}
return element;
}
- private static Element writeObservableObjects(BindingObject observableObject) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_OBSERVABLEOBJECT);
- // Element element = DocumentHelper.createElement("dataSourceTreeNode");
+ private static Element writeObservableObjects(Document doc, BindingObject observableObject) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_OBSERVABLEOBJECT);
+ // Element element = doc.createElement("dataSourceTreeNode");
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, observableObject.getName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, observableObject.getName());
if (observableObject.getMarked() != null) {
- element.addAttribute(BuilderConstants.ATTRIBUTE_ISMARKED, observableObject.getMarked()
+ element.setAttribute(BuilderConstants.ATTRIBUTE_ISMARKED, observableObject.getMarked()
.toString());
}
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, observableObject.getType());
- element.addAttribute(BuilderConstants.ATTRIBUTE_VALUE, observableObject.getValue());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, observableObject.getType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_VALUE, observableObject.getValue());
List<BindingObject> observableObjects = observableObject.getItems();
int size = observableObjects.size();
for (int i = 0; i < size; i++) {
- element.add(writeObservableObjects(observableObjects.get(i)));
+ element.appendChild(writeObservableObjects(doc, observableObjects.get(i)));
}
return element;
package org.tizen.webuibuilder.model.css.io;
+import java.io.IOException;
+import java.net.URISyntaxException;
import java.net.URL;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.css.descriptors.CssCategoryDescriptor;
import org.tizen.webuibuilder.model.css.descriptors.CssDescriptor;
import org.tizen.webuibuilder.model.descriptors.DescriptorManager;
import org.tizen.webuibuilder.model.descriptors.PropertyConditionDescriptor;
import org.tizen.webuibuilder.model.descriptors.TypeDescriptor;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
/**
* a {@link URL} of descriptor XML
*/
public void parse(URL descriptorPath) {
- SAXReader reader = new SAXReader();
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
Document doc = null;
-
+
try {
- doc = reader.read(descriptorPath);
- } catch (DocumentException e) {
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(descriptorPath.toURI().toString());
+ } catch (URISyntaxException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
e.printStackTrace();
}
CssDescriptor cssDescriptor = new CssDescriptor();
- if (doc != null && doc.getRootElement() != null) {
- parseRoot(doc.getRootElement(), cssDescriptor);
+ if (doc != null && doc.getDocumentElement() != null) {
+ parseRoot(doc.getDocumentElement(), cssDescriptor);
}
manager.setCssDescriptor(cssDescriptor);
* a {@link CssDescriptor}
*/
private void parseRoot(Element root, CssDescriptor cssDescriptor) {
- for (Object childObj : root.elements(ELEM_CATEGORY)) {
- parseCategory((Element) childObj, cssDescriptor);
+ NodeList elemList = root.getElementsByTagName(ELEM_CATEGORY);
+ for(int i = 0; i < elemList.getLength(); i++){
+ parseCategory((Element) elemList.item(i), cssDescriptor);
}
}
* a {@link CssCategoryDescriptor}
*/
private void parseCategory(Element elem, CssDescriptor cssDescriptor) {
- String name = elem.attributeValue(ATTR_NAME);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String brief = elem.attributeValue(ATTR_BRIEF);
+ String name = elem.getAttribute(ATTR_NAME);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String brief = elem.getAttribute(ATTR_BRIEF);
CssCategoryDescriptor cssCategoryDescriptor =
new CssCategoryDescriptor(name, displayName, brief);
- for (Object childObj : elem.elements(ELEM_PROPERTY)) {
- parseProperty((Element) childObj, cssCategoryDescriptor);
+ NodeList elemList = elem.getElementsByTagName(ELEM_PROPERTY);
+ for(int i = 0; i < elemList.getLength(); i++){
+ parseProperty((Element) elemList.item(i), cssCategoryDescriptor);
}
cssDescriptor.addCssCategoryDescriptor(cssCategoryDescriptor);
return;
}
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String toolip = elem.attributeValue(ATTR_TOOLTIP);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
- String inlineText = elem.attributeValue(ATTR_INLINE);
+ String name = elem.getAttribute(ATTR_NAME);
+ String type = elem.getAttribute(ATTR_TYPE);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String toolip = elem.getAttribute(ATTR_TOOLTIP);
+ String defaultValue = elem.getAttribute(ATTR_DEFAULT);
+ String initValue = elem.getAttribute(ATTR_INITVALUE);
+ String inlineText = elem.getAttribute(ATTR_INLINE);
boolean inline = false;
if (BuilderConstants.TRUE.equals(inlineText)) {
defaultValue, initValue, manager, inline);
if (type.startsWith(TypeDescriptor.ID_OF_GROUP)) {
- for (Object propertyObj : elem.elements(ELEM_PROPERTY)) {
- parseChildProperty((Element) propertyObj, cssPropertyDescriptor);
+ NodeList elemList = elem.getElementsByTagName(ELEM_PROPERTY);
+ for(int i = 0; i < elemList.getLength(); i++){
+ parseChildProperty((Element) elemList.item(i), cssPropertyDescriptor);
}
}
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parseCondition((Element) childObj, cssPropertyDescriptor);
+ NodeList elemList = elem.getElementsByTagName(ELEM_CONDITION);
+ for(int i = 0; i < elemList.getLength(); i++){
+ parseCondition((Element) elemList.item(i), cssPropertyDescriptor);
}
cssCategoryDescriptor.addCssPropertyDescriptor(cssPropertyDescriptor);
return;
}
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String tooltip = elem.attributeValue(ATTR_TOOLTIP);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
+ String name = elem.getAttribute(ATTR_NAME);
+ String type = elem.getAttribute(ATTR_TYPE);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String tooltip = elem.getAttribute(ATTR_TOOLTIP);
+ String defaultValue = elem.getAttribute(ATTR_DEFAULT);
+ String initValue = elem.getAttribute(ATTR_INITVALUE);
// child property must be not inline
CssPropertyDescriptor childProperty =
if (type.startsWith(TypeDescriptor.ID_OF_GROUP)
|| type.startsWith(TypeDescriptor.ID_OF_SCALE)) {
- for (Object childObj : elem.elements(ELEM_PROPERTY)) {
- parseChildProperty((Element) childObj, childProperty);
+ NodeList elemList = elem.getElementsByTagName(ELEM_PROPERTY);
+ for(int i = 0; i < elemList.getLength(); i++){
+ parseChildProperty((Element) elemList.item(i), childProperty);
}
}
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parseCondition((Element) childObj, childProperty);
+ NodeList elemList = elem.getElementsByTagName(ELEM_CONDITION);
+ for(int i = 0; i < elemList.getLength(); i++){
+ parseCondition((Element) elemList.item(i), childProperty);
}
}
private void parseCondition(Element elem, CssPropertyDescriptor cssPropertyDescriptor) {
- String name = elem.attributeValue(ATTR_NAME);
- String value = elem.attributeValue(ATTR_VALUE);
- String target = elem.attributeValue(ATTR_TARGET);
- String targetValue = elem.attributeValue(ATTR_TARGETVALUE);
- String error = elem.attributeValue(ATTR_ERROR);
+ String name = elem.getAttribute(ATTR_NAME);
+ String value = elem.getAttribute(ATTR_VALUE);
+ String target = elem.getAttribute(ATTR_TARGET);
+ String targetValue = elem.getAttribute(ATTR_TARGETVALUE);
+ String error = elem.getAttribute(ATTR_ERROR);
PropertyConditionDescriptor condition =
new PropertyConditionDescriptor(name, value, target, targetValue, error);
import java.util.List;
import java.util.Map;
-import org.dom4j.Document;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
}
String xpath = descriptor.getXpath();
- if (xpath == null) {
+ if (xpath == null || xpath.isEmpty()) {
return;
}
XPathFactory xpathFactory = XPathFactory.newInstance();
NodeList nodes = null;
Object nodeset = null;
try {
- if (xpath != null && !xpath.equals(BuilderConstants.EMPTY)) {
+ if (xpath != null && !xpath.isEmpty()) {
nodeset = expr.evaluate(xpath, document, XPathConstants.NODESET);
}
} catch (XPathExpressionException e) {
}
String xpath = descriptor.getChildXpath();
- if (xpath == null) {
+ if (xpath == null || xpath.isEmpty()) {
return;
}
XPathFactory xpathFactory = XPathFactory.newInstance();
NodeList nodes = null;
Object nodeset = null;
try {
- if (xpath != null && !xpath.equals(BuilderConstants.EMPTY)) {
+ if (xpath != null && !xpath.isEmpty()) {
nodeset = expr.evaluate(xpath, document, XPathConstants.NODESET);
}
} catch (XPathExpressionException e) {
try {
List<PagePartDescriptor> pagePartDescriptor = manager.getPageDescriptors();
String xpath = pagePartDescriptor.get(0).getXpath();
- if (xpath != null && !xpath.equals(BuilderConstants.EMPTY)) {
+ if (xpath != null && !xpath.isEmpty()) {
nodeset = expr.evaluate(xpath, document, XPathConstants.NODESET);
}
} catch (XPathExpressionException e) {
int size = nodes.getLength();
for (int i = 0; i < size; i++) {
Node node = nodes.item(i);
- Element element = (Element) node;
- Part childPart = parseElement(pageFileData, part, element, manager, factory);
- part.addChildWhenPageRead(childPart);
- if (childPart.getDescriptorId().equals("tizen.page")) {
- pageFileData.addRootPart(childPart.getIdPropertyValue(), childPart);
+ if(node instanceof Element){
+ Part childPart = parseElement(pageFileData, part, (Element) node, manager, factory);
+ part.addChildWhenPageRead(childPart);
+ if (childPart.getDescriptorId().equals("tizen.page")) {
+ pageFileData.addRootPart(childPart.getIdPropertyValue(), childPart);
+ }
}
}
}
String xpath = propertyDescriptor.getXpath();
- if (xpath != null && !xpath.equals(BuilderConstants.EMPTY)) {
+ if (xpath != null && !xpath.isEmpty()) {
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath expr = xpathFactory.newXPath();
Object node = null;
// StreamSource(new StringBufferInputStream(xslt)));
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.METHOD, BuilderConstants.HTML);
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, BuilderConstants.NO);
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, BuilderConstants.YES);
transformer.setOutputProperty(OutputKeys.INDENT, BuilderConstants.NO);
DOMSource source = new DOMSource(element);
StreamResult result = new StreamResult(writer);
*
*/
-
package org.tizen.webuibuilder.model.io;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map.Entry;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.URIResolver;
+import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-import org.dom4j.io.DocumentResult;
-import org.dom4j.io.DocumentSource;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.SAXContentHandler;
-import org.dom4j.io.SAXReader;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
import org.eclipse.core.resources.IProject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tizen.webuibuilder.model.filedata.PageFileData;
import org.tizen.webuibuilder.utility.ResourceManager;
-
/**
* A code generator.
*/
public class CodeGenerator {
- /**
- * A logger instance.
- */
- private static Logger logger = LoggerFactory.getLogger(PartFactory.class);
-
- /**
- * A {@link Transformer}.
- */
- private static Transformer transformer;
-
- /**
- * Gets a {@link Transformer}.
- *
- * @param xslt
- * a {@link Document}
- * @return {@link Transformer}
- */
- private static Transformer getTransformer(Document xslt) {
- if (transformer == null) {
- TransformerFactory factory = TransformerFactory.newInstance();
- try {
- transformer = factory.newTransformer(new DocumentSource(xslt));
- transformer
- .setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, BuilderConstants.YES);
- transformer.setOutputProperty(OutputKeys.ENCODING, BuilderConstants.ENCODING);
- transformer.setOutputProperty(OutputKeys.METHOD, BuilderConstants.HTML);
- } catch (TransformerConfigurationException e) {
- e.printStackTrace();
- }
- }
-
- return transformer;
- }
-
- // private static Transformer getTransformer(
- // DescriptorManager descriptorManager) {
- // if (transformer == null) {
- // Document xslt = descriptorManager.getXsltDocument();
- // return getTransformer(xslt);
- // }
- //
- // return transformer;
- // }
-
- /**
- * Generates HTML code.
- *
- * @param part
- * a root {@link Part}
- * @param includePid
- * whether to write part-id
- * @param descriptorManager
- * a {@link DescriptorManager}
- * @return HTML code if generating succeed.
- */
- // public static String generateCode(Part part, boolean includePid,
- // DescriptorManager descriptorManager, boolean partialGen) {
- // StringWriter stringwriter = new StringWriter();
- // try {
- // generateCode(part, stringwriter, includePid, descriptorManager,
- // partialGen);
- // } catch (IOException e) {
- // e.printStackTrace();
- // }
- //
- // String code = stringwriter.toString();
- //
- // return code;
- // }
-
- /**
- * Generates HTML code.
- *
- * @param part
- * a {@link Part}
- * @param includePid
- * whether to write part-id
- * @param xslt
- * a {@link Document}
- * @param partialGen
- * whether to generate partially
- * @return HTML code
- */
- public static String generateCode(Part part, boolean includePid, Document xslt,
- boolean partialGen) {
- StringWriter stringwriter = new StringWriter();
- try {
- generateCode(part, stringwriter, includePid, xslt, partialGen);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- String code = stringwriter.toString();
-
- return code;
- }
-
- /**
- * Generates HTML code.
- *
- * @param part
- * a {@link Part}
- * @param writer
- * a writer
- * @param includePid
- * whether to write part-id
- * @param xslt
- * a {@link Document}
- * @param partialGen
- * whether to generate partially
- * @throws IOException
- */
- private static void generateCode(Part part, Writer writer, boolean includePid, Document xslt,
- boolean partialGen) throws IOException {
- Element elem = PageWriter.writePart(part, includePid);
-
- Element elem0 = null;
- if (partialGen) {
- elem0 = DocumentHelper.createElement("tizen.dummy");
- elem0.add(elem);
- } else {
- elem0 = elem;
- }
-
- Document doc = elem.getDocument();
- if (doc == null) {
- doc = DocumentHelper.createDocument();
- doc.add(elem0);
- }
-
- DocumentSource source = new DocumentSource(doc);
- SAXContentHandler handler = new SAXContentHandler();
- DocumentResult result = new DocumentResult(handler);
- try {
- getTransformer(xslt).transform(source, result);
- } catch (TransformerException e) {
- e.printStackTrace();
- }
-
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setExpandEmptyElements(true);
- format.setTrimText(false);
- HTMLWriter2 htmlwriter = new HTMLWriter2(writer, format);
- if (partialGen) {
- @SuppressWarnings("unchecked")
- List<Element> lst = result.getDocument().getRootElement().content();
- for (Element elm : lst) {
- htmlwriter.write(elm);
- }
- } else {
- htmlwriter.write(result.getDocument());
- }
- htmlwriter.close();
- }
-
- // private static void generateCode(Part part, Writer writer,
- // boolean includePid, DescriptorManager descriptorManager,
- // boolean partialGen) throws IOException {
- // generateCode(part, writer, includePid,
- // descriptorManager.getXsltDocument(), partialGen);
- // }
- //
-
- /**
- * Generates HTML code.
- *
- * @param part
- * a {@link Part}
- * @param writer
- * a writer
- * @param includePid
- * whether to write part-id
- * @param xslt
- * a {@link Document}
- * @param partialGen
- * whether to generate partially
- * @throws IOException
- */
-
- /**
- * Generates HTML code.
- *
- * @param srcFile
- * a source file
- * @param dstFile
- * a destination file
- * @param descriptorManager
- * a {@link DescriptorManager}
- * @param partFactory
- * a {@link PartFactory}
- * @param project
- * an {@link IProject}
- * @throws IOException
- */
- public static void generateCode(String srcFile, String dstFile,
- DescriptorManager descriptorManager, PartFactory partFactory,
- IProject project) throws IOException {
- PageFileData page = PageReader.read(srcFile, partFactory);
- if (page == null) {
- return;
- }
-
- generateCode(page.getRootPart(0), new FileWriter(dstFile), false,
- descriptorManager.getXsltDocument(), false);
- }
-
- public static void generateCode(String srcFile, InputStream xsltFile, String dstFile,
- Document xslt) throws IOException {
- SAXReader reader = new SAXReader();
- Document doc = DocumentHelper.createDocument();
-
- try {
- doc = reader.read(new File(srcFile).toURI().toURL());
- } catch (DocumentException e) {
- logger.error(BuilderConstants.LOG_READ_PAGE_ERROR);
- }
-
- DocumentSource source = new DocumentSource(doc);
- StreamResult result = new StreamResult(dstFile);
-
- Transformer transformer = null;
- TransformerFactory factory = TransformerFactory.newInstance();
- factory.setURIResolver(new URIResolver() {
-
- @Override
- public Source resolve(String href, String base) throws TransformerException {
- String uri = BuilderConstants.XSLT_DIR + href;
- try {
- InputStream stream = ResourceManager.openStream(uri);
- return new StreamSource(stream);
- } catch (IOException e) {
- logger.error(uri + BuilderConstants.CANNOT_BE_FOUND_ERROR);
- e.printStackTrace();
- }
-
- return null;
- }
- });
-
- try {
- transformer = factory.newTransformer(new StreamSource(xsltFile));
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, BuilderConstants.YES);
- transformer.setOutputProperty(OutputKeys.ENCODING, BuilderConstants.ENCODING);
- transformer.setOutputProperty(OutputKeys.METHOD, BuilderConstants.HTML);
- transformer.transform(source, result);
- } catch (TransformerConfigurationException e) {
- e.printStackTrace();
- } catch (TransformerException e) {
- e.printStackTrace();
- }
- }
-
- // public static void generateCode(String srcFile, InputStream xsltFile,
- // String dstFile, DescriptorManager descriptorManager)
- // throws IOException {
- // generateCode(srcFile, xsltFile, dstFile,
- // descriptorManager.getXsltDocument());
- // }
-
- /**
- * Generates css code using a root {@link Part}.
- *
- * @param rootPart
- * a root {@link Part}
- * @return css code if generating succeed, and empty string otherwise
- */
- public static String generateCssCode(Part rootPart) {
- if (rootPart == null) {
- return BuilderConstants.EMPTY;
- }
-
- String css = getCssCode(rootPart, true);
-
- return css;
- }
-
- /**
- * Generates css code using a {@link Part}.
- *
- * @param part
- * a {@link Part}
- * @param deep
- * whether recursive generation is done
- * @return css code
- */
- private static String getCssCode(Part part, boolean deep) {
- StringBuilder css = new StringBuilder();
- Iterator<CssSelector> selectors = part.getSelectors().iterator();
- while (selectors.hasNext()) {
- // Generates selector.
- CssSelector selector = selectors.next();
- css.append(selector.getSelectorName());
- css.append(BuilderConstants.SPACE);
- css.append(BuilderConstants.OPEN_CURLY_BRACKET);
- css.append(BuilderConstants.NEW_LINE);
- Iterator<Entry<String, String>> properties = selector.getProperties().iterator();
-
- while (properties.hasNext()) {
- // Generates property.
- Entry<String, String> property = properties.next();
- css.append(BuilderConstants.TAB);
- css.append(property.getKey());
- css.append(BuilderConstants.SPACE);
- css.append(BuilderConstants.COLON);
- css.append(BuilderConstants.SPACE);
- css.append(property.getValue());
- css.append(BuilderConstants.SEMICOLON);
- css.append(BuilderConstants.NEW_LINE);
- }
- css.append(BuilderConstants.CLOSE_CURLY_BRACKET);
- css.append(BuilderConstants.NEW_LINE);
- }
-
- if (deep) {
- List<Part> children = part.getChildren();
- int size = children.size();
- for (int i = 0; i < size; i++) {
- Part child = children.get(i);
- css.append(getCssCode(child, true));
- }
- }
-
- return css.toString();
- }
-
- /**
- * Generates css code of specific {@link Part} using a root {@link Part}.
- *
- * @param crootPart
- * a root {@link Part}
- * @param partId
- * an id property of a {@link Part}
- * @return css code if generating succeed, and empty string otherwise
- */
- public static String generateCssCode(Part rootPart, String partId) {
- if (rootPart == null) {
- return BuilderConstants.EMPTY;
- }
-
- Part part = rootPart.getChildOfIdPropertyValue(partId, true);
- String css = getCssCode(part, false);
-
- return css;
- }
-
- public static String generateCssCode(CssFile cssFile) {
- return new CssWriter().generateSelectors(cssFile);
- }
-
- public static void generateCSS(CssFile cssFile) {
- new CssWriter().generate(cssFile);
- }
+ /**
+ * A logger instance.
+ */
+ private static Logger logger = LoggerFactory.getLogger(PartFactory.class);
+
+ /**
+ * A {@link Transformer}.
+ */
+ // private static Transformer transformer;
+
+ /**
+ * Gets a {@link Transformer}.
+ *
+ * @param xslt
+ * a {@link Document}
+ * @return {@link Transformer}
+ */
+ private static Transformer getTransformer(Document xslt) {
+ // if (transformer == null) {
+ TransformerFactory factory = TransformerFactory.newInstance();
+
+ DOMSource source = new DOMSource(xslt);
+ Transformer transformer = null;
+ try {
+ transformer = factory.newTransformer(source);
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
+ BuilderConstants.YES);
+ transformer.setOutputProperty(OutputKeys.ENCODING,
+ BuilderConstants.ENCODING);
+ transformer.setOutputProperty(OutputKeys.INDENT,
+ BuilderConstants.YES);
+ transformer.setOutputProperty(OutputKeys.METHOD,
+ BuilderConstants.HTML);
+ } catch (TransformerConfigurationException e) {
+ e.printStackTrace();
+ }
+ // }
+
+ return transformer;
+ }
+
+ /**
+ * Generates HTML code.
+ *
+ * @param part
+ * a {@link Part}
+ * @param includePid
+ * whether to write part-id
+ * @param xslt
+ * a {@link Document}
+ * @param partialGen
+ * whether to generate partially
+ * @return HTML code
+ */
+ public static String generateCode(Part part, boolean includePid,
+ Document xslt, boolean partialGen) {
+ StringWriter stringwriter = new StringWriter();
+
+ try {
+ generateCode(part, stringwriter, includePid, xslt, partialGen);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ String code = stringwriter.toString();
+
+ return code;
+ }
+
+ /**
+ * Generates HTML code.
+ *
+ * @param part
+ * a {@link Part}
+ * @param writer
+ * a writer
+ * @param includePid
+ * whether to write part-id
+ * @param xslt
+ * a {@link Document}
+ * @param partialGen
+ * whether to generate partially
+ * @throws IOException
+ */
+ private static void generateCode(Part part, Writer writer,
+ boolean includePid, Document xslt, boolean partialGen)
+ throws IOException {
+ Document doc = PageWriter.writePart(part, includePid);
+
+ Element elem0 = null;
+ if (partialGen) {
+ elem0 = doc.createElement("tizen.dummy");
+ Element elem = (Element) doc.getFirstChild();
+ doc.removeChild(elem);
+ elem0.appendChild(elem);
+ doc.appendChild(elem0);
+ }
+
+ DOMSource source = new DOMSource(doc);
+ StreamResult result = new StreamResult(writer);
+ try {
+ getTransformer(xslt).transform(source, result);
+ } catch (TransformerException e) {
+ e.printStackTrace();
+ }
+
+ // OutputFormat format = OutputFormat.createPrettyPrint();
+ // format.setExpandEmptyElements(true);
+ // format.setTrimText(false);
+ // HTMLWriter2 htmlwriter = new HTMLWriter2(writer, format);
+ // if (partialGen) {
+ // @SuppressWarnings("unchecked")
+ // List<Element> lst = result.getDocument().getRootElement().content();
+ // for (Element elm : lst) {
+ // htmlwriter.write(elm);
+ // }
+ // } else {
+ // htmlwriter.write(result.getDocument());
+ // }
+ // htmlwriter.close();
+ }
+
+ // private static void generateCode(Part part, Writer writer,
+ // boolean includePid, DescriptorManager descriptorManager,
+ // boolean partialGen) throws IOException {
+ // generateCode(part, writer, includePid,
+ // descriptorManager.getXsltDocument(), partialGen);
+ // }
+ //
+
+ /**
+ * Generates HTML code.
+ *
+ * @param part
+ * a {@link Part}
+ * @param writer
+ * a writer
+ * @param includePid
+ * whether to write part-id
+ * @param xslt
+ * a {@link Document}
+ * @param partialGen
+ * whether to generate partially
+ * @throws IOException
+ */
+
+ /**
+ * Generates HTML code.
+ *
+ * @param srcFile
+ * a source file
+ * @param dstFile
+ * a destination file
+ * @param descriptorManager
+ * a {@link DescriptorManager}
+ * @param partFactory
+ * a {@link PartFactory}
+ * @param project
+ * an {@link IProject}
+ * @throws IOException
+ */
+ public static void generateCode(String srcFile, String dstFile,
+ DescriptorManager descriptorManager, PartFactory partFactory)
+ throws IOException {
+ PageFileData page = PageReader.read(srcFile, partFactory);
+ if (page == null) {
+ return;
+ }
+
+ generateCode(page.getRootPart(0), new FileWriter(dstFile), false,
+ descriptorManager.getXsltDocument(), false);
+ }
+
+ public static void generateCode(String srcFile, InputStream xsltFile,
+ String dstFile, Document xslt) throws IOException {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
+ Document doc = null;
+
+ try {
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(srcFile);
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ }
+
+ DOMSource source = new DOMSource(doc);
+ StreamResult result = new StreamResult(dstFile);
+
+ Transformer transformer = null;
+ TransformerFactory transFactory = TransformerFactory.newInstance();
+ transFactory.setURIResolver(new URIResolver() {
+
+ @Override
+ public Source resolve(String href, String base)
+ throws TransformerException {
+ String uri = BuilderConstants.XSLT_DIR + href;
+ try {
+ InputStream stream = ResourceManager.openStream(uri);
+ return new StreamSource(stream);
+ } catch (IOException e) {
+ logger.error(uri + BuilderConstants.CANNOT_BE_FOUND_ERROR);
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+ });
+
+ try {
+ transformer = transFactory
+ .newTransformer(new StreamSource(xsltFile));
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
+ BuilderConstants.YES);
+ transformer.setOutputProperty(OutputKeys.ENCODING,
+ BuilderConstants.ENCODING);
+ transformer.setOutputProperty(OutputKeys.METHOD,
+ BuilderConstants.HTML);
+ transformer.transform(source, result);
+ } catch (TransformerConfigurationException e) {
+ e.printStackTrace();
+ } catch (TransformerException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // public static void generateCode(String srcFile, InputStream xsltFile,
+ // String dstFile, DescriptorManager descriptorManager)
+ // throws IOException {
+ // generateCode(srcFile, xsltFile, dstFile,
+ // descriptorManager.getXsltDocument());
+ // }
+
+ /**
+ * Generates css code using a root {@link Part}.
+ *
+ * @param rootPart
+ * a root {@link Part}
+ * @return css code if generating succeed, and empty string otherwise
+ */
+ public static String generateCssCode(Part rootPart) {
+ if (rootPart == null) {
+ return BuilderConstants.EMPTY;
+ }
+
+ String css = getCssCode(rootPart, true);
+
+ return css;
+ }
+
+ /**
+ * Generates css code using a {@link Part}.
+ *
+ * @param part
+ * a {@link Part}
+ * @param deep
+ * whether recursive generation is done
+ * @return css code
+ */
+ private static String getCssCode(Part part, boolean deep) {
+ StringBuilder css = new StringBuilder();
+ Iterator<CssSelector> selectors = part.getSelectors().iterator();
+ while (selectors.hasNext()) {
+ // Generates selector.
+ CssSelector selector = selectors.next();
+ css.append(selector.getSelectorName());
+ css.append(BuilderConstants.SPACE);
+ css.append(BuilderConstants.OPEN_CURLY_BRACKET);
+ css.append(BuilderConstants.NEW_LINE);
+ Iterator<Entry<String, String>> properties = selector
+ .getProperties().iterator();
+
+ while (properties.hasNext()) {
+ // Generates property.
+ Entry<String, String> property = properties.next();
+ css.append(BuilderConstants.TAB);
+ css.append(property.getKey());
+ css.append(BuilderConstants.SPACE);
+ css.append(BuilderConstants.COLON);
+ css.append(BuilderConstants.SPACE);
+ css.append(property.getValue());
+ css.append(BuilderConstants.SEMICOLON);
+ css.append(BuilderConstants.NEW_LINE);
+ }
+ css.append(BuilderConstants.CLOSE_CURLY_BRACKET);
+ css.append(BuilderConstants.NEW_LINE);
+ }
+
+ if (deep) {
+ List<Part> children = part.getChildren();
+ int size = children.size();
+ for (int i = 0; i < size; i++) {
+ Part child = children.get(i);
+ css.append(getCssCode(child, true));
+ }
+ }
+
+ return css.toString();
+ }
+
+ /**
+ * Generates css code of specific {@link Part} using a root {@link Part}.
+ *
+ * @param crootPart
+ * a root {@link Part}
+ * @param partId
+ * an id property of a {@link Part}
+ * @return css code if generating succeed, and empty string otherwise
+ */
+ public static String generateCssCode(Part rootPart, String partId) {
+ if (rootPart == null) {
+ return BuilderConstants.EMPTY;
+ }
+
+ Part part = rootPart.getChildOfIdPropertyValue(partId, true);
+ String css = getCssCode(part, false);
+
+ return css;
+ }
+
+ public static String generateCssCode(CssFile cssFile) {
+ return new CssWriter().generateSelectors(cssFile);
+ }
+
+ public static void generateCSS(CssFile cssFile) {
+ new CssWriter().generate(cssFile);
+ }
}
*
*/
-
package org.tizen.webuibuilder.model.io;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.StringBufferInputStream;
+import java.io.StringWriter;
+import java.net.URISyntaxException;
import java.net.URL;
import java.util.Arrays;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-import org.dom4j.Namespace;
-import org.dom4j.QName;
-import org.dom4j.io.SAXReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.descriptors.ChildPropertyDescriptor;
import org.tizen.webuibuilder.model.descriptors.ConstantDescriptor;
import org.tizen.webuibuilder.model.descriptors.TypeDescriptor;
import org.tizen.webuibuilder.model.descriptors.WidgetPartDescriptor;
-
/**
* A descriptor reader.
*/
public class DescriptorReader {
- // Element name
- private static final String ELEM_DOC = "doc"; //$NON-NLS-1$
- private static final String ELEM_PAGE = "page"; //$NON-NLS-1$
- private static final String ELEM_WIDGET = "widget"; //$NON-NLS-1$
- private static final String ELEM_CONTENT = "content"; //$NON-NLS-1$
- private static final String ELEM_NOCONTENT = "nocontent"; //$NON-NLS-1$
- private static final String ELEM_PARENT = "parent"; //$NON-NLS-1$
- private static final String ELEM_NOPARENT = "noparent"; //$NON-NLS-1$
- private static final String ELEM_RELATIONS = "relations"; //$NON-NLS-1$
- private static final String ELEM_PROPERTY = "property"; //$NON-NLS-1$
- private static final String ELEM_CONDITION = "condition"; //$NON-NLS-1$
- private static final String ELEM_EVENT = "event"; //$NON-NLS-1$
- private static final String ELEM_XSL_FOR_OUTPUT = "xsl-for-output"; //$NON-NLS-1$
- private static final String ELEM_TYPES = "types"; //$NON-NLS-1$
- private static final String ELEM_TYPE = "type"; //$NON-NLS-1$
- private static final String ELEM_CONSTANT = "constant"; //$NON-NLS-1$
- private static final String ELEM_EVENTTYPES = "eventTypes"; //$NON-NLS-1$
- private static final String ELEM_EVENTTYPE = "eventType"; //$NON-NLS-1$
- private static final String ELEM_DEFAULTCODE = "defaultCode"; //$NON-NLS-1$
- private static final String ELEM_PARAM = "param"; //$NON-NLS-1$
-
- // Attribute name
- private static final String ATTR_ID = "id"; //$NON-NLS-1$
- private static final String ATTR_DISPLAYNAME = "displayName"; //$NON-NLS-1$
- private static final String ATTR_SMALLICON = "smallIcon"; //$NON-NLS-1$
- private static final String ATTR_ICON_16 = "icon.16"; //$NON-NLS-1$
- private static final String ATTR_ICON = "icon"; //$NON-NLS-1$
- private static final String ATTR_CATEGORY = "category"; //$NON-NLS-1$
- private static final String ATTR_DESCRIPTION = "description"; //$NON-NLS-1$
- private static final String ATTR_PALETTE_VISIBLE = "paletteVisible"; //$NON-NLS-1$
- private static final String ATTR_HELPCATEGORY = "helpCategory"; //$NON-NLS-1$
- private static final String ATTR_HELPCONTENS = "helpContents"; //$NON-NLS-1$
- private static final String ATTR_FEEDBACKWIDTH = "feedbackWidth"; //$NON-NLS-1$
- private static final String ATTR_FEEDBACKHEIGHT = "feedbackHeight"; //$NON-NLS-1$
- private static final String ATTR_BORDER_VISIBLE = "borderVisible"; //$NON-NLS-1$
- private static final String ATTR_FEEDBACKCONDITION = "feedbackCondition"; //$NON-NLS-1$
- private static final String ATTR_GUIDE_TEXT = "guideText"; //$NON-NLS-1$
- private static final String ATTR_SET_STYLE = "setStyle"; //$NON-NLS-1$
- private static final String ATTR_UI_SELECTOR = "uiSelector"; //$NON-NLS-1$
- private static final String ATTR_XPATH = "xpath"; //$NON-NLS-1$
- private static final String ATTR_CHILDXPATH = "childXpath"; //$NON-NLS-1$
- private static final String ATTR_IDS = "ids"; //$NON-NLS-1$
- private static final String ATTR_EXCLUDE_IDS = "exclude-ids"; //$NON-NLS-1$
- private static final String ATTR_PARENT_IDS = "parent-ids"; //$NON-NLS-1$
- private static final String ATTR_EXCLUSIVE_GROUP = "exclusiveGroup"; //$NON-NLS-1$
- private static final String ATTR_MIN = "min"; //$NON-NLS-1$
- private static final String ATTR_MAX = "max"; //$NON-NLS-1$
- private static final String ATTR_NAME = "name"; //$NON-NLS-1$
- private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
- private static final String ATTR_DEFAULT = "default"; //$NON-NLS-1$
- private static final String ATTR_INITVALUE = "initValue"; //$NON-NLS-1$
- private static final String ATTR_SELECTOR = "selector"; //$NON-NLS-1$
- private static final String ATTR_NOT_SUPPORTED = "notsupported"; //$NON-NLS-1$
- private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
- private static final String ATTR_TARGET = "target"; //$NON-NLS-1$
- private static final String ATTR_TARGETVALUE = "targetValue"; //$NON-NLS-1$
- private static final String ATTR_TOOLTIP = "tooltip"; //$NON-NLS-1$
- private static final String ATTR_ERROR = "error"; //$NON-NLS-1$
- private static final String ATTR_EVENTTYPE = "eventType"; //$NON-NLS-1$
-
- private static final Namespace XSLT_NAMESPACE =
- new Namespace("xsl", "http://www.w3.org/1999/XSL/Transform"); //$NON-NLS-1$ //$NON-NLS-2$
- private static final String ELEM_STYLESHEET = "stylesheet"; //$NON-NLS-1$
- private static final String ATTR_STYLESHEET_VERSION = "version"; //$NON-NLS-1$
- private static final String VALUE_STYLESHEET_VERSION = "1.0"; //$NON-NLS-1$
-
- private static final String PART_TYPE_DOC = "doc"; //$NON-NLS-1$
- private static final String PART_TYPE_PAGE = "page"; //$NON-NLS-1$
- private static final String PART_TYPE_WIDGET = "widget"; //$NON-NLS-1$
-
- /**
- * A {@link DescriptorManager}.
- */
- private DescriptorManager manager;
-
- /**
- * A xsl-for-output document.
- */
- private Document xslt;
-
- /**
- * Constructor.
- *
- * @param manager
- * a {@link DescriptorManager}
- */
- public DescriptorReader(DescriptorManager manager) {
- this.manager = manager;
- this.xslt = DocumentHelper.createDocument();
- xslt.addElement(new QName(ELEM_STYLESHEET, XSLT_NAMESPACE))
- .addAttribute(ATTR_STYLESHEET_VERSION, VALUE_STYLESHEET_VERSION);
- }
-
- /**
- * Gets a {@link Document}.
- *
- * @return a {@link Document}
- */
- public Document getXsltForOutput() {
- return xslt;
- }
-
- /**
- * Parses a descriptor XML.
- *
- * @param descriptorPath
- * a path of descriptor XML
- */
- public void parse(URL descriptorPath) {
- SAXReader reader = new SAXReader();
- Document doc = null;
-
- try {
- doc = reader.read(descriptorPath);
- } catch (DocumentException e) {
- e.printStackTrace();
- }
-
- if (doc != null && doc.getRootElement() != null) {
- parseRoot(doc.getRootElement());
- }
- }
-
- /**
- * Parses a root element of descriptor XML.
- *
- * @param root
- * a root element
- */
- private void parseRoot(Element root) {
- if (root == null) {
- return;
- }
-
- for (Object childObj : root.elements(ELEM_DOC)) {
- parsePart((Element) childObj, new DocumentPartDescriptor());
- }
- for (Object childObj : root.elements(ELEM_PAGE)) {
- parsePart((Element) childObj, new PagePartDescriptor());
- }
- for (Object childObj : root.elements(ELEM_WIDGET)) {
- parsePart((Element) childObj, new WidgetPartDescriptor());
- }
- for (Object childObj : root.elements(ELEM_TYPES)) {
- parseTypes((Element) childObj);
- }
- for (Object childObj : root.elements(ELEM_EVENTTYPES)) {
- parseEventTypes((Element) childObj);
- }
- }
-
- /**
- * Parses a doc, page or widget element of descriptor XML.
- *
- * @param elem
- * a doc, page or widget element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parsePart(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String id = elem.attributeValue(ATTR_ID);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String smallIcon = elem.attributeValue(ATTR_SMALLICON);
- String icon16 = elem.attributeValue(ATTR_ICON_16);
- String description = elem.attributeValue(ATTR_DESCRIPTION);
- String paletteVisible = elem.attributeValue(ATTR_PALETTE_VISIBLE);
- String helpCategory = elem.attributeValue(ATTR_HELPCATEGORY);
- String helpContens = elem.attributeValue(ATTR_HELPCONTENS);
- String width = elem.attributeValue(ATTR_FEEDBACKWIDTH);
- String height = elem.attributeValue(ATTR_FEEDBACKHEIGHT);
- String borderVisible = elem.attributeValue(ATTR_BORDER_VISIBLE);
- String feedbackCondition = elem.attributeValue(ATTR_FEEDBACKCONDITION);
- String guideText = elem.attributeValue(ATTR_GUIDE_TEXT);
- String setStyle = elem.attributeValue(ATTR_SET_STYLE);
- String uiSelector = elem.attributeValue(ATTR_UI_SELECTOR);
- String xpath = elem.attributeValue(ATTR_XPATH);
- String childXpath = elem.attributeValue(ATTR_CHILDXPATH);
-
- boolean boolpaletteVisible = true;
- if (paletteVisible != null) {
- boolpaletteVisible = Boolean.parseBoolean(paletteVisible);
- }
- boolean boolBorderVisible = Boolean.parseBoolean(borderVisible);
- boolean boolSetStyle = Boolean.parseBoolean(setStyle);
-
- part.init(id, displayName, smallIcon, icon16, description, boolpaletteVisible,
- helpCategory, helpContens, width, height, boolBorderVisible, feedbackCondition,
- guideText, boolSetStyle, uiSelector, xpath, childXpath);
-
- if (part instanceof WidgetPartDescriptor) {
- String categories = elem.attributeValue(ATTR_CATEGORY);
- if (categories != null) {
- String[] categoriesArray = categories.split(BuilderConstants.COMMA);
- ((WidgetPartDescriptor) part).setCategories(Arrays.asList(categoriesArray));
- }
- }
-
- boolean isNoRelation = true;
- for (Object contentObj : elem.elements(ELEM_RELATIONS)) {
- parseRelations((Element) contentObj, part);
- isNoRelation = false;
- }
-
- // This code remains for compatibility.
- if (isNoRelation) {
- for (Object contentObj : elem.elements(ELEM_CONTENT)) {
- parseContent((Element) contentObj, part);
- }
- }
-
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parsePartCondition((Element) childObj, part);
- }
-
- for (Object propertyObj : elem.elements(ELEM_PROPERTY)) {
- parseProperty((Element) propertyObj, part);
- }
-
- for (Object contentObj : elem.elements(ELEM_EVENT)) {
- parseEvent((Element) contentObj, part);
- }
-
- parseXsltForOutput(elem);
-
- manager.addPartDescriptor(part);
- }
-
- /**
- * Parses a relation element of descriptor XML.
- *
- * @param elem
- * a relation element
- * @param property
- * a {@link PartDescriptor}
- */
- private void parseRelations(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- RelationDescriptor relation = part.getRelation();
- if (relation == null) {
- return;
- }
-
- for (Object childObj : elem.elements(ELEM_PARENT)) {
- Element childElem = (Element) childObj;
- String ids = childElem.attributeValue(ATTR_IDS);
-
- relation.addParentPartIds(ids);
- }
-
- for (Object childObj : elem.elements(ELEM_NOPARENT)) {
- Element childElem = (Element) childObj;
- String ids = childElem.attributeValue(ATTR_IDS);
-
- relation.addNoParentPartIds(ids);
- }
-
- for (Object childObj : elem.elements(ELEM_CONTENT)) {
- Element childElem = (Element) childObj;
- parseContent2(childElem, relation);
- }
-
- for (Object childObj : elem.elements(ELEM_NOCONTENT)) {
- Element childElem = (Element) childObj;
- String ids = childElem.attributeValue(ATTR_IDS);
-
- relation.addNoContentPartIds(ids);
- }
- }
-
- /**
- * Parses a content element of descriptor XML. This method remains for compatibility.
- *
- * @param elem
- * a content element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parseContent(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- RelationDescriptor relation = part.getRelation();
- if (relation == null) {
- return;
- }
-
- parseContent2(elem, relation);
-
- String excludeIds = elem.attributeValue(ATTR_EXCLUDE_IDS);
- String parentIds = elem.attributeValue(ATTR_PARENT_IDS);
-
- if (excludeIds != null) {
- relation.addNoContentPartIds(excludeIds);
- }
- if (parentIds != null) {
- relation.addParentPartIds(parentIds);
- }
- }
-
- /**
- * Parses a content element of descriptor XML.
- *
- * @param elem
- * a content element
- * @param relation
- * a {@link RelationDescriptor}
- */
- private void parseContent2(Element elem, RelationDescriptor relation) {
- if (elem == null || relation == null) {
- return;
- }
-
- String ids = elem.attributeValue(ATTR_IDS);
- String type = elem.attributeValue(ATTR_TYPE);
- String min = elem.attributeValue(ATTR_MIN);
- String max = elem.attributeValue(ATTR_MAX);
- String exclusiveGroup = elem.attributeValue(ATTR_EXCLUSIVE_GROUP);
- ContentDescriptor.PartType partType = ContentDescriptor.PartType.ANY_PART;
-
- if (type != null) {
- if (type.equals(PART_TYPE_DOC)) {
- partType = ContentDescriptor.PartType.DOCUMENT_PART;
- } else if (type.equals(PART_TYPE_PAGE)) {
- partType = ContentDescriptor.PartType.PAGE_PART;
- } else if (type.equals(PART_TYPE_WIDGET)) {
- partType = ContentDescriptor.PartType.WIDGET_PART;
- }
- }
-
- ContentDescriptor content = new ContentDescriptor();
- content.setPartType(partType);
- if (ids != null) {
- content.setPartIds(ids);
- }
- if (min != null) {
- content.setMin(Integer.valueOf(min).intValue());
- }
- if (max != null) {
- content.setMax(Integer.valueOf(max).intValue());
- }
- if (exclusiveGroup != null) {
- content.setExclusiveGroup(exclusiveGroup);
- }
- relation.addContent(content);
- }
-
- /**
- * Parses a condition element of descriptor XML.
- *
- * @param elem
- * a property element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parsePartCondition(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String value = elem.attributeValue(ATTR_VALUE);
- String target = elem.attributeValue(ATTR_TARGET);
- String targetValue = elem.attributeValue(ATTR_TARGETVALUE);
-
- PartConditionDescriptor condition =
- new PartConditionDescriptor(name, value, target, targetValue);
- part.addConditionDescriptor(condition);
- }
-
- /**
- * Parses a property element of descriptor XML.
- *
- * @param elem
- * a property element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parseProperty(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String notsupported = elem.attributeValue(ATTR_NOT_SUPPORTED);
- if (notsupported != null && notsupported.equals(BuilderConstants.TRUE)) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String tooltip = elem.attributeValue(ATTR_TOOLTIP);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
- String category = elem.attributeValue(ATTR_CATEGORY);
- String xpath = elem.attributeValue(ATTR_XPATH);
-
- if (tooltip == null) {
- tooltip = displayName;
- } else {
- tooltip =
- displayName + BuilderConstants.SPACE + BuilderConstants.DASH
- + BuilderConstants.SPACE + tooltip;
- }
-
- PropertyDescriptor property =
- new PropertyDescriptor(name, type, displayName, tooltip, defaultValue, initValue,
- category, xpath, manager);
- part.addPropertyDescriptor(property);
-
- if (TypeDescriptor.ID_OF_GROUP.equals(type) || TypeDescriptor.ID_OF_GROUP_TEXT.equals(type)
- || TypeDescriptor.ID_OF_GROUP_POSITION.equals(type)) {
- for (Object propertyObj : elem.elements(ELEM_PROPERTY)) {
- parseChildProperty((Element) propertyObj, property);
- }
- }
-
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parseCondition((Element) childObj, property);
- }
- }
-
- /**
- * Parses a child property element of descriptor XML.
- *
- * @param elem
- * a child property
- * @param property
- * a {@link PropertyDescriptor}
- */
- private void parseChildProperty(Element elem, PropertyDescriptor property) {
- if (elem == null || property == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String tooltip = elem.attributeValue(ATTR_TOOLTIP);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
- String category = elem.attributeValue(ATTR_CATEGORY);
- String xpath = elem.attributeValue(ATTR_XPATH);
- String selector = elem.attributeValue(ATTR_SELECTOR);
-
- PropertyDescriptor childProperty =
- new ChildPropertyDescriptor(name, type, displayName, tooltip, defaultValue,
- initValue, category, xpath, selector, manager);
- property.addChildPropertyDescriptor(childProperty);
-
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parseCondition((Element) childObj, childProperty);
- }
- }
-
- /**
- * Parses a condition element of descriptor XML.
- *
- * @param elem
- * a condition element
- * @param property
- * a {@link PropertyDescriptor}
- */
- private void parseCondition(Element elem, PropertyDescriptor property) {
- if (elem == null || property == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String value = elem.attributeValue(ATTR_VALUE);
- String target = elem.attributeValue(ATTR_TARGET);
- String targetValue = elem.attributeValue(ATTR_TARGETVALUE);
- String error = elem.attributeValue(ATTR_ERROR);
-
- PropertyConditionDescriptor condition =
- new PropertyConditionDescriptor(name, value, target, targetValue, error);
- property.addConditionDescriptor(condition);
- }
-
- /**
- * Parses an event element of descriptor XML.
- *
- * @param elem
- * an event element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parseEvent(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String eventType = elem.attributeValue(ATTR_EVENTTYPE);
- EventDescriptor event = new EventDescriptor(name, displayName, eventType, manager);
- part.addEventDescriptor(event);
- }
-
- /**
- * Parses a types element of descriptor XML.
- *
- * @param elem
- * a types element
- */
- private void parseTypes(Element elem) {
- if (elem == null) {
- return;
- }
-
- for (Object childObj : elem.elements(ELEM_TYPE)) {
- parseType((Element) childObj);
- }
- }
-
- /**
- * Parses a type element of descriptor XML.
- *
- * @param elem
- * a type element
- */
- private void parseType(Element elem) {
- if (elem == null) {
- return;
- }
-
- String id = elem.attributeValue(ATTR_ID);
-
- TypeDescriptor type = manager.getTypeDescriptor(id);
-
- if (type == null) {
- type = new TypeDescriptor(id);
- manager.addTypeDescriptor(type);
- }
-
- for (Object childObj : elem.elements(ELEM_CONSTANT)) {
- type.addAvailableConstant(parseConstant((Element) childObj));
- }
-
- }
-
- /**
- * Parses a constant element of descriptor XML.
- *
- * @param elem
- * a constant element
- */
- private ConstantDescriptor parseConstant(Element elem) {
- if (elem == null) {
- return null;
- }
-
- String value = elem.attributeValue(ATTR_VALUE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String icon = elem.attributeValue(ATTR_ICON);
-
- if (displayName == null) {
- displayName = value;
- }
-
- return new ConstantDescriptor(value, displayName, icon);
- }
-
- /**
- * Parses an eventTypes element of descriptor XML.
- *
- * @param elem
- * an eventTypes element
- */
- private void parseEventTypes(Element elem) {
- if (elem == null) {
- return;
- }
-
- for (Object childObj : elem.elements(ELEM_EVENTTYPE)) {
- parseEventType((Element) childObj);
- }
- }
-
- /**
- * Parses an eventType element of descriptor XML.
- *
- * @param elem
- * an eventType element
- */
- private void parseEventType(Element elem) {
- if (elem == null) {
- return;
- }
-
- String id = elem.attributeValue(ATTR_ID);
- if (manager.getEventTypeDescriptor(id) != null) {
- return;
- }
-
- EventTypeDescriptor eventType = new EventTypeDescriptor(id);
-
- for (Object childObj : elem.elements(ELEM_DEFAULTCODE)) {
- eventType.setDefaultCode(((Element) childObj).getText());
- }
-
- for (Object childObj : elem.elements(ELEM_PARAM)) {
- eventType.addEventParameter(parseParameter((Element) childObj));
- }
-
- manager.addEventTypeDescriptor(eventType);
- }
-
- /**
- * Parses a param element of descriptor XML.
- *
- * @param elem
- * a param element
- */
- private EventParamDescriptor parseParameter(Element elem) {
- if (elem == null) {
- return null;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
-
- return new EventParamDescriptor(name, type);
- }
-
- /**
- * Parses a xsl-for-output element of descriptor XML.
- *
- * @param elem
- * a xsl-for-output element
- */
- private void parseXsltForOutput(Element elem) {
- if (elem == null) {
- return;
- }
-
- Element code = elem.element(ELEM_XSL_FOR_OUTPUT);
- if (code != null) {
- Element child = null;
- for (Object nodeObj : code.elements()) {
- child = (Element) nodeObj;
- xslt.getRootElement().add(child.createCopy());
- }
- }
- }
+ // Element name
+ private static final String ELEM_DOC = "doc"; //$NON-NLS-1$
+ private static final String ELEM_PAGE = "page"; //$NON-NLS-1$
+ private static final String ELEM_WIDGET = "widget"; //$NON-NLS-1$
+ private static final String ELEM_CONTENT = "content"; //$NON-NLS-1$
+ private static final String ELEM_NOCONTENT = "nocontent"; //$NON-NLS-1$
+ private static final String ELEM_PARENT = "parent"; //$NON-NLS-1$
+ private static final String ELEM_NOPARENT = "noparent"; //$NON-NLS-1$
+ private static final String ELEM_RELATIONS = "relations"; //$NON-NLS-1$
+ private static final String ELEM_PROPERTY = "property"; //$NON-NLS-1$
+ private static final String ELEM_CONDITION = "condition"; //$NON-NLS-1$
+ private static final String ELEM_EVENT = "event"; //$NON-NLS-1$
+ private static final String ELEM_XSL_FOR_OUTPUT = "xsl-for-output"; //$NON-NLS-1$
+ private static final String ELEM_TYPES = "types"; //$NON-NLS-1$
+ private static final String ELEM_TYPE = "type"; //$NON-NLS-1$
+ private static final String ELEM_CONSTANT = "constant"; //$NON-NLS-1$
+ private static final String ELEM_EVENTTYPES = "eventTypes"; //$NON-NLS-1$
+ private static final String ELEM_EVENTTYPE = "eventType"; //$NON-NLS-1$
+ private static final String ELEM_DEFAULTCODE = "defaultCode"; //$NON-NLS-1$
+ private static final String ELEM_PARAM = "param"; //$NON-NLS-1$
+
+ // Attribute name
+ private static final String ATTR_ID = "id"; //$NON-NLS-1$
+ private static final String ATTR_DISPLAYNAME = "displayName"; //$NON-NLS-1$
+ private static final String ATTR_SMALLICON = "smallIcon"; //$NON-NLS-1$
+ private static final String ATTR_ICON_16 = "icon.16"; //$NON-NLS-1$
+ private static final String ATTR_ICON = "icon"; //$NON-NLS-1$
+ private static final String ATTR_CATEGORY = "category"; //$NON-NLS-1$
+ private static final String ATTR_DESCRIPTION = "description"; //$NON-NLS-1$
+ private static final String ATTR_PALETTE_VISIBLE = "paletteVisible"; //$NON-NLS-1$
+ private static final String ATTR_HELPCATEGORY = "helpCategory"; //$NON-NLS-1$
+ private static final String ATTR_HELPCONTENS = "helpContents"; //$NON-NLS-1$
+ private static final String ATTR_FEEDBACKWIDTH = "feedbackWidth"; //$NON-NLS-1$
+ private static final String ATTR_FEEDBACKHEIGHT = "feedbackHeight"; //$NON-NLS-1$
+ private static final String ATTR_BORDER_VISIBLE = "borderVisible"; //$NON-NLS-1$
+ private static final String ATTR_FEEDBACKCONDITION = "feedbackCondition"; //$NON-NLS-1$
+ private static final String ATTR_GUIDE_TEXT = "guideText"; //$NON-NLS-1$
+ private static final String ATTR_SET_STYLE = "setStyle"; //$NON-NLS-1$
+ private static final String ATTR_UI_SELECTOR = "uiSelector"; //$NON-NLS-1$
+ private static final String ATTR_XPATH = "xpath"; //$NON-NLS-1$
+ private static final String ATTR_CHILDXPATH = "childXpath"; //$NON-NLS-1$
+ private static final String ATTR_IDS = "ids"; //$NON-NLS-1$
+ private static final String ATTR_EXCLUDE_IDS = "exclude-ids"; //$NON-NLS-1$
+ private static final String ATTR_PARENT_IDS = "parent-ids"; //$NON-NLS-1$
+ private static final String ATTR_EXCLUSIVE_GROUP = "exclusiveGroup"; //$NON-NLS-1$
+ private static final String ATTR_MIN = "min"; //$NON-NLS-1$
+ private static final String ATTR_MAX = "max"; //$NON-NLS-1$
+ private static final String ATTR_NAME = "name"; //$NON-NLS-1$
+ private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
+ private static final String ATTR_DEFAULT = "default"; //$NON-NLS-1$
+ private static final String ATTR_INITVALUE = "initValue"; //$NON-NLS-1$
+ private static final String ATTR_SELECTOR = "selector"; //$NON-NLS-1$
+ private static final String ATTR_NOT_SUPPORTED = "notsupported"; //$NON-NLS-1$
+ private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
+ private static final String ATTR_TARGET = "target"; //$NON-NLS-1$
+ private static final String ATTR_TARGETVALUE = "targetValue"; //$NON-NLS-1$
+ private static final String ATTR_TOOLTIP = "tooltip"; //$NON-NLS-1$
+ private static final String ATTR_ERROR = "error"; //$NON-NLS-1$
+ private static final String ATTR_EVENTTYPE = "eventType"; //$NON-NLS-1$
+
+ // private static final Namespace XSLT_NAMESPACE =
+ // new Namespace("xsl", "http://www.w3.org/1999/XSL/Transform"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ private static final String XSLT_TAG = "xsl"; //$NON-NLS-1$
+ private static final String XSLT_NAMESPACE = "http://www.w3.org/1999/XSL/Transform"; //$NON-NLS-1$
+ private static final String ELEM_STYLESHEET = "stylesheet"; //$NON-NLS-1$
+ private static final String ATTR_STYLESHEET_VERSION = "version"; //$NON-NLS-1$
+ private static final String VALUE_STYLESHEET_VERSION = "1.0"; //$NON-NLS-1$
+
+ private static final String PART_TYPE_DOC = "doc"; //$NON-NLS-1$
+ private static final String PART_TYPE_PAGE = "page"; //$NON-NLS-1$
+ private static final String PART_TYPE_WIDGET = "widget"; //$NON-NLS-1$
+
+ /**
+ * A {@link DescriptorManager}.
+ */
+ private DescriptorManager manager;
+
+ /**
+ * A xsl-for-output document.
+ */
+ private Document xslt;
+ private Element xslRoot;
+
+ /**
+ * Constructor.
+ *
+ * @param manager
+ * a {@link DescriptorManager}
+ */
+ public DescriptorReader(DescriptorManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * Gets a {@link Document}.
+ *
+ * @return a {@link Document}
+ */
+ public Document getXsltForOutput() {
+ return xslt;
+ }
+
+ /**
+ * Parses a descriptor XML.
+ *
+ * @param descriptorPath
+ * a path of descriptor XML
+ */
+ public void parse(URL descriptorPath) {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+
+ DocumentBuilder builder = null;
+ Document doc = null;
+
+ try {
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(descriptorPath.toURI().toString());
+ } catch (URISyntaxException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ }
+
+ xslRoot = doc.createElement("xsl:stylesheet");
+ xslRoot.setAttribute("xmlns:xsl", XSLT_NAMESPACE);
+ xslRoot.setAttribute(ATTR_STYLESHEET_VERSION, VALUE_STYLESHEET_VERSION);
+
+ if (doc != null && doc.getDocumentElement() != null) {
+ parseRoot(doc.getDocumentElement());
+ }
+
+ xslt = builder.newDocument();
+ xslt.appendChild(xslt.importNode(xslRoot, true));
+
+ // TODO: Temporary code. Expected to be simplified.
+ TransformerFactory transFactory = TransformerFactory.newInstance();
+ StringWriter stringwriter = new StringWriter();
+ try {
+ Transformer transformerx = transFactory.newTransformer();
+ transformerx.transform(new DOMSource(xslt), new StreamResult(stringwriter));
+ xslt = builder.parse(new StringBufferInputStream(stringwriter.toString()));
+ } catch (TransformerConfigurationException e1) {
+ e1.printStackTrace();
+ } catch (TransformerException e) {
+ e.printStackTrace();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Parses a root element of descriptor XML.
+ *
+ * @param root
+ * a root element
+ */
+ private void parseRoot(Element root) {
+ if (root == null) {
+ return;
+ }
+
+ NodeList elemList = root.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if (childNode instanceof Element) {
+ if (childNode.getNodeName().equals(ELEM_DOC)) {
+ parsePart((Element) childNode, new DocumentPartDescriptor());
+ } else if (childNode.getNodeName().equals(ELEM_PAGE)) {
+ parsePart((Element) childNode, new PagePartDescriptor());
+ } else if (childNode.getNodeName().equals(ELEM_WIDGET)) {
+ parsePart((Element) childNode, new WidgetPartDescriptor());
+ } else if (childNode.getNodeName().equals(ELEM_TYPES)) {
+ parseTypes((Element) childNode);
+ } else if (childNode.getNodeName().equals(ELEM_EVENTTYPES)) {
+ parseEventTypes((Element) childNode);
+ }
+ }
+ }
+ }
+
+ /**
+ * Parses a doc, page or widget element of descriptor XML.
+ *
+ * @param elem
+ * a doc, page or widget element
+ * @param part
+ * a {@link PartDescriptor}
+ */
+ private void parsePart(Element elem, PartDescriptor part) {
+ if (elem == null || part == null) {
+ return;
+ }
+
+ String id = elem.getAttribute(ATTR_ID);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String smallIcon = elem.getAttribute(ATTR_SMALLICON);
+ String icon16 = elem.getAttribute(ATTR_ICON_16);
+ String description = elem.getAttribute(ATTR_DESCRIPTION);
+ String paletteVisible = elem.getAttribute(ATTR_PALETTE_VISIBLE);
+ String helpCategory = elem.getAttribute(ATTR_HELPCATEGORY);
+ String helpContens = elem.getAttribute(ATTR_HELPCONTENS);
+ String width = elem.getAttribute(ATTR_FEEDBACKWIDTH);
+ String height = elem.getAttribute(ATTR_FEEDBACKHEIGHT);
+ String borderVisible = elem.getAttribute(ATTR_BORDER_VISIBLE);
+ String feedbackCondition = elem.getAttribute(ATTR_FEEDBACKCONDITION);
+ String guideText = elem.getAttribute(ATTR_GUIDE_TEXT);
+ String setStyle = elem.getAttribute(ATTR_SET_STYLE);
+ String uiSelector = elem.getAttribute(ATTR_UI_SELECTOR);
+ String xpath = elem.getAttribute(ATTR_XPATH);
+ String childXpath = elem.getAttribute(ATTR_CHILDXPATH);
+
+ boolean boolpaletteVisible = true;
+ if (paletteVisible != null) {
+ boolpaletteVisible = Boolean.parseBoolean(paletteVisible);
+ }
+ boolean boolBorderVisible = Boolean.parseBoolean(borderVisible);
+ boolean boolSetStyle = Boolean.parseBoolean(setStyle);
+
+ part.init(id, displayName, smallIcon, icon16, description,
+ boolpaletteVisible, helpCategory, helpContens, width, height,
+ boolBorderVisible, feedbackCondition, guideText, boolSetStyle,
+ uiSelector, xpath, childXpath);
+
+ if (part instanceof WidgetPartDescriptor) {
+ String categories = elem.getAttribute(ATTR_CATEGORY);
+ if (categories != null) {
+ String[] categoriesArray = categories
+ .split(BuilderConstants.COMMA);
+ ((WidgetPartDescriptor) part).setCategories(Arrays
+ .asList(categoriesArray));
+ }
+ }
+
+ boolean isNoRelation = true;
+ NodeList elemList1 = elem.getElementsByTagName(ELEM_RELATIONS);
+ for (int i = 0; i < elemList1.getLength(); i++) {
+ parseRelations((Element) elemList1.item(i), part);
+ isNoRelation = false;
+ }
+
+ // This code remains for compatibility.
+ if (isNoRelation) {
+ NodeList elemList = elem.getElementsByTagName(ELEM_CONTENT);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parseContent((Element) elemList.item(i), part);
+ }
+ }
+
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if (childNode instanceof Element) {
+ if (childNode.getNodeName().equals(ELEM_CONDITION)) {
+ parsePartCondition((Element) childNode, part);
+ } else if (childNode.getNodeName().equals(ELEM_PROPERTY)) {
+ parseProperty((Element) childNode, part);
+ } else if (childNode.getNodeName().equals(ELEM_EVENT)) {
+ parseEvent((Element) childNode, part);
+ } else if (childNode.getNodeName().equals(ELEM_XSL_FOR_OUTPUT)) {
+ parseXsltForOutput((Element) childNode, xslRoot);
+ }
+ }
+ }
+
+ //parseXsltForOutput(elem);
+
+ manager.addPartDescriptor(part);
+ }
+
+ /**
+ * Parses a relation element of descriptor XML.
+ *
+ * @param elem
+ * a relation element
+ * @param property
+ * a {@link PartDescriptor}
+ */
+ private void parseRelations(Element elem, PartDescriptor part) {
+ if (elem == null || part == null) {
+ return;
+ }
+
+ RelationDescriptor relation = part.getRelation();
+ if (relation == null) {
+ return;
+ }
+
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if (childNode instanceof Element) {
+ Element childElem = (Element) childNode;
+ if (childNode.getNodeName().equals(ELEM_PARENT)) {
+ String ids = childElem.getAttribute(ATTR_IDS);
+ relation.addParentPartIds(ids);
+ } else if (childNode.getNodeName().equals(ELEM_NOPARENT)) {
+ String ids = childElem.getAttribute(ATTR_IDS);
+ relation.addNoParentPartIds(ids);
+ } else if (childNode.getNodeName().equals(ELEM_CONTENT)) {
+ parseContent2(childElem, relation);
+ } else if (childNode.getNodeName().equals(ELEM_NOPARENT)) {
+ String ids = childElem.getAttribute(ATTR_IDS);
+ relation.addNoContentPartIds(ids);
+ }
+ }
+ }
+ }
+
+ /**
+ * Parses a content element of descriptor XML. This method remains for
+ * compatibility.
+ *
+ * @param elem
+ * a content element
+ * @param part
+ * a {@link PartDescriptor}
+ */
+ private void parseContent(Element elem, PartDescriptor part) {
+ if (elem == null || part == null) {
+ return;
+ }
+
+ RelationDescriptor relation = part.getRelation();
+ if (relation == null) {
+ return;
+ }
+
+ parseContent2(elem, relation);
+
+ String excludeIds = elem.getAttribute(ATTR_EXCLUDE_IDS);
+ String parentIds = elem.getAttribute(ATTR_PARENT_IDS);
+
+ if (excludeIds != null) {
+ relation.addNoContentPartIds(excludeIds);
+ }
+ if (parentIds != null) {
+ relation.addParentPartIds(parentIds);
+ }
+ }
+
+ /**
+ * Parses a content element of descriptor XML.
+ *
+ * @param elem
+ * a content element
+ * @param relation
+ * a {@link RelationDescriptor}
+ */
+ private void parseContent2(Element elem, RelationDescriptor relation) {
+ if (elem == null || relation == null) {
+ return;
+ }
+
+ String ids = elem.getAttribute(ATTR_IDS);
+ String type = elem.getAttribute(ATTR_TYPE);
+ String min = elem.getAttribute(ATTR_MIN);
+ String max = elem.getAttribute(ATTR_MAX);
+ String exclusiveGroup = elem.getAttribute(ATTR_EXCLUSIVE_GROUP);
+ ContentDescriptor.PartType partType = ContentDescriptor.PartType.ANY_PART;
+
+ if (type != null && !type.isEmpty()) {
+ if (type.equals(PART_TYPE_DOC)) {
+ partType = ContentDescriptor.PartType.DOCUMENT_PART;
+ } else if (type.equals(PART_TYPE_PAGE)) {
+ partType = ContentDescriptor.PartType.PAGE_PART;
+ } else if (type.equals(PART_TYPE_WIDGET)) {
+ partType = ContentDescriptor.PartType.WIDGET_PART;
+ }
+ }
+
+ ContentDescriptor content = new ContentDescriptor();
+ content.setPartType(partType);
+ if (ids != null) {
+ content.setPartIds(ids);
+ }
+ if (min != null && !min.isEmpty()) {
+ content.setMin(Integer.valueOf(min).intValue());
+ }
+ if (max != null && !max.isEmpty()) {
+ content.setMax(Integer.valueOf(max).intValue());
+ }
+ if (exclusiveGroup != null && !exclusiveGroup.isEmpty()) {
+ content.setExclusiveGroup(exclusiveGroup);
+ }
+ relation.addContent(content);
+ }
+
+ /**
+ * Parses a condition element of descriptor XML.
+ *
+ * @param elem
+ * a property element
+ * @param part
+ * a {@link PartDescriptor}
+ */
+ private void parsePartCondition(Element elem, PartDescriptor part) {
+ if (elem == null || part == null) {
+ return;
+ }
+
+ String name = elem.getAttribute(ATTR_NAME);
+ String value = elem.getAttribute(ATTR_VALUE);
+ String target = elem.getAttribute(ATTR_TARGET);
+ String targetValue = elem.getAttribute(ATTR_TARGETVALUE);
+
+ PartConditionDescriptor condition = new PartConditionDescriptor(name,
+ value, target, targetValue);
+ part.addConditionDescriptor(condition);
+ }
+
+ /**
+ * Parses a property element of descriptor XML.
+ *
+ * @param elem
+ * a property element
+ * @param part
+ * a {@link PartDescriptor}
+ */
+ private void parseProperty(Element elem, PartDescriptor part) {
+ if (elem == null || part == null) {
+ return;
+ }
+
+ String notsupported = elem.getAttribute(ATTR_NOT_SUPPORTED);
+ if (notsupported != null && notsupported.equals(BuilderConstants.TRUE)) {
+ return;
+ }
+
+ String name = elem.getAttribute(ATTR_NAME);
+ String type = elem.getAttribute(ATTR_TYPE);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String tooltip = elem.getAttribute(ATTR_TOOLTIP);
+ String defaultValue = elem.getAttribute(ATTR_DEFAULT);
+ String initValue = elem.getAttribute(ATTR_INITVALUE);
+ String category = elem.getAttribute(ATTR_CATEGORY);
+ String xpath = elem.getAttribute(ATTR_XPATH);
+
+ if (tooltip == null) {
+ tooltip = displayName;
+ } else {
+ tooltip = displayName + BuilderConstants.SPACE
+ + BuilderConstants.DASH + BuilderConstants.SPACE + tooltip;
+ }
+
+ PropertyDescriptor property = new PropertyDescriptor(name, type,
+ displayName, tooltip, defaultValue, initValue, category, xpath,
+ manager);
+ part.addPropertyDescriptor(property);
+
+ if (TypeDescriptor.ID_OF_GROUP.equals(type)
+ || TypeDescriptor.ID_OF_GROUP_TEXT.equals(type)
+ || TypeDescriptor.ID_OF_GROUP_POSITION.equals(type)) {
+ NodeList elemList = elem.getElementsByTagName(ELEM_PROPERTY);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parseChildProperty((Element) elemList.item(i), property);
+ }
+ }
+
+ NodeList elemList = elem.getElementsByTagName(ELEM_CONDITION);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parseCondition((Element) elemList.item(i), property);
+ }
+ }
+
+ /**
+ * Parses a child property element of descriptor XML.
+ *
+ * @param elem
+ * a child property
+ * @param property
+ * a {@link PropertyDescriptor}
+ */
+ private void parseChildProperty(Element elem, PropertyDescriptor property) {
+ if (elem == null || property == null) {
+ return;
+ }
+
+ String name = elem.getAttribute(ATTR_NAME);
+ String type = elem.getAttribute(ATTR_TYPE);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String tooltip = elem.getAttribute(ATTR_TOOLTIP);
+ String defaultValue = elem.getAttribute(ATTR_DEFAULT);
+ String initValue = elem.getAttribute(ATTR_INITVALUE);
+ String category = elem.getAttribute(ATTR_CATEGORY);
+ String xpath = elem.getAttribute(ATTR_XPATH);
+ String selector = elem.getAttribute(ATTR_SELECTOR);
+
+ PropertyDescriptor childProperty = new ChildPropertyDescriptor(name,
+ type, displayName, tooltip, defaultValue, initValue, category,
+ xpath, selector, manager);
+ property.addChildPropertyDescriptor(childProperty);
+
+ NodeList elemList = elem.getElementsByTagName(ELEM_CONDITION);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parseCondition((Element) elemList.item(i), childProperty);
+ }
+ }
+
+ /**
+ * Parses a condition element of descriptor XML.
+ *
+ * @param elem
+ * a condition element
+ * @param property
+ * a {@link PropertyDescriptor}
+ */
+ private void parseCondition(Element elem, PropertyDescriptor property) {
+ if (elem == null || property == null) {
+ return;
+ }
+
+ String name = elem.getAttribute(ATTR_NAME);
+ String value = elem.getAttribute(ATTR_VALUE);
+ String target = elem.getAttribute(ATTR_TARGET);
+ String targetValue = elem.getAttribute(ATTR_TARGETVALUE);
+ String error = elem.getAttribute(ATTR_ERROR);
+
+ PropertyConditionDescriptor condition = new PropertyConditionDescriptor(
+ name, value, target, targetValue, error);
+ property.addConditionDescriptor(condition);
+ }
+
+ /**
+ * Parses an event element of descriptor XML.
+ *
+ * @param elem
+ * an event element
+ * @param part
+ * a {@link PartDescriptor}
+ */
+ private void parseEvent(Element elem, PartDescriptor part) {
+ if (elem == null || part == null) {
+ return;
+ }
+
+ String name = elem.getAttribute(ATTR_NAME);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String eventType = elem.getAttribute(ATTR_EVENTTYPE);
+ EventDescriptor event = new EventDescriptor(name, displayName,
+ eventType, manager);
+ part.addEventDescriptor(event);
+ }
+
+ /**
+ * Parses a types element of descriptor XML.
+ *
+ * @param elem
+ * a types element
+ */
+ private void parseTypes(Element elem) {
+ if (elem == null) {
+ return;
+ }
+
+ NodeList elemList = elem.getElementsByTagName(ELEM_TYPE);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parseType((Element) elemList.item(i));
+ }
+ }
+
+ /**
+ * Parses a type element of descriptor XML.
+ *
+ * @param elem
+ * a type element
+ */
+ private void parseType(Element elem) {
+ if (elem == null) {
+ return;
+ }
+
+ String id = elem.getAttribute(ATTR_ID);
+
+ TypeDescriptor type = manager.getTypeDescriptor(id);
+
+ if (type == null) {
+ type = new TypeDescriptor(id);
+ manager.addTypeDescriptor(type);
+ }
+
+ NodeList elemList = elem.getElementsByTagName(ELEM_CONSTANT);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ type.addAvailableConstant(parseConstant((Element) elemList.item(i)));
+ }
+ }
+
+ /**
+ * Parses a constant element of descriptor XML.
+ *
+ * @param elem
+ * a constant element
+ */
+ private ConstantDescriptor parseConstant(Element elem) {
+ if (elem == null) {
+ return null;
+ }
+
+ String value = elem.getAttribute(ATTR_VALUE);
+ String displayName = elem.getAttribute(ATTR_DISPLAYNAME);
+ String icon = elem.getAttribute(ATTR_ICON);
+
+ if (displayName == null) {
+ displayName = value;
+ }
+
+ return new ConstantDescriptor(value, displayName, icon);
+ }
+
+ /**
+ * Parses an eventTypes element of descriptor XML.
+ *
+ * @param elem
+ * an eventTypes element
+ */
+ private void parseEventTypes(Element elem) {
+ if (elem == null) {
+ return;
+ }
+
+ NodeList elemList = elem.getElementsByTagName(ELEM_EVENTTYPE);
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parseEventType((Element) elemList.item(i));
+ }
+ }
+
+ /**
+ * Parses an eventType element of descriptor XML.
+ *
+ * @param elem
+ * an eventType element
+ */
+ private void parseEventType(Element elem) {
+ if (elem == null) {
+ return;
+ }
+
+ String id = elem.getAttribute(ATTR_ID);
+ if (manager.getEventTypeDescriptor(id) != null) {
+ return;
+ }
+
+ EventTypeDescriptor eventType = new EventTypeDescriptor(id);
+
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if (childNode instanceof Element) {
+ Element childElem = (Element) childNode;
+ if (childNode.getNodeName().equals(ELEM_DEFAULTCODE)) {
+ eventType.setDefaultCode(((Element) elemList.item(i))
+ .getTextContent());
+ } else if (childNode.getNodeName().equals(ELEM_PARAM)) {
+ eventType
+ .addEventParameter(parseParameter((Element) elemList
+ .item(i)));
+ }
+ }
+ }
+
+ manager.addEventTypeDescriptor(eventType);
+ }
+
+ /**
+ * Parses a param element of descriptor XML.
+ *
+ * @param elem
+ * a param element
+ */
+ private EventParamDescriptor parseParameter(Element elem) {
+ if (elem == null) {
+ return null;
+ }
+
+ String name = elem.getAttribute(ATTR_NAME);
+ String type = elem.getAttribute(ATTR_TYPE);
+
+ return new EventParamDescriptor(name, type);
+ }
+
+ /**
+ * Parses a xsl-for-output element of descriptor XML.
+ *
+ * @param elem
+ * a xsl-for-output element
+ */
+ private void parseXsltForOutput(Element elem, Element xslRoot) {
+ if (elem == null) {
+ return;
+ }
+
+ NodeList elemList2 = elem.getChildNodes();
+ for (int j = 0; j < elemList2.getLength(); j++) {
+ Node childNode = elemList2.item(j);
+ if (childNode instanceof Element) {
+ xslRoot.appendChild(childNode);
+ }
+ }
+ }
}
+++ /dev/null
-/*
- * UI Builder
- *
- * Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Contributors:
- * - S-Core Co., Ltd
- *
- */
-
-
-package org.tizen.webuibuilder.model.io;
-
-import java.net.URL;
-import java.util.Arrays;
-
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-import org.dom4j.Namespace;
-import org.dom4j.QName;
-import org.dom4j.io.SAXReader;
-import org.tizen.webuibuilder.BuilderConstants;
-import org.tizen.webuibuilder.model.descriptors.ChildPropertyDescriptor;
-import org.tizen.webuibuilder.model.descriptors.ConstantDescriptor;
-import org.tizen.webuibuilder.model.descriptors.ContentDescriptor;
-import org.tizen.webuibuilder.model.descriptors.DescriptorManager;
-import org.tizen.webuibuilder.model.descriptors.DocumentPartDescriptor;
-import org.tizen.webuibuilder.model.descriptors.EventDescriptor;
-import org.tizen.webuibuilder.model.descriptors.EventParamDescriptor;
-import org.tizen.webuibuilder.model.descriptors.EventTypeDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PagePartDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PartConditionDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PartDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PropertyConditionDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PropertyDescriptor;
-import org.tizen.webuibuilder.model.descriptors.RelationDescriptor;
-import org.tizen.webuibuilder.model.descriptors.TypeDescriptor;
-import org.tizen.webuibuilder.model.descriptors.WidgetPartDescriptor;
-
-
-/**
- * A descriptor reader.
- */
-public class DescriptorReader_ver_1 {
-
- // Element name
- private static final String ELEM_DOC = "doc"; //$NON-NLS-1$
- private static final String ELEM_PAGE = "page"; //$NON-NLS-1$
- private static final String ELEM_WIDGET = "widget"; //$NON-NLS-1$
- private static final String ELEM_CONTENT = "content"; //$NON-NLS-1$
- private static final String ELEM_NOCONTENT = "nocontent"; //$NON-NLS-1$
- private static final String ELEM_PARENT = "parent"; //$NON-NLS-1$
- private static final String ELEM_NOPARENT = "noparent"; //$NON-NLS-1$
- private static final String ELEM_RELATIONS = "relations"; //$NON-NLS-1$
- private static final String ELEM_PROPERTY = "property"; //$NON-NLS-1$
- private static final String ELEM_CONDITION = "condition"; //$NON-NLS-1$
- private static final String ELEM_EVENT = "event"; //$NON-NLS-1$
- private static final String ELEM_XSL_FOR_OUTPUT = "xsl-for-output"; //$NON-NLS-1$
- private static final String ELEM_TYPES = "types"; //$NON-NLS-1$
- private static final String ELEM_TYPE = "type"; //$NON-NLS-1$
- private static final String ELEM_CONSTANT = "constant"; //$NON-NLS-1$
- private static final String ELEM_EVENTTYPES = "eventTypes"; //$NON-NLS-1$
- private static final String ELEM_EVENTTYPE = "eventType"; //$NON-NLS-1$
- private static final String ELEM_DEFAULTCODE = "defaultCode"; //$NON-NLS-1$
- private static final String ELEM_PARAM = "param"; //$NON-NLS-1$
-
- // Attribute name
- private static final String ATTR_ID = "id"; //$NON-NLS-1$
- private static final String ATTR_DISPLAYNAME = "displayName"; //$NON-NLS-1$
- private static final String ATTR_SMALLICON = "smallIcon"; //$NON-NLS-1$
- private static final String ATTR_ICON_16 = "icon.16"; //$NON-NLS-1$
- private static final String ATTR_CATEGORY = "category"; //$NON-NLS-1$
- private static final String ATTR_DESCRIPTION = "description"; //$NON-NLS-1$
- private static final String ATTR_PALETTE_VISIBLE = "paletteVisible"; //$NON-NLS-1$
- private static final String ATTR_HELPCATEGORY = "helpCategory"; //$NON-NLS-1$
- private static final String ATTR_HELPCONTENS = "helpContents"; //$NON-NLS-1$
- private static final String ATTR_FEEDBACKWIDTH = "feedbackWidth"; //$NON-NLS-1$
- private static final String ATTR_FEEDBACKHEIGHT = "feedbackHeight"; //$NON-NLS-1$
- private static final String ATTR_BORDER_VISIBLE = "borderVisible"; //$NON-NLS-1$
- private static final String ATTR_FEEDBACKCONDITION = "feedbackCondition"; //$NON-NLS-1$
- private static final String ATTR_GUIDE_TEXT = "guideText"; //$NON-NLS-1$
- private static final String ATTR_SET_STYLE = "setStyle"; //$NON-NLS-1$
- private static final String ATTR_UI_SELECTOR = "uiSelector"; //$NON-NLS-1$
- private static final String ATTR_XPATH = "xpath"; //$NON-NLS-1$
- private static final String ATTR_CHILDXPATH = "childXpath"; //$NON-NLS-1$
- private static final String ATTR_IDS = "ids"; //$NON-NLS-1$
- private static final String ATTR_EXCLUDE_IDS = "exclude-ids"; //$NON-NLS-1$
- private static final String ATTR_PARENT_IDS = "parent-ids"; //$NON-NLS-1$
- private static final String ATTR_EXCLUSIVE_GROUP = "exclusiveGroup"; //$NON-NLS-1$
- private static final String ATTR_MIN = "min"; //$NON-NLS-1$
- private static final String ATTR_MAX = "max"; //$NON-NLS-1$
- private static final String ATTR_NAME = "name"; //$NON-NLS-1$
- private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
- private static final String ATTR_DEFAULT = "default"; //$NON-NLS-1$
- private static final String ATTR_INITVALUE = "initValue"; //$NON-NLS-1$
- private static final String ATTR_SELECTOR = "selector"; //$NON-NLS-1$
- private static final String ATTR_NOT_SUPPORTED = "notsupported"; //$NON-NLS-1$
- private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
- private static final String ATTR_TARGET = "target"; //$NON-NLS-1$
- private static final String ATTR_TARGETVALUE = "targetValue"; //$NON-NLS-1$
- private static final String ATTR_TOOLTIP = "tooltip"; //$NON-NLS-1$
- private static final String ATTR_ERROR = "error"; //$NON-NLS-1$
- private static final String ATTR_EVENTTYPE = "eventType"; //$NON-NLS-1$
-
- private static final Namespace XSLT_NAMESPACE =
- new Namespace("xsl", "http://www.w3.org/1999/XSL/Transform"); //$NON-NLS-1$ //$NON-NLS-2$
- private static final String ELEM_STYLESHEET = "stylesheet"; //$NON-NLS-1$
- private static final String ATTR_STYLESHEET_VERSION = "version"; //$NON-NLS-1$
- private static final String VALUE_STYLESHEET_VERSION = "1.0"; //$NON-NLS-1$
-
- private static final String PART_TYPE_DOC = "doc"; //$NON-NLS-1$
- private static final String PART_TYPE_PAGE = "page"; //$NON-NLS-1$
- private static final String PART_TYPE_WIDGET = "widget"; //$NON-NLS-1$
-
- /**
- * A {@link DescriptorManager}.
- */
- private DescriptorManager manager;
-
- /**
- * A xsl-for-output document.
- */
- private Document xslt;
-
- /**
- * Constructor.
- *
- * @param manager
- * a {@link DescriptorManager}
- */
- public DescriptorReader_ver_1(DescriptorManager manager) {
- this.manager = manager;
- this.xslt = DocumentHelper.createDocument();
- xslt.addElement(new QName(ELEM_STYLESHEET, XSLT_NAMESPACE))
- .addAttribute(ATTR_STYLESHEET_VERSION, VALUE_STYLESHEET_VERSION);
- }
-
- /**
- * Gets a {@link Document}.
- *
- * @return a {@link Document}
- */
- public Document getXsltForOutput() {
- return xslt;
- }
-
- /**
- * Parses a descriptor XML.
- *
- * @param descriptorPath
- * a path of descriptor XML
- */
- public void parse(URL descriptorPath) {
- SAXReader reader = new SAXReader();
- Document doc = null;
-
- try {
- doc = reader.read(descriptorPath);
- } catch (DocumentException e) {
- e.printStackTrace();
- }
-
- if (doc != null && doc.getRootElement() != null) {
- parseRoot(doc.getRootElement());
- }
- }
-
- /**
- * Parses a root element of descriptor XML.
- *
- * @param root
- * a root element
- */
- private void parseRoot(Element root) {
- if (root == null) {
- return;
- }
-
- for (Object childObj : root.elements(ELEM_DOC)) {
- parsePart((Element) childObj, new DocumentPartDescriptor());
- }
- for (Object childObj : root.elements(ELEM_PAGE)) {
- parsePart((Element) childObj, new PagePartDescriptor());
- }
- for (Object childObj : root.elements(ELEM_WIDGET)) {
- parsePart((Element) childObj, new WidgetPartDescriptor());
- }
- for (Object childObj : root.elements(ELEM_TYPES)) {
- parseTypes((Element) childObj);
- }
- for (Object childObj : root.elements(ELEM_EVENTTYPES)) {
- parseEventTypes((Element) childObj);
- }
- }
-
- /**
- * Parses a doc, page or widget element of descriptor XML.
- *
- * @param elem
- * a doc, page or widget element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parsePart(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String id = elem.attributeValue(ATTR_ID);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String smallIcon = elem.attributeValue(ATTR_SMALLICON);
- String icon16 = elem.attributeValue(ATTR_ICON_16);
- String description = elem.attributeValue(ATTR_DESCRIPTION);
- String paletteVisible = elem.attributeValue(ATTR_PALETTE_VISIBLE);
- String helpCategory = elem.attributeValue(ATTR_HELPCATEGORY);
- String helpContens = elem.attributeValue(ATTR_HELPCONTENS);
- String width = elem.attributeValue(ATTR_FEEDBACKWIDTH);
- String height = elem.attributeValue(ATTR_FEEDBACKHEIGHT);
- String borderVisible = elem.attributeValue(ATTR_BORDER_VISIBLE);
- String feedbackCondition = elem.attributeValue(ATTR_FEEDBACKCONDITION);
- String guideText = elem.attributeValue(ATTR_GUIDE_TEXT);
- String setStyle = elem.attributeValue(ATTR_SET_STYLE);
- String uiSelector = elem.attributeValue(ATTR_UI_SELECTOR);
- String xpath = elem.attributeValue(ATTR_XPATH);
- String childXpath = elem.attributeValue(ATTR_CHILDXPATH);
-
- boolean boolpaletteVisible = true;
- if (paletteVisible != null) {
- boolpaletteVisible = Boolean.parseBoolean(paletteVisible);
- }
- boolean boolBorderVisible = Boolean.parseBoolean(borderVisible);
- boolean boolSetStyle = Boolean.parseBoolean(setStyle);
-
- part.init(id, displayName, smallIcon, icon16, description, boolpaletteVisible,
- helpCategory, helpContens, width, height, boolBorderVisible, feedbackCondition,
- guideText, boolSetStyle, uiSelector, xpath, childXpath);
-
- if (part instanceof WidgetPartDescriptor) {
- String categories = elem.attributeValue(ATTR_CATEGORY);
- if (categories != null) {
- String[] categoriesArray = categories.split(BuilderConstants.COMMA);
- ((WidgetPartDescriptor) part).setCategories(Arrays.asList(categoriesArray));
- }
- }
-
- boolean isNoRelation = true;
- for (Object contentObj : elem.elements(ELEM_RELATIONS)) {
- parseRelations((Element) contentObj, part);
- isNoRelation = false;
- }
-
- // This code remains for compatibility.
- if (isNoRelation) {
- for (Object contentObj : elem.elements(ELEM_CONTENT)) {
- parseContent((Element) contentObj, part);
- }
- }
-
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parsePartCondition((Element) childObj, part);
- }
-
- for (Object propertyObj : elem.elements(ELEM_PROPERTY)) {
- parseProperty((Element) propertyObj, part);
- }
-
- for (Object contentObj : elem.elements(ELEM_EVENT)) {
- parseEvent((Element) contentObj, part);
- }
-
- parseXsltForOutput(elem);
-
- manager.addPartDescriptor(part);
- }
-
- /**
- * Parses a relation element of descriptor XML.
- *
- * @param elem
- * a relation element
- * @param property
- * a {@link PartDescriptor}
- */
- private void parseRelations(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- RelationDescriptor relation = part.getRelation();
- if (relation == null) {
- return;
- }
-
- for (Object childObj : elem.elements(ELEM_PARENT)) {
- Element childElem = (Element) childObj;
- String ids = childElem.attributeValue(ATTR_IDS);
-
- relation.addParentPartIds(ids);
- }
-
- for (Object childObj : elem.elements(ELEM_NOPARENT)) {
- Element childElem = (Element) childObj;
- String ids = childElem.attributeValue(ATTR_IDS);
-
- relation.addNoParentPartIds(ids);
- }
-
- for (Object childObj : elem.elements(ELEM_CONTENT)) {
- Element childElem = (Element) childObj;
- parseContent2(childElem, relation);
- }
-
- for (Object childObj : elem.elements(ELEM_NOCONTENT)) {
- Element childElem = (Element) childObj;
- String ids = childElem.attributeValue(ATTR_IDS);
-
- relation.addNoContentPartIds(ids);
- }
- }
-
- /**
- * Parses a content element of descriptor XML. This method remains for compatibility.
- *
- * @param elem
- * a content element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parseContent(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- RelationDescriptor relation = part.getRelation();
- if (relation == null) {
- return;
- }
-
- parseContent2(elem, relation);
-
- String excludeIds = elem.attributeValue(ATTR_EXCLUDE_IDS);
- String parentIds = elem.attributeValue(ATTR_PARENT_IDS);
-
- if (excludeIds != null) {
- relation.addNoContentPartIds(excludeIds);
- }
- if (parentIds != null) {
- relation.addParentPartIds(parentIds);
- }
- }
-
- /**
- * Parses a content element of descriptor XML.
- *
- * @param elem
- * a content element
- * @param relation
- * a {@link RelationDescriptor}
- */
- private void parseContent2(Element elem, RelationDescriptor relation) {
- if (elem == null || relation == null) {
- return;
- }
-
- String ids = elem.attributeValue(ATTR_IDS);
- String type = elem.attributeValue(ATTR_TYPE);
- String min = elem.attributeValue(ATTR_MIN);
- String max = elem.attributeValue(ATTR_MAX);
- String exclusiveGroup = elem.attributeValue(ATTR_EXCLUSIVE_GROUP);
- ContentDescriptor.PartType partType = ContentDescriptor.PartType.ANY_PART;
-
- if (type != null) {
- if (type.equals(PART_TYPE_DOC)) {
- partType = ContentDescriptor.PartType.DOCUMENT_PART;
- } else if (type.equals(PART_TYPE_PAGE)) {
- partType = ContentDescriptor.PartType.PAGE_PART;
- } else if (type.equals(PART_TYPE_WIDGET)) {
- partType = ContentDescriptor.PartType.WIDGET_PART;
- }
- }
-
- ContentDescriptor content = new ContentDescriptor();
- content.setPartType(partType);
- if (ids != null) {
- content.setPartIds(ids);
- }
- if (min != null) {
- content.setMin(Integer.valueOf(min).intValue());
- }
- if (max != null) {
- content.setMax(Integer.valueOf(max).intValue());
- }
- if (exclusiveGroup != null) {
- content.setExclusiveGroup(exclusiveGroup);
- }
- relation.addContent(content);
- }
-
- /**
- * Parses a condition element of descriptor XML.
- *
- * @param elem
- * a property element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parsePartCondition(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String value = elem.attributeValue(ATTR_VALUE);
- String target = elem.attributeValue(ATTR_TARGET);
- String targetValue = elem.attributeValue(ATTR_TARGETVALUE);
-
- PartConditionDescriptor condition =
- new PartConditionDescriptor(name, value, target, targetValue);
- part.addConditionDescriptor(condition);
- }
-
- /**
- * Parses a property element of descriptor XML.
- *
- * @param elem
- * a property element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parseProperty(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String notsupported = elem.attributeValue(ATTR_NOT_SUPPORTED);
- if (notsupported != null && notsupported.equals(BuilderConstants.TRUE)) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String tooltip = elem.attributeValue(ATTR_TOOLTIP);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
- String category = elem.attributeValue(ATTR_CATEGORY);
- String xpath = elem.attributeValue(ATTR_XPATH);
-
- if (tooltip == null) {
- tooltip = displayName;
- } else {
- tooltip =
- displayName + BuilderConstants.SPACE + BuilderConstants.DASH
- + BuilderConstants.SPACE + tooltip;
- }
-
- PropertyDescriptor property =
- new PropertyDescriptor(name, type, displayName, tooltip, defaultValue, initValue,
- category, xpath, manager);
- part.addPropertyDescriptor(property);
-
- if (TypeDescriptor.ID_OF_GROUP.equals(type) || TypeDescriptor.ID_OF_GROUP_TEXT.equals(type)
- || TypeDescriptor.ID_OF_GROUP_POSITION.equals(type)) {
- for (Object propertyObj : elem.elements(ELEM_PROPERTY)) {
- parseChildProperty((Element) propertyObj, property);
- }
- }
-
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parseCondition((Element) childObj, property);
- }
- }
-
- /**
- * Parses a child property element of descriptor XML.
- *
- * @param elem
- * a child property
- * @param property
- * a {@link PropertyDescriptor}
- */
- private void parseChildProperty(Element elem, PropertyDescriptor property) {
- if (elem == null || property == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String tooltip = elem.attributeValue(ATTR_TOOLTIP);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
- String category = elem.attributeValue(ATTR_CATEGORY);
- String xpath = elem.attributeValue(ATTR_XPATH);
- String selector = elem.attributeValue(ATTR_SELECTOR);
-
- PropertyDescriptor childProperty =
- new ChildPropertyDescriptor(name, type, displayName, tooltip, defaultValue,
- initValue, category, xpath, selector, manager);
- property.addChildPropertyDescriptor(childProperty);
-
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parseCondition((Element) childObj, childProperty);
- }
- }
-
- /**
- * Parses a condition element of descriptor XML.
- *
- * @param elem
- * a condition element
- * @param property
- * a {@link PropertyDescriptor}
- */
- private void parseCondition(Element elem, PropertyDescriptor property) {
- if (elem == null || property == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String value = elem.attributeValue(ATTR_VALUE);
- String target = elem.attributeValue(ATTR_TARGET);
- String targetValue = elem.attributeValue(ATTR_TARGETVALUE);
- String error = elem.attributeValue(ATTR_ERROR);
-
- PropertyConditionDescriptor condition =
- new PropertyConditionDescriptor(name, value, target, targetValue, error);
- property.addConditionDescriptor(condition);
- }
-
- /**
- * Parses an event element of descriptor XML.
- *
- * @param elem
- * an event element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parseEvent(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String eventType = elem.attributeValue(ATTR_EVENTTYPE);
- EventDescriptor event = new EventDescriptor(name, displayName, eventType, manager);
- part.addEventDescriptor(event);
- }
-
- /**
- * Parses a types element of descriptor XML.
- *
- * @param elem
- * a types element
- */
- private void parseTypes(Element elem) {
- if (elem == null) {
- return;
- }
-
- for (Object childObj : elem.elements(ELEM_TYPE)) {
- parseType((Element) childObj);
- }
- }
-
- /**
- * Parses a type element of descriptor XML.
- *
- * @param elem
- * a type element
- */
- private void parseType(Element elem) {
- if (elem == null) {
- return;
- }
-
- String id = elem.attributeValue(ATTR_ID);
-
- TypeDescriptor type = manager.getTypeDescriptor(id);
-
- if (type == null) {
- type = new TypeDescriptor(id);
- manager.addTypeDescriptor(type);
- }
-
- for (Object childObj : elem.elements(ELEM_CONSTANT)) {
- type.addAvailableConstant(parseConstant((Element) childObj));
- }
-
- }
-
- /**
- * Parses a constant element of descriptor XML.
- *
- * @param elem
- * a constant element
- */
- private ConstantDescriptor parseConstant(Element elem) {
- if (elem == null) {
- return null;
- }
-
- String value = elem.attributeValue(ATTR_VALUE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- if (displayName == null) {
- displayName = value;
- }
-
- return new ConstantDescriptor(value, displayName);
- }
-
- /**
- * Parses an eventTypes element of descriptor XML.
- *
- * @param elem
- * an eventTypes element
- */
- private void parseEventTypes(Element elem) {
- if (elem == null) {
- return;
- }
-
- for (Object childObj : elem.elements(ELEM_EVENTTYPE)) {
- parseEventType((Element) childObj);
- }
- }
-
- /**
- * Parses an eventType element of descriptor XML.
- *
- * @param elem
- * an eventType element
- */
- private void parseEventType(Element elem) {
- if (elem == null) {
- return;
- }
-
- String id = elem.attributeValue(ATTR_ID);
- if (manager.getEventTypeDescriptor(id) != null) {
- return;
- }
-
- EventTypeDescriptor eventType = new EventTypeDescriptor(id);
-
- for (Object childObj : elem.elements(ELEM_DEFAULTCODE)) {
- eventType.setDefaultCode(((Element) childObj).getText());
- }
-
- for (Object childObj : elem.elements(ELEM_PARAM)) {
- eventType.addEventParameter(parseParameter((Element) childObj));
- }
-
- manager.addEventTypeDescriptor(eventType);
- }
-
- /**
- * Parses a param element of descriptor XML.
- *
- * @param elem
- * a param element
- */
- private EventParamDescriptor parseParameter(Element elem) {
- if (elem == null) {
- return null;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
-
- return new EventParamDescriptor(name, type);
- }
-
- /**
- * Parses a xsl-for-output element of descriptor XML.
- *
- * @param elem
- * a xsl-for-output element
- */
- private void parseXsltForOutput(Element elem) {
- if (elem == null) {
- return;
- }
-
- Element code = elem.element(ELEM_XSL_FOR_OUTPUT);
- if (code != null) {
- Element child = null;
- for (Object nodeObj : code.elements()) {
- child = (Element) nodeObj;
- xslt.getRootElement().add(child.createCopy());
- }
- }
- }
-
-}
+++ /dev/null
-/*
- * UI Builder
- *
- * Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Contributors:
- * - S-Core Co., Ltd
- *
- */
-
-
-package org.tizen.webuibuilder.model.io;
-
-import java.net.URL;
-import java.util.Arrays;
-
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-import org.dom4j.Namespace;
-import org.dom4j.QName;
-import org.dom4j.io.SAXReader;
-import org.tizen.webuibuilder.BuilderConstants;
-import org.tizen.webuibuilder.model.descriptors.ChildPropertyDescriptor;
-import org.tizen.webuibuilder.model.descriptors.ConstantDescriptor;
-import org.tizen.webuibuilder.model.descriptors.ContentDescriptor;
-import org.tizen.webuibuilder.model.descriptors.DescriptorManager;
-import org.tizen.webuibuilder.model.descriptors.DocumentPartDescriptor;
-import org.tizen.webuibuilder.model.descriptors.EventDescriptor;
-import org.tizen.webuibuilder.model.descriptors.EventParamDescriptor;
-import org.tizen.webuibuilder.model.descriptors.EventTypeDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PagePartDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PartConditionDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PartDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PropertyConditionDescriptor;
-import org.tizen.webuibuilder.model.descriptors.PropertyDescriptor;
-import org.tizen.webuibuilder.model.descriptors.RelationDescriptor;
-import org.tizen.webuibuilder.model.descriptors.TypeDescriptor;
-import org.tizen.webuibuilder.model.descriptors.WidgetPartDescriptor;
-
-
-/**
- * A descriptor reader.
- */
-public class DescriptorReader_ver_2 {
-
- // Element name
- private static final String ELEM_DOC = "doc"; //$NON-NLS-1$
- private static final String ELEM_PAGE = "page"; //$NON-NLS-1$
- private static final String ELEM_WIDGET = "widget"; //$NON-NLS-1$
- private static final String ELEM_CONTENT = "content"; //$NON-NLS-1$
- private static final String ELEM_NOCONTENT = "nocontent"; //$NON-NLS-1$
- private static final String ELEM_PARENT = "parent"; //$NON-NLS-1$
- private static final String ELEM_NOPARENT = "noparent"; //$NON-NLS-1$
- private static final String ELEM_RELATIONS = "relations"; //$NON-NLS-1$
- private static final String ELEM_PROPERTY = "property"; //$NON-NLS-1$
- private static final String ELEM_CONDITION = "condition"; //$NON-NLS-1$
- private static final String ELEM_EVENT = "event"; //$NON-NLS-1$
- private static final String ELEM_XSL_FOR_OUTPUT = "xsl-for-output"; //$NON-NLS-1$
- private static final String ELEM_TYPES = "types"; //$NON-NLS-1$
- private static final String ELEM_TYPE = "type"; //$NON-NLS-1$
- private static final String ELEM_CONSTANT = "constant"; //$NON-NLS-1$
- private static final String ELEM_EVENTTYPES = "eventTypes"; //$NON-NLS-1$
- private static final String ELEM_EVENTTYPE = "eventType"; //$NON-NLS-1$
- private static final String ELEM_DEFAULTCODE = "defaultCode"; //$NON-NLS-1$
- private static final String ELEM_PARAM = "param"; //$NON-NLS-1$
-
- // Attribute name
- private static final String ATTR_ID = "id"; //$NON-NLS-1$
- private static final String ATTR_DISPLAYNAME = "displayName"; //$NON-NLS-1$
- private static final String ATTR_SMALLICON = "smallIcon"; //$NON-NLS-1$
- private static final String ATTR_ICON_16 = "icon.16"; //$NON-NLS-1$
- private static final String ATTR_CATEGORY = "category"; //$NON-NLS-1$
- private static final String ATTR_DESCRIPTION = "description"; //$NON-NLS-1$
- private static final String ATTR_PALETTE_VISIBLE = "paletteVisible"; //$NON-NLS-1$
- private static final String ATTR_HELPCATEGORY = "helpCategory"; //$NON-NLS-1$
- private static final String ATTR_HELPCONTENS = "helpContents"; //$NON-NLS-1$
- private static final String ATTR_FEEDBACKWIDTH = "feedbackWidth"; //$NON-NLS-1$
- private static final String ATTR_FEEDBACKHEIGHT = "feedbackHeight"; //$NON-NLS-1$
- private static final String ATTR_FEEDBACKCONDITION = "feedbackCondition"; //$NON-NLS-1$
- private static final String ATTR_BORDER_VISIBLE = "borderVisible"; //$NON-NLS-1$
- private static final String ATTR_GUIDE_TEXT = "guideText"; //$NON-NLS-1$
- private static final String ATTR_SET_STYLE = "setStyle"; //$NON-NLS-1$
- private static final String ATTR_UI_SELECTOR = "uiSelector"; //$NON-NLS-1$
- private static final String ATTR_XPATH = "xpath"; //$NON-NLS-1$
- private static final String ATTR_CHILDXPATH = "childXpath"; //$NON-NLS-1$
- private static final String ATTR_IDS = "ids"; //$NON-NLS-1$
- private static final String ATTR_EXCLUDE_IDS = "exclude-ids"; //$NON-NLS-1$
- private static final String ATTR_PARENT_IDS = "parent-ids"; //$NON-NLS-1$
- private static final String ATTR_EXCLUSIVE_GROUP = "exclusiveGroup"; //$NON-NLS-1$
- private static final String ATTR_MIN = "min"; //$NON-NLS-1$
- private static final String ATTR_MAX = "max"; //$NON-NLS-1$
- private static final String ATTR_NAME = "name"; //$NON-NLS-1$
- private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
- private static final String ATTR_DEFAULT = "default"; //$NON-NLS-1$
- private static final String ATTR_INITVALUE = "initValue"; //$NON-NLS-1$
- private static final String ATTR_SELECTOR = "selector"; //$NON-NLS-1$
- private static final String ATTR_NOT_SUPPORTED = "notsupported"; //$NON-NLS-1$
- private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
- private static final String ATTR_TARGET = "target"; //$NON-NLS-1$
- private static final String ATTR_TARGETVALUE = "targetValue"; //$NON-NLS-1$
- private static final String ATTR_TOOLTIP = "tooltip"; //$NON-NLS-1$
- private static final String ATTR_ERROR = "error"; //$NON-NLS-1$
- private static final String ATTR_EVENTTYPE = "eventType"; //$NON-NLS-1$
-
- private static final Namespace XSLT_NAMESPACE =
- new Namespace("xsl", "http://www.w3.org/1999/XSL/Transform"); //$NON-NLS-1$ //$NON-NLS-2$
- private static final String ELEM_STYLESHEET = "stylesheet"; //$NON-NLS-1$
- private static final String ATTR_STYLESHEET_VERSION = "version"; //$NON-NLS-1$
- private static final String VALUE_STYLESHEET_VERSION = "1.0"; //$NON-NLS-1$
-
- private static final String PART_TYPE_DOC = "doc"; //$NON-NLS-1$
- private static final String PART_TYPE_PAGE = "page"; //$NON-NLS-1$
- private static final String PART_TYPE_WIDGET = "widget"; //$NON-NLS-1$
-
- /**
- * A {@link DescriptorManager}.
- */
- private DescriptorManager manager;
-
- /**
- * A xsl-for-output document.
- */
- private Document xslt;
-
- /**
- * Constructor.
- *
- * @param manager
- * a {@link DescriptorManager}
- */
- public DescriptorReader_ver_2(DescriptorManager manager) {
- this.manager = manager;
- this.xslt = DocumentHelper.createDocument();
- xslt.addElement(new QName(ELEM_STYLESHEET, XSLT_NAMESPACE))
- .addAttribute(ATTR_STYLESHEET_VERSION, VALUE_STYLESHEET_VERSION);
- }
-
- /**
- * Gets a {@link Document}.
- *
- * @return a {@link Document}
- */
- public Document getXsltForOutput() {
- return xslt;
- }
-
- /**
- * Parses a descriptor XML.
- *
- * @param descriptorPath
- * a path of descriptor XML
- */
- public void parse(URL descriptorPath) {
- SAXReader reader = new SAXReader();
- Document doc = null;
-
- try {
- doc = reader.read(descriptorPath);
- } catch (DocumentException e) {
- e.printStackTrace();
- }
-
- if (doc != null && doc.getRootElement() != null) {
- parseRoot(doc.getRootElement());
- }
- }
-
- /**
- * Parses a root element of descriptor XML.
- *
- * @param root
- * a root element
- */
- private void parseRoot(Element root) {
- if (root == null) {
- return;
- }
-
- for (Object childObj : root.elements(ELEM_DOC)) {
- parsePart((Element) childObj, new DocumentPartDescriptor());
- }
- for (Object childObj : root.elements(ELEM_PAGE)) {
- parsePart((Element) childObj, new PagePartDescriptor());
- }
- for (Object childObj : root.elements(ELEM_WIDGET)) {
- parsePart((Element) childObj, new WidgetPartDescriptor());
- }
- for (Object childObj : root.elements(ELEM_TYPES)) {
- parseTypes((Element) childObj);
- }
- for (Object childObj : root.elements(ELEM_EVENTTYPES)) {
- parseEventTypes((Element) childObj);
- }
- }
-
- /**
- * Parses a doc, page or widget element of descriptor XML.
- *
- * @param elem
- * a doc, page or widget element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parsePart(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String id = elem.attributeValue(ATTR_ID);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String smallIcon = elem.attributeValue(ATTR_SMALLICON);
- String icon16 = elem.attributeValue(ATTR_ICON_16);
- String description = elem.attributeValue(ATTR_DESCRIPTION);
- String paletteVisible = elem.attributeValue(ATTR_PALETTE_VISIBLE);
- String helpCategory = elem.attributeValue(ATTR_HELPCATEGORY);
- String helpContens = elem.attributeValue(ATTR_HELPCONTENS);
- String width = elem.attributeValue(ATTR_FEEDBACKWIDTH);
- String height = elem.attributeValue(ATTR_FEEDBACKHEIGHT);
- String borderVisible = elem.attributeValue(ATTR_BORDER_VISIBLE);
- String feedbackCondition = elem.attributeValue(ATTR_FEEDBACKCONDITION);
- String guideText = elem.attributeValue(ATTR_GUIDE_TEXT);
- String setStyle = elem.attributeValue(ATTR_SET_STYLE);
- String uiSelector = elem.attributeValue(ATTR_UI_SELECTOR);
- String xpath = elem.attributeValue(ATTR_XPATH);
- String childXpath = elem.attributeValue(ATTR_CHILDXPATH);
-
- boolean boolpaletteVisible = true;
- if (paletteVisible != null) {
- boolpaletteVisible = Boolean.parseBoolean(paletteVisible);
- }
- boolean boolBorderVisible = Boolean.parseBoolean(borderVisible);
- boolean boolSetStyle = Boolean.parseBoolean(setStyle);
-
- part.init(id, displayName, smallIcon, icon16, description, boolpaletteVisible,
- helpCategory, helpContens, width, height, boolBorderVisible, feedbackCondition,
- guideText, boolSetStyle, uiSelector, xpath, childXpath);
-
- if (part instanceof WidgetPartDescriptor) {
- String categories = elem.attributeValue(ATTR_CATEGORY);
- if (categories != null) {
- String[] categoriesArray = categories.split(BuilderConstants.COMMA);
- ((WidgetPartDescriptor) part).setCategories(Arrays.asList(categoriesArray));
- }
- }
-
- boolean isNoRelation = true;
- for (Object contentObj : elem.elements(ELEM_RELATIONS)) {
- parseRelations((Element) contentObj, part);
- isNoRelation = false;
- }
-
- // This code remains for compatibility.
- if (isNoRelation) {
- for (Object contentObj : elem.elements(ELEM_CONTENT)) {
- parseContent((Element) contentObj, part);
- }
- }
-
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parsePartCondition((Element) childObj, part);
- }
-
- for (Object propertyObj : elem.elements(ELEM_PROPERTY)) {
- parseProperty((Element) propertyObj, part);
- }
-
- for (Object contentObj : elem.elements(ELEM_EVENT)) {
- parseEvent((Element) contentObj, part);
- }
-
- parseXsltForOutput(elem);
-
- manager.addPartDescriptor(part);
- }
-
- /**
- * Parses a relation element of descriptor XML.
- *
- * @param elem
- * a relation element
- * @param property
- * a {@link PartDescriptor}
- */
- private void parseRelations(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- RelationDescriptor relation = part.getRelation();
- if (relation == null) {
- return;
- }
-
- for (Object childObj : elem.elements(ELEM_PARENT)) {
- Element childElem = (Element) childObj;
- String ids = childElem.attributeValue(ATTR_IDS);
-
- relation.addParentPartIds(ids);
- }
-
- for (Object childObj : elem.elements(ELEM_NOPARENT)) {
- Element childElem = (Element) childObj;
- String ids = childElem.attributeValue(ATTR_IDS);
-
- relation.addNoParentPartIds(ids);
- }
-
- for (Object childObj : elem.elements(ELEM_CONTENT)) {
- Element childElem = (Element) childObj;
- parseContent2(childElem, relation);
- }
-
- for (Object childObj : elem.elements(ELEM_NOCONTENT)) {
- Element childElem = (Element) childObj;
- String ids = childElem.attributeValue(ATTR_IDS);
-
- relation.addNoContentPartIds(ids);
- }
- }
-
- /**
- * Parses a content element of descriptor XML. This method remains for compatibility.
- *
- * @param elem
- * a content element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parseContent(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- RelationDescriptor relation = part.getRelation();
- if (relation == null) {
- return;
- }
-
- parseContent2(elem, relation);
-
- String excludeIds = elem.attributeValue(ATTR_EXCLUDE_IDS);
- String parentIds = elem.attributeValue(ATTR_PARENT_IDS);
-
- if (excludeIds != null) {
- relation.addNoContentPartIds(excludeIds);
- }
- if (parentIds != null) {
- relation.addParentPartIds(parentIds);
- }
- }
-
- /**
- * Parses a content element of descriptor XML.
- *
- * @param elem
- * a content element
- * @param relation
- * a {@link RelationDescriptor}
- */
- private void parseContent2(Element elem, RelationDescriptor relation) {
- if (elem == null || relation == null) {
- return;
- }
-
- String ids = elem.attributeValue(ATTR_IDS);
- String type = elem.attributeValue(ATTR_TYPE);
- String min = elem.attributeValue(ATTR_MIN);
- String max = elem.attributeValue(ATTR_MAX);
- String exclusiveGroup = elem.attributeValue(ATTR_EXCLUSIVE_GROUP);
- ContentDescriptor.PartType partType = ContentDescriptor.PartType.ANY_PART;
-
- if (type != null) {
- if (type.equals(PART_TYPE_DOC)) {
- partType = ContentDescriptor.PartType.DOCUMENT_PART;
- } else if (type.equals(PART_TYPE_PAGE)) {
- partType = ContentDescriptor.PartType.PAGE_PART;
- } else if (type.equals(PART_TYPE_WIDGET)) {
- partType = ContentDescriptor.PartType.WIDGET_PART;
- }
- }
-
- ContentDescriptor content = new ContentDescriptor();
- content.setPartType(partType);
- if (ids != null) {
- content.setPartIds(ids);
- }
- if (min != null) {
- content.setMin(Integer.valueOf(min).intValue());
- }
- if (max != null) {
- content.setMax(Integer.valueOf(max).intValue());
- }
- if (exclusiveGroup != null) {
- content.setExclusiveGroup(exclusiveGroup);
- }
- relation.addContent(content);
- }
-
- /**
- * Parses a condition element of descriptor XML.
- *
- * @param elem
- * a property element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parsePartCondition(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String value = elem.attributeValue(ATTR_VALUE);
- String target = elem.attributeValue(ATTR_TARGET);
- String targetValue = elem.attributeValue(ATTR_TARGETVALUE);
-
- PartConditionDescriptor condition =
- new PartConditionDescriptor(name, value, target, targetValue);
- part.addConditionDescriptor(condition);
- }
-
- /**
- * Parses a property element of descriptor XML.
- *
- * @param elem
- * a property element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parseProperty(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String notsupported = elem.attributeValue(ATTR_NOT_SUPPORTED);
- if (notsupported != null && notsupported.equals(BuilderConstants.TRUE)) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String tooltip = elem.attributeValue(ATTR_TOOLTIP);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
- String category = elem.attributeValue(ATTR_CATEGORY);
- String xpath = elem.attributeValue(ATTR_XPATH);
-
- if (tooltip == null) {
- tooltip = displayName;
- } else {
- tooltip =
- displayName + BuilderConstants.SPACE + BuilderConstants.DASH
- + BuilderConstants.SPACE + tooltip;
- }
-
- PropertyDescriptor property =
- new PropertyDescriptor(name, type, displayName, tooltip, defaultValue, initValue,
- category, xpath, manager);
- part.addPropertyDescriptor(property);
-
- if (TypeDescriptor.ID_OF_GROUP.equals(type) || TypeDescriptor.ID_OF_GROUP_TEXT.equals(type)
- || TypeDescriptor.ID_OF_GROUP_POSITION.equals(type)) {
- for (Object propertyObj : elem.elements(ELEM_PROPERTY)) {
- parseChildProperty((Element) propertyObj, property);
- }
- }
-
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parseCondition((Element) childObj, property);
- }
- }
-
- /**
- * Parses a child property element of descriptor XML.
- *
- * @param elem
- * a child property
- * @param property
- * a {@link PropertyDescriptor}
- */
- private void parseChildProperty(Element elem, PropertyDescriptor property) {
- if (elem == null || property == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String tooltip = elem.attributeValue(ATTR_TOOLTIP);
- String defaultValue = elem.attributeValue(ATTR_DEFAULT);
- String initValue = elem.attributeValue(ATTR_INITVALUE);
- String category = elem.attributeValue(ATTR_CATEGORY);
- String xpath = elem.attributeValue(ATTR_XPATH);
- String selector = elem.attributeValue(ATTR_SELECTOR);
-
- PropertyDescriptor childProperty =
- new ChildPropertyDescriptor(name, type, displayName, tooltip, defaultValue,
- initValue, category, xpath, selector, manager);
- property.addChildPropertyDescriptor(childProperty);
-
- for (Object childObj : elem.elements(ELEM_CONDITION)) {
- parseCondition((Element) childObj, childProperty);
- }
- }
-
- /**
- * Parses a condition element of descriptor XML.
- *
- * @param elem
- * a condition element
- * @param property
- * a {@link PropertyDescriptor}
- */
- private void parseCondition(Element elem, PropertyDescriptor property) {
- if (elem == null || property == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String value = elem.attributeValue(ATTR_VALUE);
- String target = elem.attributeValue(ATTR_TARGET);
- String targetValue = elem.attributeValue(ATTR_TARGETVALUE);
- String error = elem.attributeValue(ATTR_ERROR);
-
- PropertyConditionDescriptor condition =
- new PropertyConditionDescriptor(name, value, target, targetValue, error);
- property.addConditionDescriptor(condition);
- }
-
- /**
- * Parses an event element of descriptor XML.
- *
- * @param elem
- * an event element
- * @param part
- * a {@link PartDescriptor}
- */
- private void parseEvent(Element elem, PartDescriptor part) {
- if (elem == null || part == null) {
- return;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- String eventType = elem.attributeValue(ATTR_EVENTTYPE);
- EventDescriptor event = new EventDescriptor(name, displayName, eventType, manager);
- part.addEventDescriptor(event);
- }
-
- /**
- * Parses a types element of descriptor XML.
- *
- * @param elem
- * a types element
- */
- private void parseTypes(Element elem) {
- if (elem == null) {
- return;
- }
-
- for (Object childObj : elem.elements(ELEM_TYPE)) {
- parseType((Element) childObj);
- }
- }
-
- /**
- * Parses a type element of descriptor XML.
- *
- * @param elem
- * a type element
- */
- private void parseType(Element elem) {
- if (elem == null) {
- return;
- }
-
- String id = elem.attributeValue(ATTR_ID);
-
- TypeDescriptor type = manager.getTypeDescriptor(id);
-
- if (type == null) {
- type = new TypeDescriptor(id);
- manager.addTypeDescriptor(type);
- }
-
- for (Object childObj : elem.elements(ELEM_CONSTANT)) {
- type.addAvailableConstant(parseConstant((Element) childObj));
- }
-
- }
-
- /**
- * Parses a constant element of descriptor XML.
- *
- * @param elem
- * a constant element
- */
- private ConstantDescriptor parseConstant(Element elem) {
- if (elem == null) {
- return null;
- }
-
- String value = elem.attributeValue(ATTR_VALUE);
- String displayName = elem.attributeValue(ATTR_DISPLAYNAME);
- if (displayName == null) {
- displayName = value;
- }
-
- return new ConstantDescriptor(value, displayName);
- }
-
- /**
- * Parses an eventTypes element of descriptor XML.
- *
- * @param elem
- * an eventTypes element
- */
- private void parseEventTypes(Element elem) {
- if (elem == null) {
- return;
- }
-
- for (Object childObj : elem.elements(ELEM_EVENTTYPE)) {
- parseEventType((Element) childObj);
- }
- }
-
- /**
- * Parses an eventType element of descriptor XML.
- *
- * @param elem
- * an eventType element
- */
- private void parseEventType(Element elem) {
- if (elem == null) {
- return;
- }
-
- String id = elem.attributeValue(ATTR_ID);
- if (manager.getEventTypeDescriptor(id) != null) {
- return;
- }
-
- EventTypeDescriptor eventType = new EventTypeDescriptor(id);
-
- for (Object childObj : elem.elements(ELEM_DEFAULTCODE)) {
- eventType.setDefaultCode(((Element) childObj).getText());
- }
-
- for (Object childObj : elem.elements(ELEM_PARAM)) {
- eventType.addEventParameter(parseParameter((Element) childObj));
- }
-
- manager.addEventTypeDescriptor(eventType);
- }
-
- /**
- * Parses a param element of descriptor XML.
- *
- * @param elem
- * a param element
- */
- private EventParamDescriptor parseParameter(Element elem) {
- if (elem == null) {
- return null;
- }
-
- String name = elem.attributeValue(ATTR_NAME);
- String type = elem.attributeValue(ATTR_TYPE);
-
- return new EventParamDescriptor(name, type);
- }
-
- /**
- * Parses a xsl-for-output element of descriptor XML.
- *
- * @param elem
- * a xsl-for-output element
- */
- private void parseXsltForOutput(Element elem) {
- if (elem == null) {
- return;
- }
-
- Element code = elem.element(ELEM_XSL_FOR_OUTPUT);
- if (code != null) {
- Element child = null;
- for (Object nodeObj : code.elements()) {
- child = (Element) nodeObj;
- xslt.getRootElement().add(child.createCopy());
- }
- }
- }
-
-}
package org.tizen.webuibuilder.model.io;
-import org.dom4j.Element;
+import org.w3c.dom.Element;
public class FileReader {
private String desc = null;
public FileReader(Element rootElem) {
- if (!rootElem.getName().equals(ELEMENT_TIZEN_FILE)) {
+ if (!rootElem.getNodeName().equals(ELEMENT_TIZEN_FILE)) {
validate = false;
return;
}
- for (Object childObj : rootElem.elements(ELEMENT_FILE_INFO)) {
- Element elem = (Element) childObj;
- for (Object childObj2 : elem.elements(ELEMENT_TYPE)) {
- Element elem2 = (Element) childObj2;
- type = new String(elem2.getText());
+ int cnt = rootElem.getElementsByTagName(ELEMENT_FILE_INFO).getLength();
+ for (int i = 0; i < cnt; i++) {
+ Element elem = (Element)rootElem.getElementsByTagName(ELEMENT_FILE_INFO).item(i);
+ int cnt2 = rootElem.getElementsByTagName(ELEMENT_TYPE).getLength();
+ for (int j = 0; j < cnt2; j++) {
+ Element elem2 = (Element)rootElem.getElementsByTagName(ELEMENT_TYPE).item(j);
+ type = new String(elem2.getTextContent());
}
- for (Object childObj2 : elem.elements(ELEMENT_VERSION)) {
- Element elem2 = (Element) childObj2;
- version = new String(elem2.getText());
+ cnt2 = rootElem.getElementsByTagName(ELEMENT_VERSION).getLength();
+ for (int j = 0; j < cnt2; j++) {
+ Element elem2 = (Element)rootElem.getElementsByTagName(ELEMENT_VERSION).item(j);
+ version = new String(elem2.getTextContent());
}
- for (Object childObj2 : elem.elements(ELEMENT_DESC)) {
- Element elem2 = (Element) childObj2;
- desc = new String(elem2.getText());
+ cnt2 = rootElem.getElementsByTagName(ELEMENT_DESC).getLength();
+ for (int j = 0; j < cnt2; j++) {
+ Element elem2 = (Element)rootElem.getElementsByTagName(ELEMENT_DESC).item(j);
+ desc = new String(elem2.getTextContent());
}
}
+++ /dev/null
-/*
- * UI Builder
- *
- * Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Contributors:
- * - S-Core Co., Ltd
- *
- */
-
-
-package org.tizen.webuibuilder.model.io;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-
-import javax.xml.transform.Result;
-
-import org.dom4j.ProcessingInstruction;
-import org.dom4j.io.HTMLWriter;
-import org.dom4j.io.OutputFormat;
-import org.xml.sax.SAXException;
-
-
-public class HTMLWriter2 extends HTMLWriter {
-
- private boolean toggleEscape = true; // temporary processing...
-
- public HTMLWriter2() throws UnsupportedEncodingException {
- }
-
- public HTMLWriter2(Writer writer, OutputFormat format) throws UnsupportedEncodingException {
- super(writer, format);
- }
-
- private boolean _processingInstruction(String target) {
- if (target.equals(Result.PI_DISABLE_OUTPUT_ESCAPING)) {
- if (toggleEscape) {
- this.setEscapeText(false);
- } else {
- this.setEscapeText(true);
- }
- toggleEscape = !toggleEscape;
- return true;
- } else if (target.equals(Result.PI_ENABLE_OUTPUT_ESCAPING)) {
- this.setEscapeText(true);
- toggleEscape = true;
- return true;
- }
-
- return false;
- }
-
- @Override
- public void processingInstruction(String target, String data) throws SAXException {
- if (_processingInstruction(target)) {
- return;
- }
-
- super.processingInstruction(target, data);
- }
-
- @Override
- protected void writeProcessingInstruction(ProcessingInstruction pi) throws IOException {
- if (_processingInstruction(pi.getName())) {
- return;
- }
-
- super.writeProcessingInstruction(pi);
- }
-
-}
package org.tizen.webuibuilder.model.io;
import java.io.File;
+import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.io.SAXReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tizen.webuibuilder.BuilderConstants;
* @return {@link PageFileData}
*/
public static PageFileData read(URL url, PartFactory partFactory) {
- SAXReader reader = new SAXReader();
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
Document doc = null;
try {
- doc = reader.read(url);
- } catch (DocumentException e) {
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(url.openStream());
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
Logger logger = LoggerFactory.getLogger(PartFactory.class);
logger.error(BuilderConstants.LOG_READ_PAGE_ERROR);
if (doc == null) {
*
*/
-
package org.tizen.webuibuilder.model.io;
-import org.dom4j.Attribute;
-import org.dom4j.Document;
-import org.dom4j.Element;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.PartFactory;
import org.tizen.webuibuilder.model.WidgetPart;
import org.tizen.webuibuilder.model.filedata.PageFileData;
-
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
public class PageReader_ver_1 {
- /**
- * Parses a page document.
- *
- * @param doc
- * a page document
- * @param partFactory
- * a {@link PartFactory}
- * @return {@link PageFileData}
- */
- public static PageFileData parsePage(Document doc, PartFactory partFactory) {
- if (doc == null) {
- return null;
- }
-
- Element elem = doc.getRootElement();
- if (!elem.getName().equals("document")) {
- return null;
- }
-
- PageFileData pageFileData = new PageFileData();
-
- for (Object childObj : elem.elements("documentInfo")) {
- parsePageInfo(pageFileData, (Element) childObj);
- }
- for (Object childObj : elem.elements("documentData")) {
- elem = (Element) childObj;
- for (Object childElem : elem.elements()) {
- Part part = parseElement(pageFileData, (Element) childElem, partFactory);
- if (part instanceof DocumentPart) {
- pageFileData.addRootPart(BuilderConstants.EMPTY, part);
- }
- }
- }
-
- return pageFileData;
- }
-
- /**
- * Parses a document info element.
- *
- * @param pageFileData
- * a {@link PageFileData}
- * @param elem
- * a document info element
- */
- private static void parsePageInfo(PageFileData pageFileData, Element elem) {
- for (Object childObj : elem.elements()) {
- Element childElem = (Element) childObj;
- if (childElem.getName().equals("version")) {
- pageFileData.setVersion(childElem.getText());
- } else if (childElem.getName().equals("version")) {
- pageFileData.setVersion(childElem.getText());
- }
- }
- }
-
- /**
- * Parses an element.
- *
- * @param pageFileData
- * a {@link PageFileData}
- * @param elem
- * an element
- * @param partFactory
- * a {@link PartFactory}
- * @return {@link Part}
- */
- private static Part parseElement(PageFileData pageFileData, Element elem,
- PartFactory partFactory) {
- Part part = partFactory.createPart(elem.getName());
-
- if (part == null) {
- Logger logger = LoggerFactory.getLogger(PartFactory.class);
- logger.error(BuilderConstants.LOG_DESC_CANNOT_BE_FOUND_ERROR);
- } else {
- if (part instanceof PagePart) {
- pageFileData.setName(0, elem.attribute(BuilderConstants.PROPERTY_ID).getValue());
- }
-
- // Sets events and properties.
- Attribute attr = null;
- for (Object attrObj : elem.attributes()) {
- attr = (Attribute) attrObj;
- if (BuilderConstants.ATTRIBUTE_EVENT_PREFIX.equals((attr.getName())
- .substring(0, BuilderConstants.ATTRIBUTE_EVENT_PREFIX.length()))) {
- part.setEventValue(attr.getName(), attr.getValue());
- } else {
- part.setPropertyValueWhenPageRead(attr.getName(), attr.getValue());
+ /**
+ * Parses a page document.
+ *
+ * @param doc
+ * a page document
+ * @param partFactory
+ * a {@link PartFactory}
+ * @return {@link PageFileData}
+ */
+ public static PageFileData parsePage(Document doc, PartFactory partFactory) {
+ if (doc == null) {
+ return null;
+ }
+
+ Element elem = doc.getDocumentElement();
+ if (!elem.getNodeName().equals("document")) {
+ return null;
+ }
+
+ PageFileData pageFileData = new PageFileData();
+
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if (childNode instanceof Element) {
+ if (childNode.getNodeName().equals("documentInfo")) {
+ parsePageInfo(pageFileData, (Element) childNode);
+ } else if (childNode.getNodeName().equals("documentData")) {
+ parsePageData(pageFileData, (Element) childNode,
+ partFactory);
+ }
+ }
+ }
+
+ return pageFileData;
+ }
+
+ /**
+ * Parses a document info element.
+ *
+ * @param pageFileData
+ * a {@link PageFileData}
+ * @param elem
+ * a document info element
+ */
+ private static void parsePageInfo(PageFileData pageFileData, Element elem) {
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if (childNode instanceof Element) {
+ if (childNode.getNodeName().equals("version")) {
+ pageFileData.setVersion(((Element) childNode)
+ .getTextContent());
+ }
+ }
+ }
+ }
+
+ private static void parsePageData(PageFileData pageFileData, Element elem,
+ PartFactory partFactory) {
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ Part part = parseElement(pageFileData, (Element) childNode,
+ partFactory);
+ if (part instanceof DocumentPart) {
+ pageFileData.addRootPart(BuilderConstants.EMPTY, part);
+ }
+ }
+ }
+ }
+
+ /**
+ * Parses an element.
+ *
+ * @param pageFileData
+ * a {@link PageFileData}
+ * @param elem
+ * an element
+ * @param partFactory
+ * a {@link PartFactory}
+ * @return {@link Part}
+ */
+ private static Part parseElement(PageFileData pageFileData, Element elem,
+ PartFactory partFactory) {
+ Part part = partFactory.createPart(elem.getNodeName());
+
+ if (part == null) {
+ Logger logger = LoggerFactory.getLogger(PartFactory.class);
+ logger.error(BuilderConstants.LOG_DESC_CANNOT_BE_FOUND_ERROR);
+ } else {
+ if (part instanceof PagePart) {
+ pageFileData.setName(0,
+ elem.getAttribute(BuilderConstants.PROPERTY_ID));
+ }
+
+ // Sets events and properties.
+ NamedNodeMap attrList = elem.getAttributes();
+ for (int i = 0; i < attrList.getLength(); i++) {
+ Attr attr = (Attr) attrList.item(i);
+ if (BuilderConstants.ATTRIBUTE_EVENT_PREFIX.equals((attr
+ .getName()).substring(0,
+ BuilderConstants.ATTRIBUTE_EVENT_PREFIX.length()))) {
+ part.setEventValue(attr.getName(), attr.getValue());
+ } else {
+ part.setPropertyValueWhenPageRead(attr.getName(),
+ attr.getValue());
+ }
+ }
+
+ if (part instanceof WidgetPart) {
+ String text = elem.getTextContent();
+
+ if (!text.isEmpty()) {
+ ((WidgetPart) part).setHtmlString(text);
+ }
+ }
+
+ // Adds children.
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element child = (Element) elemList.item(i);
+ if(child instanceof Element){
+ Part childpart = parseElement(pageFileData, child, partFactory);
+ part.addChildWhenPageRead(childpart);
}
- }
+ }
+ }
- if (part instanceof WidgetPart) {
- String text = elem.getText();
-
- if (!text.isEmpty()) {
- ((WidgetPart) part).setHtmlString(text);
- }
- }
-
- // Adds children.
- Element child = null;
- Part childpart = null;
- for (Object childObj : elem.elements()) {
- child = (Element) childObj;
- childpart = parseElement(pageFileData, child, partFactory);
- part.addChildWhenPageRead(childpart);
- }
- }
-
- return part;
- }
+ return part;
+ }
}
\ No newline at end of file
import java.util.Iterator;
import java.util.List;
-import org.dom4j.Attribute;
-import org.dom4j.Document;
-import org.dom4j.Element;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tizen.webuibuilder.BuilderConstants;
return null;
}
- Element root = doc.getRootElement();
+ Element root = doc.getDocumentElement();
FileReader fileReader = new FileReader(root);
if (!fileReader.isValidate()) {
PageFileData pageFileData = new PageFileData();
- for (Object childObj : root.elements("document")) {
- parsePart(pageFileData, (Element) childObj, partFactory);
+ NodeList elemList = root.getElementsByTagName("document");
+ for (int i = 0; i < elemList.getLength(); i++) {
+ parsePart(pageFileData, (Element) elemList.item(i), partFactory);
}
return pageFileData;
* a {@link PartFactory}
*/
private static void parsePart(PageFileData pageFileData, Element elem, PartFactory partFactory) {
- for (Object childObj : elem.elements("documentInfo")) {
- parsePageInfo(pageFileData, (Element) childObj);
- }
- for (Object childObj : elem.elements("documentData")) {
- parsePageData(pageFileData, (Element) childObj, partFactory);
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals("documentInfo")){
+ parsePageInfo(pageFileData, (Element) childNode);
+ } else if(childNode.getNodeName().equals("documentData")){
+ parsePageData(pageFileData, (Element) childNode, partFactory);
+ }
+ }
}
}
* a document info element
*/
private static void parsePageInfo(PageFileData pageFileData, Element elem) {
- for (Object childObj : elem.elements()) {
- Element childElem = (Element) childObj;
- if (childElem.getName().equals("version")) {
- pageFileData.setVersion(childElem.getText());
- }
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals("version")){
+ pageFileData.setVersion(((Element)childNode).getTextContent());
+ }
+ }
}
}
PartFactory partFactory) {
List<CssSelector> selectors = null;
- for (Object childObj : elem.elements("tizen.css")) {
- Element elem2 = (Element) childObj;
- selectors = parseStyle(elem2);
+ NodeList elemList = elem.getElementsByTagName("tizen.css");
+ for (int i = 0; i < elemList.getLength(); i++) {
+ selectors = parseStyle((Element) elemList.item(i));
}
- {
- boolean existNscreen = false;
- for (Iterator<Element> i_nscreen = elem.elementIterator("tizen.nscreen"); i_nscreen
- .hasNext();) {
- existNscreen = true;
- Element nscreen = i_nscreen.next();
- for (Iterator<Element> i_screen = nscreen.elementIterator("screen"); i_screen
- .hasNext();) {
- Element screen = i_screen.next();
- NScreenModel model = new NScreenModel();
- for (Iterator<Element> i_child = screen.elementIterator(); i_child.hasNext();) {
- Element child = i_child.next();
- String tagName = child.getName();
- if ("title".equals(tagName)) {
- model.setTitle(child.getText());
- } else if ("width".equals(tagName)) {
- model.setWidth(Integer.parseInt(child.getText()));
- } else if ("height".equals(tagName)) {
- model.setHeight(Integer.parseInt(child.getText()));
- } else if ("cssFileName".equals(tagName)) {
- model.setFileName(child.getText());
- }
+ boolean existNscreen = false;
+ elemList = elem.getElementsByTagName("tizen.nscreen");
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element nscreen = (Element) elemList.item(i);
+ NodeList elemList2 = nscreen.getElementsByTagName("nscreen");
+ for (int j = 0; j < elemList2.getLength(); j++) {
+ Element screen = (Element) elemList2.item(j);
+
+ NScreenModel model = new NScreenModel();
+
+ NodeList elemList3 = screen.getChildNodes();
+ for (int k = 0; k < elemList3.getLength(); k++) {
+ Node childNode = (Element) elemList3.item(k);
+ if(childNode instanceof Element){
+ Element child = (Element)childNode;
+ String tagName = child.getNodeName();
+ if ("title".equals(tagName)) {
+ model.setTitle(child.getTextContent());
+ } else if ("width".equals(tagName)) {
+ model.setWidth(Integer.parseInt(child.getTextContent()));
+ } else if ("height".equals(tagName)) {
+ model.setHeight(Integer.parseInt(child.getTextContent()));
+ } else if ("cssFileName".equals(tagName)) {
+ model.setFileName(child.getTextContent());
+ }
}
- pageFileData.getNscreenModelList().add(model);
}
+ pageFileData.getNscreenModelList().add(model);
}
- if (!existNscreen) {
- pageFileData.getNscreenModelList().add(new NScreenModel());
- }
+
+ existNscreen = true;
+ }
+
+ if (!existNscreen) {
+ pageFileData.getNscreenModelList().add(new NScreenModel());
}
- for (Object childObj : elem.elements("tizen.doc")) {
- Element elem2 = (Element) childObj;
+ elemList = elem.getElementsByTagName("tizen.doc");
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element elem2 = (Element) elemList.item(i);
Part part = parseElement(pageFileData, elem2, partFactory, selectors);
if (part instanceof DocumentPart) {
pageFileData.addRootPart("", part);
List<CssSelector> selectors = new ArrayList<CssSelector>();
// Sets selectors.
- for (Object childObj : elem.elements("tizen.selector")) {
- Element element = (Element) childObj;
+ NodeList elemList = elem.getElementsByTagName("tizen.selector");
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element element = (Element) elemList.item(i);
- String selectorName = element.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String partId = element.attributeValue(BuilderConstants.ATTRIBUTE_PARTID);
+ String selectorName = element.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String partId = element.getAttribute(BuilderConstants.ATTRIBUTE_PARTID);
CssSelector selector = new CssSelector(selectorName, "", partId);
selectors.add(selector);
// Sets styles.
- for (Object childObj2 : element.elements("tizen.style")) {
- Element element2 = (Element) childObj2;
+ NodeList elemList2 = elem.getElementsByTagName("tizen.style");
+ for (int j = 0; j < elemList2.getLength(); j++) {
+ Element element2 = (Element) elemList2.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String value = element2.attributeValue(BuilderConstants.ATTRIBUTE_VALUE);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String value = element2.getAttribute(BuilderConstants.ATTRIBUTE_VALUE);
selector.setPropertyValue(name, value);
}
*/
private static Part parseElement(PageFileData pageFileData, Element elem,
PartFactory partFactory, List<CssSelector> selectors) {
- Part part = partFactory.createPart(elem.getName());
+ Part part = partFactory.createPart(elem.getNodeName());
if (part == null) {
Logger logger = LoggerFactory.getLogger(PartFactory.class);
logger.error(BuilderConstants.LOG_DESC_CANNOT_BE_FOUND_ERROR);
} else {
if (part instanceof PagePart) {
- pageFileData.setName(0, elem.attribute(BuilderConstants.PROPERTY_ID).getValue());
+ pageFileData.setName(0, elem.getAttribute(BuilderConstants.PROPERTY_ID));
}
// Sets events and properties.
- Attribute attr = null;
- for (Object attrObj : elem.attributes()) {
- attr = (Attribute) attrObj;
+ NamedNodeMap attrList = elem.getAttributes();
+ for (int i = 0; i < attrList.getLength(); i++) {
+ Attr attr = (Attr) attrList.item(i);
// if (BuilderConstants.ATTRIBUTE_EVENT_PREFIX.equals((attr
// .getName()).substring(0,
// BuilderConstants.ATTRIBUTE_EVENT_PREFIX.length()))) {
}
if (part instanceof WidgetPart) {
- String text = elem.getText();
+ String text = elem.getTextContent();
if (!text.isEmpty()) {
((WidgetPart) part).setHtmlString(text);
}
// Adds children.
- Element child = null;
- Part childpart = null;
- for (Object childObj : elem.elements()) {
- child = (Element) childObj;
- if (child.getName().equals("event")) {
- Attribute eventAttr = null;
- for (Object attrObj : child.attributes()) {
- eventAttr = (Attribute) attrObj;
- part.setEventValue(eventAttr.getName(), eventAttr.getValue());
- }
- } else if (child.getName().equals("gotoPage")) {
- Attribute eventAttr = null;
- List<String> strList = new ArrayList<String>();
-
- for (Object attrObj : child.attributes()) {
- eventAttr = (Attribute) attrObj;
- strList.add(eventAttr.getValue());
- }
- part.setGotoPageEventValue(strList.get(0), strList.get(1), strList.get(2));
-
- } else {
- childpart = parseElement(pageFileData, child, partFactory, selectors);
- part.addChildWhenPageRead(childpart);
+ NodeList elemList = elem.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element child = (Element) elemList.item(i);
+ if(child instanceof Element){
+ if (child.getNodeName().equals("event")) {
+ attrList = child.getAttributes();
+ for (int j = 0; j < attrList.getLength(); j++) {
+ Attr eventAttr = (Attr) attrList.item(j);
+ part.setEventValue(eventAttr.getName(), eventAttr.getValue());
+ }
+ } else if (child.getNodeName().equals("gotoPage")) {
+ List<String> strList = new ArrayList<String>();
+
+ attrList = child.getAttributes();
+ for (int j = 0; j < attrList.getLength(); j++) {
+ Attr eventAttr = (Attr) attrList.item(j);
+ strList.add(eventAttr.getValue());
+ }
+ part.setGotoPageEventValue(strList.get(0), strList.get(1), strList.get(2));
+
+ } else {
+ Part childpart = parseElement(pageFileData, child, partFactory, selectors);
+ part.addChildWhenPageRead(childpart);
+ }
}
}
}
*
*/
-
package org.tizen.webuibuilder.model.io;
import java.io.FileWriter;
import java.io.StringWriter;
import java.io.Writer;
-import org.dom4j.Document;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.XMLWriter;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.Part;
import org.tizen.webuibuilder.model.filedata.PageFileData;
-
public class PageWriter {
- private static final int INDENT_SIZE = 4;
-
- /**
- * Writes a page.
- *
- * @param pageFileData
- * a {@link PageFileData}
- * @param writer
- * a writer
- * @throws IOException
- */
- public static void writeTo(PageFileData pageFileData, Writer writer) throws IOException {
- Element elem = writeElement(pageFileData);
-
- Document doc = DocumentHelper.createDocument();
- doc.add(elem);
-
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setIndentSize(INDENT_SIZE);
-
- XMLWriter xmlwriter = new XMLWriter(writer, format);
- xmlwriter.write(doc);
- xmlwriter.close();
- }
-
- /**
- * Writes a page string.
- *
- * @param pageFileData
- * a {@link PageFileData}
- * @return page string
- */
- public static String writeToString(PageFileData pageFileData) {
- StringWriter writer = new StringWriter();
- try {
- writeTo(pageFileData, writer);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- return writer.getBuffer().toString();
- }
-
- /**
- * Writes a page file.
- *
- * @param pageFileData
- * a {@link PageFileData}
- * @param filePath
- * a page file path
- * @throws IOException
- */
- public static void writeToFile(PageFileData pageFileData, String filePath) throws IOException {
- writeTo(pageFileData, new FileWriter(filePath));
- }
-
- /**
- * Writes a page element.
- *
- * @param pageFileData
- * a {@link PageFileData}
- * @return page element
- */
- public static Element writeElement(PageFileData pageFileData) {
- return PageWriter_ver_2.writeElement(pageFileData);
- }
-
- /**
- * Writes a page element.
- *
- * @param part
- * a {@link part}
- * @param includePid
- * whether to write part-id
- * @return page element
- */
- public static Element writePart(Part part, boolean includePid) {
- return PageWriter_ver_2.writePart(part, includePid);
- }
+ private static final int INDENT_SIZE = 4;
+
+ /**
+ * Writes a page.
+ *
+ * @param pageFileData
+ * a {@link PageFileData}
+ * @param writer
+ * a writer
+ * @throws IOException
+ */
+ public static void writeTo(PageFileData pageFileData, Writer writer)
+ throws IOException {
+ Document doc = writeElement(pageFileData);
+
+ DOMSource source = new DOMSource(doc);
+ StreamResult result = new StreamResult(writer);
+
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = null;
+ try {
+ transformer = factory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
+ BuilderConstants.YES);
+ transformer.setOutputProperty(OutputKeys.ENCODING,
+ BuilderConstants.ENCODING);
+ transformer.setOutputProperty(OutputKeys.METHOD,
+ BuilderConstants.XML);
+ } catch (TransformerConfigurationException e) {
+ e.printStackTrace();
+ }
+
+ try {
+ transformer.transform(source, result);
+ } catch (TransformerException e) {
+ e.printStackTrace();
+ }
+
+ // OutputFormat format = OutputFormat.createPrettyPrint();
+ // format.setIndentSize(INDENT_SIZE);
+ //
+ // XMLWriter xmlwriter = new XMLWriter(writer, format);
+ // xmlwriter.write(doc);
+ // xmlwriter.close();
+ }
+
+ /**
+ * Writes a page string.
+ *
+ * @param pageFileData
+ * a {@link PageFileData}
+ * @return page string
+ */
+ public static String writeToString(PageFileData pageFileData) {
+ StringWriter writer = new StringWriter();
+ try {
+ writeTo(pageFileData, writer);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return writer.getBuffer().toString();
+ }
+
+ /**
+ * Writes a page file.
+ *
+ * @param pageFileData
+ * a {@link PageFileData}
+ * @param filePath
+ * a page file path
+ * @throws IOException
+ */
+ public static void writeToFile(PageFileData pageFileData, String filePath)
+ throws IOException {
+ writeTo(pageFileData, new FileWriter(filePath));
+ }
+
+ /**
+ * Writes a page element.
+ *
+ * @param pageFileData
+ * a {@link PageFileData}
+ * @return page element
+ */
+ public static Document writeElement(PageFileData pageFileData) {
+ return PageWriter_ver_2.writeElement(pageFileData);
+ }
+
+ /**
+ * Writes a page element.
+ *
+ * @param part
+ * a {@link part}
+ * @param includePid
+ * whether to write part-id
+ * @return page element
+ */
+ public static Document writePart(Part part, boolean includePid) {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = null;
+ try {
+ docBuilder = factory.newDocumentBuilder();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ Document doc = docBuilder.newDocument();
+
+ Element elem = PageWriter_ver_2.writePart(doc, part, includePid);
+ doc.appendChild(elem);
+
+ return doc;
+ }
}
*
*/
-
package org.tizen.webuibuilder.model.io;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.Part;
import org.tizen.webuibuilder.model.descriptors.PartDescriptor;
import org.tizen.webuibuilder.model.descriptors.PropertyDescriptor;
import org.tizen.webuibuilder.model.descriptors.TypeDescriptor;
import org.tizen.webuibuilder.model.filedata.PageFileData;
-
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
public class PageWriter_ver_1 {
- /**
- * Writes a page element.
- *
- * @param pageFileData
- * a {@link PageFileData}
- * @return page element
- */
- public static Element writeElement(PageFileData pageFileData) {
- Element root = DocumentHelper.createElement("document");
-
- Element pageInfoelem = DocumentHelper.createElement("documentInfo");
- Element elem;
- elem = DocumentHelper.createElement("title");
- elem.addText("test");
- pageInfoelem.add(elem);
- elem = DocumentHelper.createElement("author");
- elem.addText("noname");
- pageInfoelem.add(elem);
- elem = DocumentHelper.createElement("version");
- elem.addText("0.1.1");
- pageInfoelem.add(elem);
- root.add(pageInfoelem);
-
- Element pageDataelem = DocumentHelper.createElement("documentData");
- pageDataelem.add(writePart(pageFileData.getRootPart(0), false));
- root.add(pageDataelem);
-
- return root;
- }
-
- /**
- * Writes a page element.
- *
- * @param part
- * a {@link part}
- * @param includePid
- * whether to write part-id
- * @return page element
- */
- public static Element writePart(Part part, boolean includePid) {
- Element elem = DocumentHelper.createElement(part.getDescriptorId());
-
- if (includePid) {
- elem.addAttribute(BuilderConstants.ATTRIBUTE_PID, part.getPartId());
-
- // Adds height style attribute.
- PartDescriptor descriptor = part.getPartDescriptor();
- if (part.canBeVisibleBorder()) {
- String heightString = descriptor.getFeedbackHeight();
- if (heightString != null) {
- int height = Integer.valueOf(heightString).intValue();
- String value =
- BuilderConstants.ATTRIBUTE_VALUE_HEIGHT + BuilderConstants.COLON
- + height + BuilderConstants.ATTRIBUTE_VALUE_PX;
- elem.addAttribute(BuilderConstants.ATTRIBUTE_STYLE, value);
-
- Element textElem = DocumentHelper.createElement(BuilderConstants.PART_TEXT);
- textElem.addAttribute(BuilderConstants.ATTRIBUTE_TEXT,
- descriptor.getGuideText());
- elem.add(textElem);
- }
- }
- }
-
- for (PropertyDescriptor property : part.getPartDescriptor().getPropertyDescriptors()) {
- String value = part.getPropertyValue(property.getPropertyName());
- if (value != null) {
- if (property.getPropertyType().equals(TypeDescriptor.ID_OF_HTMLSTRING)) {
- elem.setText(value);
- } else {
- elem.addAttribute(property.getPropertyName(), value);
- }
- }
- }
-
- // for (EventDescriptor event : part.getPartDescriptor().getEventDescriptors()) {
- // String value = part.getEventValue(event.getEventName());
- // if (value != null) {
- // elem.addAttribute(event.getEventName(), value);
- // }
- // }
-
- for (Part child : part.getChildren()) {
- elem.add(writePart(child, includePid));
- }
-
- return elem;
- }
+ /**
+ * Writes a page element.
+ *
+ * @param pageFileData
+ * a {@link PageFileData}
+ * @return page element
+ */
+ public static Document writeElement(PageFileData pageFileData) {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
+
+ try {
+ builder = factory.newDocumentBuilder();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ Document doc = builder.newDocument();
+
+ Element root = doc.createElement("document");
+
+ Element pageInfoelem = doc.createElement("documentInfo");
+ Element elem;
+ elem = doc.createElement("title");
+ elem.setTextContent("test");
+ pageInfoelem.appendChild(elem);
+ elem = doc.createElement("author");
+ elem.setTextContent("noname");
+ pageInfoelem.appendChild(elem);
+ elem = doc.createElement("version");
+ elem.setTextContent("0.1.1");
+ pageInfoelem.appendChild(elem);
+ root.appendChild(pageInfoelem);
+
+ Element pageDataelem = doc.createElement("documentData");
+ pageDataelem.appendChild(writePart(doc, pageFileData.getRootPart(0),
+ false));
+ root.appendChild(pageDataelem);
+
+ doc.appendChild(root);
+
+ return doc;
+ }
+
+ /**
+ * Writes a page element.
+ *
+ * @param part
+ * a {@link part}
+ * @param includePid
+ * whether to write part-id
+ * @return page element
+ */
+ public static Element writePart(Document doc, Part part, boolean includePid) {
+ Element elem = doc.createElement(part.getDescriptorId());
+
+ if (includePid) {
+ elem.setAttribute(BuilderConstants.ATTRIBUTE_PID, part.getPartId());
+
+ // Adds height style attribute.
+ PartDescriptor descriptor = part.getPartDescriptor();
+ if (part.canBeVisibleBorder()) {
+ String heightString = descriptor.getFeedbackHeight();
+ if (heightString != null) {
+ int height = Integer.valueOf(heightString).intValue();
+ String value = BuilderConstants.ATTRIBUTE_VALUE_HEIGHT
+ + BuilderConstants.COLON + height
+ + BuilderConstants.ATTRIBUTE_VALUE_PX;
+ elem.setAttribute(BuilderConstants.ATTRIBUTE_STYLE, value);
+
+ Element textElem = doc
+ .createElement(BuilderConstants.PART_TEXT);
+ textElem.setAttribute(BuilderConstants.ATTRIBUTE_TEXT,
+ descriptor.getGuideText());
+ elem.appendChild(textElem);
+ }
+ }
+ }
+
+ for (PropertyDescriptor property : part.getPartDescriptor()
+ .getPropertyDescriptors()) {
+ String value = part.getPropertyValue(property.getPropertyName());
+ if (value != null) {
+ if (property.getPropertyType().equals(
+ TypeDescriptor.ID_OF_HTMLSTRING)) {
+ elem.setTextContent(value);
+ } else {
+ elem.setAttribute(property.getPropertyName(), value);
+ }
+ }
+ }
+
+ // for (EventDescriptor event :
+ // part.getPartDescriptor().getEventDescriptors()) {
+ // String value = part.getEventValue(event.getEventName());
+ // if (value != null) {
+ // elem.addAttribute(event.getEventName(), value);
+ // }
+ // }
+
+ for (Part child : part.getChildren()) {
+ elem.appendChild(writePart(doc, child, includePid));
+ }
+
+ return elem;
+ }
}
import java.util.List;
import java.util.Map.Entry;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.GotoPageProperty;
import org.tizen.webuibuilder.model.Part;
import org.tizen.webuibuilder.model.descriptors.TypeDescriptor;
import org.tizen.webuibuilder.model.filedata.PageFileData;
import org.tizen.webuibuilder.ui.views.nscreen.model.NScreenModel;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
public class PageWriter_ver_2 {
* a {@link PageFileData}
* @return page element
*/
- public static Element writeElement(PageFileData pageFileData) {
+ public static Document writeElement(PageFileData pageFileData) {
TizenFileFormatter fmt =
new TizenFileFormatter("tizen-page", "2", "Tizen Web UI Builder Project");
- Element root = fmt.GenerateFileFormat();
+ Document doc = fmt.GenerateFileFormat();
- Element elem0 = DocumentHelper.createElement("document");
- root.add(elem0);
+ Element elem0 = doc.createElement("document");
+ doc.appendChild(elem0);
- Element pageInfoelem = DocumentHelper.createElement("documentInfo");
+ Element pageInfoelem = doc.createElement("documentInfo");
Element elem;
- elem = DocumentHelper.createElement("title");
- elem.addText("test");
- pageInfoelem.add(elem);
- elem = DocumentHelper.createElement("author");
- elem.addText("noname");
- pageInfoelem.add(elem);
- elem = DocumentHelper.createElement("version");
- elem.addText("0.1.1");
- pageInfoelem.add(elem);
- elem0.add(pageInfoelem);
+ elem = doc.createElement("title");
+ elem.setTextContent("test");
+ pageInfoelem.appendChild(elem);
+ elem = doc.createElement("author");
+ elem.setTextContent("noname");
+ pageInfoelem.appendChild(elem);
+ elem = doc.createElement("version");
+ elem.setTextContent("0.1.1");
+ pageInfoelem.appendChild(elem);
+ elem0.appendChild(pageInfoelem);
- Element pageDataElem = DocumentHelper.createElement("documentData");
+ Element pageDataElem = doc.createElement("documentData");
- Element cssElement = DocumentHelper.createElement("tizen.css");
+ Element cssElement = doc.createElement("tizen.css");
- pageDataElem.add(writeCss(cssElement, pageFileData.getRootPart(0)));
- Element nscreenElement = DocumentHelper.createElement("tizen.nscreen");
- pageDataElem.add(writeNScreen(nscreenElement, pageFileData.getNscreenModelList()));
+ pageDataElem.appendChild(writeCss(doc, cssElement, pageFileData.getRootPart(0)));
+ Element nscreenElement = doc.createElement("tizen.nscreen");
+ pageDataElem.appendChild(writeNScreen(doc, nscreenElement, pageFileData.getNscreenModelList()));
- pageDataElem.add(writePart(pageFileData.getRootPart(0), false));
- elem0.add(pageDataElem);
+ pageDataElem.appendChild(writePart(doc, pageFileData.getRootPart(0), false));
+ elem0.appendChild(pageDataElem);
- return root;
+ return doc;
}
/**
* a {@link part}
* @return css element
*/
- public static Element writeCss(Element cssElement, Part part) {
+ public static Element writeCss(Document doc, Element cssElement, Part part) {
// Adds selector attribute.
for (CssSelector selector : part.getSelectors()) {
if (selector == null) {
continue;
}
- Element selectorElement = DocumentHelper.createElement("tizen.selector");
- selectorElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME,
+ Element selectorElement = doc.createElement("tizen.selector");
+ selectorElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME,
selector.getSelectorName());
- selectorElement.addAttribute(BuilderConstants.ATTRIBUTE_PARTID, selector.getPartId());
+ selectorElement.setAttribute(BuilderConstants.ATTRIBUTE_PARTID, selector.getPartId());
// Adds style attribute.
for (Entry<String, String> child : selector.getProperties()) {
- Element styleElement = DocumentHelper.createElement("tizen.style");
- styleElement.addAttribute(BuilderConstants.ATTRIBUTE_NAME, child.getKey());
- styleElement.addAttribute(BuilderConstants.ATTRIBUTE_VALUE, child.getValue());
- selectorElement.add(styleElement);
+ Element styleElement = doc.createElement("tizen.style");
+ styleElement.setAttribute(BuilderConstants.ATTRIBUTE_NAME, child.getKey());
+ styleElement.setAttribute(BuilderConstants.ATTRIBUTE_VALUE, child.getValue());
+ selectorElement.appendChild(styleElement);
}
- cssElement.add(selectorElement);
+ cssElement.appendChild(selectorElement);
}
List<Part> children = part.getChildren();
int size = children.size();
for (int i = 0; i < size; i++) {
- writeCss(cssElement, children.get(i));
+ writeCss(doc, cssElement, children.get(i));
}
return cssElement;
}
// public static Element writeDataBinding(Part part) {
- // Element elem = DocumentHelper.createElement("tizen.dataModel");
+ // Element elem = doc.createElement("tizen.dataModel");
//
// String value = part.getPropertyValue("data-bind");
// if ((value != null) && (!value.equals(""))) {
- // elem.addAttribute("name", value);
+ // elem.setAttribute("name", value);
// }
//
// for (Part child : part.getChildren()) {
// String childValue = child.getPropertyValue("data-bind");
// if ((childValue != null) && (!childValue.equals(""))) {
- // elem.addAttribute("name", childValue);
+ // elem.setAttribute("name", childValue);
// }
//
- // //elem.add(writeDataBinding(child));
+ // //elem.appendChild(writeDataBinding(child));
// }
//
// return elem;
* a List containing {@link NScreenModel}
* @return nscreen element
*/
- public static Element writeNScreen(Element nscreenElement, List<NScreenModel> list) {
+ public static Element writeNScreen(Document doc, Element nscreenElement, List<NScreenModel> list) {
for (NScreenModel model : list) {
- Element screenElement = DocumentHelper.createElement("screen");
- Element titleElement = DocumentHelper.createElement("title");
- titleElement.setText(model.getTitle());
- Element widthElement = DocumentHelper.createElement("width");
- widthElement.setText(String.valueOf(model.getWidth()));
- Element heightElement = DocumentHelper.createElement("height");
- heightElement.setText(String.valueOf(model.getHeight()));
- Element cssFileNameElement = DocumentHelper.createElement("cssFileName");
- cssFileNameElement.setText(model.getFileName());
-
- screenElement.add(titleElement);
- screenElement.add(widthElement);
- screenElement.add(heightElement);
- screenElement.add(cssFileNameElement);
-
- nscreenElement.add(screenElement);
+ Element screenElement = doc.createElement("screen");
+ Element titleElement = doc.createElement("title");
+ titleElement.setTextContent(model.getTitle());
+ Element widthElement = doc.createElement("width");
+ widthElement.setTextContent(String.valueOf(model.getWidth()));
+ Element heightElement = doc.createElement("height");
+ heightElement.setTextContent(String.valueOf(model.getHeight()));
+ Element cssFileNameElement = doc.createElement("cssFileName");
+ cssFileNameElement.setTextContent(model.getFileName());
+
+ screenElement.appendChild(titleElement);
+ screenElement.appendChild(widthElement);
+ screenElement.appendChild(heightElement);
+ screenElement.appendChild(cssFileNameElement);
+
+ nscreenElement.appendChild(screenElement);
}
return nscreenElement;
* whether to write part-id
* @return part element
*/
- public static Element writePart(Part part, boolean includePid) {
- Element elem = DocumentHelper.createElement(part.getDescriptorId());
+ public static Element writePart(Document doc, Part part, boolean includePid) {
+ Element elem = doc.createElement(part.getDescriptorId());
if (includePid) {
- elem.addAttribute(BuilderConstants.ATTRIBUTE_PID, part.getPartId());
+ elem.setAttribute(BuilderConstants.ATTRIBUTE_PID, part.getPartId());
// Adds height style attribute.
PartDescriptor descriptor = part.getPartDescriptor();
if (heightString != null) {
String widthString = descriptor.getFeedbackWidth();
String widthValue = BuilderConstants.EMPTY;
- if (widthString != null) {
+ if (widthString != null && !widthString.isEmpty()) {
int width = Integer.valueOf(widthString);
widthValue =
BuilderConstants.ATTRIBUTE_VALUE_WIDTH + BuilderConstants.COLON
widthValue + BuilderConstants.ATTRIBUTE_VALUE_HEIGHT
+ BuilderConstants.COLON + height
+ BuilderConstants.ATTRIBUTE_VALUE_PX;
- elem.addAttribute(BuilderConstants.ATTRIBUTE_STYLE, value);
+ elem.setAttribute(BuilderConstants.ATTRIBUTE_STYLE, value);
- Element textElem = DocumentHelper.createElement(BuilderConstants.PART_TEXT);
- textElem.addAttribute(BuilderConstants.ATTRIBUTE_TEXT,
+ Element textElem = doc.createElement(BuilderConstants.PART_TEXT);
+ textElem.setAttribute(BuilderConstants.ATTRIBUTE_TEXT,
descriptor.getGuideText());
- elem.add(textElem);
+ elem.appendChild(textElem);
}
}
}
String value = part.getPropertyValue(property.getPropertyName());
if (value != null) {
if (property.getPropertyType().equals(TypeDescriptor.ID_OF_HTMLSTRING)) {
- elem.setText(value);
+ elem.setTextContent(value);
} else if (property.getPropertyType()
.indexOf(BuilderConstants.PROPERTY_GROUP_PREFIX) != 0) {
- elem.addAttribute(property.getPropertyName(), value);
+ elem.setAttribute(property.getPropertyName(), value);
}
}
}
// for (Entry<String, String> event : part.getEvents().entrySet()) {
- // elem.addAttribute(event.getKey(), event.getValue());
+ // elem.setAttribute(event.getKey(), event.getValue());
// }
for (Entry<String, List<String>> event : part.getEvents().entrySet()) {
for (int i = 0; i < values.size(); i++) {
value = values.get(i);
if (value != null) {
- Element element = DocumentHelper.createElement("event");
- element.addAttribute(event.getKey(), value);
- elem.add(element);
+ Element element = doc.createElement("event");
+ element.setAttribute(event.getKey(), value);
+ elem.appendChild(element);
}
}
}
GotoPageProperty value = gotoPageEvent.getValue();
if ((value != null) && (value.getDestinationPage() != null)
&& (value.getTransition() != null)) {
- Element element = DocumentHelper.createElement("gotoPage");
- element.addAttribute("event", gotoPageEvent.getKey());
- element.addAttribute("destinationPage", value.getDestinationPage());
- element.addAttribute("transition", value.getTransition());
- elem.add(element);
+ Element element = doc.createElement("gotoPage");
+ element.setAttribute("event", gotoPageEvent.getKey());
+ element.setAttribute("destinationPage", value.getDestinationPage());
+ element.setAttribute("transition", value.getTransition());
+ elem.appendChild(element);
}
}
for (Part child : part.getChildren()) {
- elem.add(writePart(child, includePid));
+ elem.appendChild(writePart(doc, child, includePid));
}
return elem;
+++ /dev/null
-/*
- * UI Builder
- *
- * Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Contributors:
- * - S-Core Co., Ltd
- *
- */
-
-
-
-package org.tizen.webuibuilder.model.io;
-
-import org.dom4j.Document;
-import org.dom4j.io.SAXContentHandler;
-import org.dom4j.io.XMLWriter;
-import org.xml.sax.Attributes;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-
-// Referenced classes of package org.dom4j.io:
-// DispatchHandler, ElementStack
-
-public class SAXContentHandler2 extends SAXContentHandler {
- private XMLWriter xmlWriter = null;
-
- public SAXContentHandler2() {
- }
-
- public SAXContentHandler2(XMLWriter xmlwriter) {
- super();
- setXMLWriter(xmlwriter);
- }
-
- void setXMLWriter(XMLWriter xmlwriter) {
- this.xmlWriter = xmlwriter;
- }
-
- @Override
- public Document getDocument() {
- return super.getDocument();
- }
-
- @Override
- public void setDocumentLocator(Locator documentLocator) {
- super.setDocumentLocator(documentLocator);
- }
-
- @Override
- public void processingInstruction(String target, String data) throws SAXException {
- super.processingInstruction(target, data);
- if (target.equals("javax.xml.transform.disable-output-escaping")) {
- xmlWriter.setEscapeText(false);
- } else if (target.equals("javax.xml.transform.enable-output-escaping")) {
- xmlWriter.setEscapeText(true);
- }
- if (xmlWriter != null) {
- xmlWriter.processingInstruction(target, data);
- }
- }
-
- @Override
- public void startPrefixMapping(String prefix, String uri) throws SAXException {
- super.startPrefixMapping(prefix, uri);
- }
-
- @Override
- public void endPrefixMapping(String prefix) throws SAXException {
- super.endPrefixMapping(prefix);
- }
-
- @Override
- public void startDocument() throws SAXException {
- super.startDocument();
- if (xmlWriter != null) {
- xmlWriter.startDocument();
- }
- }
-
- @Override
- public void endDocument() throws SAXException {
- super.endDocument();
- if (xmlWriter != null) {
- xmlWriter.endDocument();
- }
- }
-
- @Override
- public void startElement(String namespaceURI, String localName, String qualifiedName,
- Attributes attributes) throws SAXException {
- super.startElement(namespaceURI, localName, qualifiedName, attributes);
- if (xmlWriter != null) {
- xmlWriter.startElement(namespaceURI, localName, qualifiedName, attributes);
- }
- }
-
- @Override
- public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
- super.endElement(namespaceURI, localName, qName);
- if (xmlWriter != null) {
- xmlWriter.endElement(namespaceURI, localName, qName);
- }
- }
-
- @Override
- public void characters(char ch[], int start, int length) throws SAXException {
- super.characters(ch, start, length);
- if (xmlWriter != null) {
- xmlWriter.characters(ch, start, length);
- }
- }
-
- @Override
- public void warning(SAXParseException saxparseexception) throws SAXException {
- super.warning(saxparseexception);
- }
-
- @Override
- public void error(SAXParseException exception) throws SAXException {
- super.error(exception);
- }
-
- @Override
- public void fatalError(SAXParseException exception) throws SAXException {
- super.fatalError(exception);
- }
-
- @Override
- public void startDTD(String name, String publicId, String systemId) throws SAXException {
- super.startDTD(name, publicId, systemId);
- if (xmlWriter != null) {
- xmlWriter.startDTD(name, publicId, systemId);
- }
- }
-
- @Override
- public void endDTD() throws SAXException {
- super.endDTD();
- if (xmlWriter != null) {
- xmlWriter.endDTD();
- }
- }
-
- @Override
- public void startEntity(String name) throws SAXException {
- super.startEntity(name);
- if (xmlWriter != null) {
- xmlWriter.startEntity(name);
- }
- }
-
- @Override
- public void endEntity(String name) throws SAXException {
- super.endEntity(name);
- if (xmlWriter != null) {
- xmlWriter.endEntity(name);
- }
- }
-
- @Override
- public void startCDATA() throws SAXException {
- super.startCDATA();
- if (xmlWriter != null) {
- xmlWriter.startCDATA();
- }
- }
-
- @Override
- public void endCDATA() throws SAXException {
- super.endCDATA();
- if (xmlWriter != null) {
- xmlWriter.endCDATA();
- }
- }
-
- @Override
- public void comment(char ch[], int start, int end) throws SAXException {
- super.comment(ch, start, end);
- if (xmlWriter != null) {
- xmlWriter.comment(ch, start, end);
- }
- }
-
- @Override
- public void elementDecl(String name, String model) throws SAXException {
- super.elementDecl(name, model);
- }
-
- @Override
- public void attributeDecl(String eName, String aName, String type, String valueDefault,
- String val) throws SAXException {
- super.attributeDecl(eName, aName, type, valueDefault, val);
- }
-
- @Override
- public void internalEntityDecl(String name, String value) throws SAXException {
- super.internalEntityDecl(name, value);
- }
-
- @Override
- public void externalEntityDecl(String name, String publicId, String sysId) throws SAXException {
- super.externalEntityDecl(name, publicId, sysId);
- }
-
- @Override
- public void notationDecl(String s, String s1, String s2) throws SAXException {
- super.notationDecl(s, s1, s2);
- if (xmlWriter != null) {
- xmlWriter.notationDecl(s, s1, s2);
- }
- }
-
- @Override
- public void unparsedEntityDecl(String s, String s1, String s2, String s3) throws SAXException {
- super.unparsedEntityDecl(s, s1, s2, s3);
- if (xmlWriter != null) {
- xmlWriter.unparsedEntityDecl(s, s1, s2, s3);
- }
- }
-}
package org.tizen.webuibuilder.model.io;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
public class TizenFileFormatter {
this.desc = desc;
}
- public Element GenerateFileFormat() {
- Element rootElem = DocumentHelper.createElement(ELEMENT_TIZEN_FILE);
+ public Document GenerateFileFormat() {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = null;
+ try {
+ docBuilder = factory.newDocumentBuilder();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ Document doc = docBuilder.newDocument();
+
+ Element rootElem = doc.createElement(ELEMENT_TIZEN_FILE);
- Element elem0 = DocumentHelper.createElement(ELEMENT_FILE_INFO);
- rootElem.add(elem0);
+ Element elem0 = doc.createElement(ELEMENT_FILE_INFO);
+ rootElem.appendChild(elem0);
- Element elem = DocumentHelper.createElement(ELEMENT_TYPE);
- elem.setText(type);
- elem0.add(elem);
+ Element elem = doc.createElement(ELEMENT_TYPE);
+ elem.setTextContent(type);
+ elem0.appendChild(elem);
- elem = DocumentHelper.createElement(ELEMENT_VERSION);
- elem.setText(version);
- elem0.add(elem);
+ elem = doc.createElement(ELEMENT_VERSION);
+ elem.setTextContent(version);
+ elem0.appendChild(elem);
- elem = DocumentHelper.createElement(ELEMENT_DESC);
- elem.setText(desc);
- elem0.add(elem);
+ elem = doc.createElement(ELEMENT_DESC);
+ elem.setTextContent(desc);
+ elem0.appendChild(elem);
- return rootElem;
+ doc.appendChild(rootElem);
+
+ return doc;
}
}
import org.apache.xerces.parsers.DOMParser;
import org.cyberneko.html.HTMLConfiguration;
-import org.dom4j.io.DocumentSource;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.Part;
import org.tizen.webuibuilder.model.PartEvent;
Transformer transformer = null;
try {
transformer =
- transformerFactory.newTransformer(new DocumentSource(getDescriptorManager()
+ transformerFactory.newTransformer(new DOMSource(getDescriptorManager()
.getXsltDocument()));
} catch (TransformerConfigurationException e) {
e.printStackTrace();
}
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, BuilderConstants.NO);
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, BuilderConstants.YES);
transformer.setOutputProperty(OutputKeys.INDENT, BuilderConstants.NO);
transformer.setOutputProperty(OutputKeys.ENCODING, BuilderConstants.ENCODING);
transformer.setOutputProperty(OutputKeys.METHOD, BuilderConstants.HTML);
package org.tizen.webuibuilder.model.project;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectNature;
import org.eclipse.core.runtime.Path;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.animator.perspective.AnimatorPerspectiveListener;
+import org.tizen.webuibuilder.model.PartFactory;
import org.tizen.webuibuilder.model.app.AppManager;
import org.tizen.webuibuilder.model.app.AppManagerForAppXML;
import org.tizen.webuibuilder.model.descriptors.DescriptorManager;
}
private void loadToolPath(String filePath) {
- SAXReader reader = new SAXReader();
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
Document doc = null;
- Element root = null;
try {
- doc = reader.read(filePath);
- } catch (DocumentException e) {
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(new File(filePath));
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
e.printStackTrace();
+ } catch (IOException e) {
+ Logger logger = LoggerFactory.getLogger(PartFactory.class);
+ logger.error(BuilderConstants.LOG_READ_PAGE_ERROR);
+ if (doc == null) {
+ return;
+ }
}
- if (doc != null && doc.getRootElement() != null) {
- root = doc.getRootElement();
+ if (doc != null && doc.getDocumentElement() != null) {
+ Element root = doc.getDocumentElement();
FileReader fileReader = new FileReader(root);
if (!fileReader.isValidate()) {
return;
return;
}
- for (Object childObj : root.elements("tizenToolPath")) {
- for (Object childObj2 : ((Element)childObj).elements("descriptor")) {
- descriptorFilePath = ((Element) childObj2).getTextTrim();
- }
- for (Object childObj2 : ((Element)childObj).elements("descriptorIcons")) {
- }
- for (Object childObj2 : ((Element)childObj).elements("buildXslt")) {
+ NodeList elemList = root.getElementsByTagName("tizenToolPath");
+ if (elemList.getLength() > 0) {
+ Node firstChild = elemList.item(0);
+ if (firstChild instanceof Element) {
+ elemList = firstChild.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if (childNode instanceof Element) {
+ if (childNode.getNodeName().equals("descriptor")) {
+ descriptorFilePath = ((Element) childNode)
+ .getTextContent().trim();
+ } else if (childNode.getNodeName().equals(
+ "descriptorIcons")) {
+ } else if (childNode.getNodeName().equals(
+ "buildXslt")) {
+ }
+ }
+ }
}
}
}
package org.tizen.webuibuilder.model.project.io;
+import java.io.IOException;
import java.net.URL;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.io.SAXReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.tizen.webuibuilder.BuilderConstants;
+import org.tizen.webuibuilder.model.PartFactory;
import org.tizen.webuibuilder.model.filedata.AppFileData;
public class ProjectReader {
public static AppFileData read(URL descriptorPath) {
- SAXReader reader = new SAXReader();
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
Document doc = null;
- AppFileData descriptor = null;
try {
- doc = reader.read(descriptorPath);
- } catch (DocumentException e) {
- e.printStackTrace();
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(descriptorPath.openStream());
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ Logger logger = LoggerFactory.getLogger(PartFactory.class);
+ logger.error(BuilderConstants.LOG_READ_PAGE_ERROR);
+ if (doc == null) {
+ return null;
+ }
}
- if (doc != null && doc.getRootElement() != null) {
- descriptor = ProjectReader_ver_2.parse(doc.getRootElement());
+ AppFileData descriptor = null;
+
+ if (doc != null && doc.getDocumentElement() != null) {
+ descriptor = ProjectReader_ver_2.parse(doc.getDocumentElement());
if (descriptor == null) {
- descriptor = ProjectReader_ver_1.parse(doc.getRootElement());
+ descriptor = ProjectReader_ver_1.parse(doc.getDocumentElement());
}
}
package org.tizen.webuibuilder.model.project.io;
-import org.dom4j.Element;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.app.Framework;
import org.tizen.webuibuilder.model.app.Library;
import org.tizen.webuibuilder.model.app.Page;
import org.tizen.webuibuilder.model.app.Stylesheet;
import org.tizen.webuibuilder.model.filedata.AppFileData;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
class FrameworkEntry {
descriptor = new AppFileData();
descriptor.setProjectFileVersion("0.0.1");
- for (Object childObj : root.elements(BuilderConstants.ELEMENT_PROJECTINFO)) {
- parseProjectInfo((Element) childObj, descriptor);
- }
-
- for (Object childObj : root.elements(BuilderConstants.ELEMENT_PAGESYSTEM)) {
- parsePart((Element) childObj, descriptor);
- }
+ NodeList elemList = root.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_PROJECTINFO)) {
+ parseProjectInfo((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_PAGESYSTEM)) {
+ parsePart((Element) childNode, descriptor);
+ }
+ }
+ }
return descriptor;
}
private static void parseProjectInfo(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_TITLE)) {
- Element title = (Element) childObj;
- descriptor.setTitle(title.getText());
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_AUTHOR)) {
- Element author = (Element) childObj;
- descriptor.setAuthor(author.getText());
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_VERSION)) {
- Element version = (Element) childObj;
- descriptor.setVersion(version.getText());
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_TITLE)) {
+ Element title = (Element) childNode;
+ descriptor.setTitle(title.getTextContent());
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_AUTHOR)) {
+ Element author = (Element) childNode;
+ descriptor.setAuthor(author.getTextContent());
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_VERSION)) {
+ Element version = (Element) childNode;
+ descriptor.setVersion(version.getTextContent());
+ }
+ }
+ }
}
private static void parsePart(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_FRAMEWORKS)) {
- parseFrameworks((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_LIBRARIES)) {
- parseLibraries((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_PAGES)) {
- parsePages((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_ENTRIES)) {
- parseEntrys((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_STYLESHEETS)) {
- parseStylesheets((Element) childObj, descriptor);
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_FRAMEWORKS)) {
+ parseFrameworks((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_LIBRARIES)) {
+ parseLibraries((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_PAGES)) {
+ parsePages((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_ENTRIES)) {
+ parseEntrys((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_STYLESHEETS)) {
+ parseStylesheets((Element) childNode, descriptor);
+ }
+ }
+ }
}
private static void parseFrameworks(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_FRAMEWORK_THEME)) {
- String theme = parseTheme((Element) childObj);
- descriptor.addOrReplaceFrameworkVariable("theme", theme);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_SCRIPT)) {
- FrameworkEntry frameworkentry = parseFramework((Element) childObj, descriptor);
- descriptor.addLibrary(frameworkentry.library);
- if (frameworkentry.framework != null) {
- descriptor.addFramework(frameworkentry.framework);
- }
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_FRAMEWORK_THEME)) {
+ String theme = parseTheme((Element) childNode);
+ descriptor.addOrReplaceFrameworkVariable("theme", theme);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_SCRIPT)) {
+ FrameworkEntry frameworkentry = parseFramework((Element) childNode, descriptor);
+ descriptor.addLibrary(frameworkentry.library);
+ if (frameworkentry.framework != null) {
+ descriptor.addFramework(frameworkentry.framework);
+ }
+ }
+ }
+ }
}
private static void parseLibraries(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_SCRIPT)) {
- Library script = parseScript((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_SCRIPT);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Library script = parseScript((Element) elemList.item(i));
descriptor.addLibrary(script);
}
}
private static void parsePages(Element element, AppFileData descriptor) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_PAGE)) {
- Element element2 = (Element) childObj;
+ NodeList elemList = element.getElementsByTagName(BuilderConstants.ELEMENT_PAGE);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Element element2 = (Element) elemList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String startup = element2.attributeValue(BuilderConstants.ATTRIBUTE_STARTUP);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String startup = element2.getAttribute(BuilderConstants.ATTRIBUTE_STARTUP);
boolean boolStartup = Boolean.valueOf(startup).booleanValue();
- String pagePath = element2.attributeValue(BuilderConstants.ATTRIBUTE_PAGEPATH);
- String jsPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_JSPATH);
+ String pagePath = element2.getAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH);
+ String jsPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_JSPATH);
String managedJsPath =
- element2.attributeValue(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH);
- String htmlPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_HTMLPATH);
+ element2.getAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH);
+ String htmlPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH);
String cssPath = htmlPath.replace(".html", ".css");
String managedCssPath = htmlPath.replace(".html", ".managed.css");
}
private static void parseEntrys(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_SCRIPT)) {
- Library entry = parseEntry((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_SCRIPT);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Library entry = parseEntry((Element) elemList.item(i));
descriptor.addLibrary(entry);
}
}
private static void parseStylesheets(Element elem, AppFileData descriptor) {
Stylesheet stylesheet = new Stylesheet("pages", "all", "");
descriptor.addStylesheet(stylesheet);
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_STYLESHEET)) {
- stylesheet = parseStylesheet((Element) childObj);
+
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_STYLESHEET);
+ for(int i = 0; i < elemList.getLength(); i++){
+ stylesheet = parseStylesheet((Element) elemList.item(i));
descriptor.addStylesheet(stylesheet);
}
}
private static String parseTheme(Element element) {
- String theme = element.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
+ String theme = element.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
return theme;
}
private static FrameworkEntry parseFramework(Element element, AppFileData descriptor) {
// String type =
// element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String path = element.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
- String theme = element.attributeValue(BuilderConstants.ATTRIBUTE_THEME);
- String viewport = element.attributeValue(BuilderConstants.ATTRIBUTE_SCALE);
+ String path = element.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
+ String theme = element.getAttribute(BuilderConstants.ATTRIBUTE_THEME);
+ String viewport = element.getAttribute(BuilderConstants.ATTRIBUTE_SCALE);
String core = "";
if (theme != null && !theme.isEmpty()) {
// String type =
// element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
String type = "user";
- String path = element.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
+ String path = element.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
Library script = new Library(type, path); // type == "user"
// String type =
// element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
String type = " entry";
- String path = element.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
+ String path = element.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
Library framework = new Library(type, path); // type == "entry"
}
private static Stylesheet parseStylesheet(Element element) {
- String path = element.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
+ String path = element.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
Stylesheet stylesheet = new Stylesheet("user", path, "");
import java.util.AbstractMap;
import java.util.Map.Entry;
-import org.dom4j.Element;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.animator.AnimatorConstants;
import org.tizen.webuibuilder.model.app.Framework;
descriptor = new AppFileData();
descriptor.setProjectFileVersion(fileReader.getVersion());
- for (Object childObj : root.elements(BuilderConstants.ELEMENT_TIZENPROJECT)) {
- parsePart((Element) childObj, descriptor);
+ NodeList elemList = root.getElementsByTagName(BuilderConstants.ELEMENT_TIZENPROJECT);
+ for(int i = 0; i < elemList.getLength(); i++){
+ parsePart((Element) elemList.item(i), descriptor);
}
return descriptor;
}
private static void parsePart(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_METAS)) {
- parseMetas((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_LIBRARIES)) {
- parseLibrarys((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_FRAMEWORKS)) {
- parseFrameworks((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_PAGES)) {
- parsePage((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_STYLESHEETS)) {
- parseStylesheets((Element) childObj, descriptor);
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_METAS)) {
+ parseMetas((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_LIBRARIES)) {
+ parseLibrarys((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_FRAMEWORKS)) {
+ parseFrameworks((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_PAGES)) {
+ parsePage((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_STYLESHEETS)) {
+ parseStylesheets((Element) childNode, descriptor);
+ }
+ }
+ }
}
private static void parseMetas(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_META)) {
- Meta meta = parseMeta((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_META);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Meta meta = parseMeta((Element) elemList.item(i));
descriptor.addMeta(meta);
}
}
private static void parseFrameworks(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_VARIABLES)) {
- parseFrameworkVariables((Element) childObj, descriptor);
- }
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_FRAMEWORK)) {
- Framework script = parseFramework((Element) childObj);
- descriptor.addFramework(script);
- }
+ NodeList elemList = elem.getChildNodes();
+ for(int i = 0; i < elemList.getLength(); i++){
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_VARIABLES)) {
+ parseFrameworkVariables((Element) childNode, descriptor);
+ } else if(childNode.getNodeName().equals(BuilderConstants.ELEMENT_FRAMEWORK)) {
+ Framework script = parseFramework((Element) childNode);
+ descriptor.addFramework(script);
+ }
+ }
+ }
}
private static void parseLibrarys(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_LIBRARY)) {
- Library library = parseLibrary((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_LIBRARY);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Library library = parseLibrary((Element) elemList.item(i));
descriptor.addLibrary(library);
}
}
private static void parsePage(Element element, AppFileData descriptor) {
- for (Object childObj : element.elements(BuilderConstants.ELEMENT_PAGE)) {
- Element element2 = (Element) childObj;
+ NodeList elemList = element.getElementsByTagName(BuilderConstants.ELEMENT_PAGE);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Element element2 = (Element) elemList.item(i);
- String name = element2.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String startup = element2.attributeValue(BuilderConstants.ATTRIBUTE_STARTUP);
+ String name = element2.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String startup = element2.getAttribute(BuilderConstants.ATTRIBUTE_STARTUP);
boolean boolStartup = Boolean.valueOf(startup).booleanValue();
- String pagePath = element2.attributeValue(BuilderConstants.ATTRIBUTE_PAGEPATH);
- String jsPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_JSPATH);
+ String pagePath = element2.getAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH);
+ String jsPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_JSPATH);
String managedJsPath =
- element2.attributeValue(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH);
- String htmlPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_HTMLPATH);
- String cssPath = element2.attributeValue(BuilderConstants.ATTRIBUTE_CSSPATH);
+ element2.getAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH);
+ String htmlPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH);
+ String cssPath = element2.getAttribute(BuilderConstants.ATTRIBUTE_CSSPATH);
String managedCssPath =
- element2.attributeValue(BuilderConstants.ATTRIBUTE_MANAGED_CSSPATH);
+ element2.getAttribute(BuilderConstants.ATTRIBUTE_MANAGED_CSSPATH);
String animatorJsPath =
- element2.attributeValue(AnimatorConstants.ATTRIBUTE_ANIMATOR_MANAGED_JSPATH);
+ element2.getAttribute(AnimatorConstants.ATTRIBUTE_ANIMATOR_MANAGED_JSPATH);
String animatorCssPath =
- element2.attributeValue(AnimatorConstants.ATTRIBUTE_ANIMATOR_MANAGED_CSSPATH);
+ element2.getAttribute(AnimatorConstants.ATTRIBUTE_ANIMATOR_MANAGED_CSSPATH);
Page page =
new Page(name, pagePath, jsPath, managedJsPath, htmlPath, cssPath,
}
private static void parseStylesheets(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_STYLESHEET)) {
- Stylesheet stylesheet = parseStylesheet((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_STYLESHEET);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Stylesheet stylesheet = parseStylesheet((Element) elemList.item(i));
descriptor.addStylesheet(stylesheet);
}
}
private static void parseFrameworkVariables(Element elem, AppFileData descriptor) {
- for (Object childObj : elem.elements(BuilderConstants.ELEMENT_VARIABLE)) {
- Entry<String, String> variable = parseFrameworkVariable((Element) childObj);
+ NodeList elemList = elem.getElementsByTagName(BuilderConstants.ELEMENT_VARIABLE);
+ for(int i = 0; i < elemList.getLength(); i++){
+ Entry<String, String> variable = parseFrameworkVariable((Element) elemList.item(i));
descriptor.addFrameworkVariable(variable.getKey(), variable.getValue());
}
}
private static Framework parseFramework(Element elem) {
- String param = elem.attributeValue(BuilderConstants.ATTRIBUTE_PARAM);
- String path = elem.attributeValue(BuilderConstants.ATTRIBUTE_PATH);
- String param2 = elem.attributeValue(BuilderConstants.ATTRIBUTE_PARAM2);
+ String param = elem.getAttribute(BuilderConstants.ATTRIBUTE_PARAM);
+ String path = elem.getAttribute(BuilderConstants.ATTRIBUTE_PATH);
+ String param2 = elem.getAttribute(BuilderConstants.ATTRIBUTE_PARAM2);
Framework framework = new Framework(param, path, param2);
}
private static Entry<String, String> parseFrameworkVariable(Element elem) {
- String name = elem.attributeValue(BuilderConstants.ATTRIBUTE_NAME);
- String value = elem.attributeValue(BuilderConstants.ATTRIBUTE_VALUE);
+ String name = elem.getAttribute(BuilderConstants.ATTRIBUTE_NAME);
+ String value = elem.getAttribute(BuilderConstants.ATTRIBUTE_VALUE);
Entry<String, String> variable = new AbstractMap.SimpleEntry<String, String>(name, value);
}
private static Meta parseMeta(Element element) {
- String type = element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String param = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM);
- String param2 = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM2);
+ String type = element.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String param = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM);
+ String param2 = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM2);
Meta meta = new Meta(type, param, param2);
}
private static Library parseLibrary(Element element) {
- String type = element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String param = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM);
+ String type = element.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String param = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM);
Library library = new Library(type, param);
}
private static Stylesheet parseStylesheet(Element element) {
- String type = element.attributeValue(BuilderConstants.ATTRIBUTE_TYPE);
- String param = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM);
- String param2 = element.attributeValue(BuilderConstants.ATTRIBUTE_PARAM2);
+ String type = element.getAttribute(BuilderConstants.ATTRIBUTE_TYPE);
+ String param = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM);
+ String param2 = element.getAttribute(BuilderConstants.ATTRIBUTE_PARAM2);
Stylesheet stylesheet = new Stylesheet(type, param, param2);
import java.io.StringWriter;
import java.io.Writer;
-import org.dom4j.Document;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.XMLWriter;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.filedata.AppFileData;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
public class ProjectWriter {
private static final int INDENT_SIZE = 4;
public static void writeTo(AppFileData descriptor, Writer writer) throws IOException {
- Element elem = writeElement(descriptor);
-
- Document doc = DocumentHelper.createDocument();
- doc.add(elem);
-
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setIndentSize(INDENT_SIZE);
-
- XMLWriter xmlwriter = new XMLWriter(writer, format);
- // xmlwriter.setMaximumAllowedCharacter(127);
- // xmlwriter.setEscapeText(false);
-
- xmlwriter.write(doc);
- xmlwriter.close();
+ Document doc = writeElement(descriptor);
+
+ DOMSource source = new DOMSource(doc);
+ StreamResult result = new StreamResult(writer);
+
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = null;
+ try {
+ transformer = factory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
+ BuilderConstants.YES);
+ transformer.setOutputProperty(OutputKeys.ENCODING,
+ BuilderConstants.ENCODING);
+ transformer.setOutputProperty(OutputKeys.METHOD,
+ BuilderConstants.XML);
+ } catch (TransformerConfigurationException e) {
+ e.printStackTrace();
+ }
+
+ try {
+ transformer.transform(source, result);
+ } catch (TransformerException e) {
+ e.printStackTrace();
+ }
+
+// Document doc = DocumentHelper.createDocument();
+// doc.add(elem);
+//
+// OutputFormat format = OutputFormat.createPrettyPrint();
+// format.setIndentSize(INDENT_SIZE);
+//
+// XMLWriter xmlwriter = new XMLWriter(writer, format);
+// // xmlwriter.setMaximumAllowedCharacter(127);
+// // xmlwriter.setEscapeText(false);
+//
+// xmlwriter.write(doc);
+// xmlwriter.close();
}
public static String writeToString(AppFileData descriptor) {
writeTo(descriptor, new FileWriter(filePath));
}
- public static Element writeElement(AppFileData descriptor) {
+ public static Document writeElement(AppFileData descriptor) {
// return ProjectWriter_ver0_0_1.writeElement(descriptor);
return ProjectWriter_ver_2.writeElement(descriptor);
}
import java.util.List;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.app.Framework;
import org.tizen.webuibuilder.model.app.Library;
import org.tizen.webuibuilder.model.app.Page;
import org.tizen.webuibuilder.model.app.Stylesheet;
import org.tizen.webuibuilder.model.filedata.AppFileData;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
public class ProjectWriter_ver_1 {
- public static Element writeElement(AppFileData descriptor) {
- Element root = DocumentHelper.createElement(BuilderConstants.ELEMENT_TIZENPROJECT);
-
- Element projectInfo = DocumentHelper.createElement(BuilderConstants.ELEMENT_PROJECTINFO);
- root.add(projectInfo);
- writeProjectInfo(projectInfo, descriptor);
-
- Element pageSystem = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGESYSTEM);
- root.add(pageSystem);
-
- Element frameworks = DocumentHelper.createElement(BuilderConstants.ELEMENT_FRAMEWORKS);
- pageSystem.add(frameworks);
- writeFrameworks(frameworks, descriptor);
-
- Element libraries = DocumentHelper.createElement(BuilderConstants.ELEMENT_LIBRARIES);
- pageSystem.add(libraries);
- writeLibraries(libraries, descriptor);
-
- Element pages = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGES);
- pageSystem.add(pages);
- writePages(pages, descriptor);
-
- Element entries = DocumentHelper.createElement(BuilderConstants.ELEMENT_ENTRIES);
- pageSystem.add(entries);
- writeEntries(entries, descriptor);
-
- Element stylesheets = DocumentHelper.createElement(BuilderConstants.ELEMENT_STYLESHEETS);
- pageSystem.add(stylesheets);
- writeStylesheets(stylesheets, descriptor);
-
- return root;
+ public static Document writeElement(AppFileData descriptor) {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = null;
+ try {
+ docBuilder = factory.newDocumentBuilder();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ Document doc = docBuilder.newDocument();
+
+ Element root = doc.createElement(BuilderConstants.ELEMENT_TIZENPROJECT);
+ doc.appendChild(root);
+
+ Element projectInfo = doc.createElement(BuilderConstants.ELEMENT_PROJECTINFO);
+ root.appendChild(projectInfo);
+ writeProjectInfo(doc, projectInfo, descriptor);
+
+ Element pageSystem = doc.createElement(BuilderConstants.ELEMENT_PAGESYSTEM);
+ root.appendChild(pageSystem);
+
+ Element frameworks = doc.createElement(BuilderConstants.ELEMENT_FRAMEWORKS);
+ pageSystem.appendChild(frameworks);
+ writeFrameworks(doc, frameworks, descriptor);
+
+ Element libraries = doc.createElement(BuilderConstants.ELEMENT_LIBRARIES);
+ pageSystem.appendChild(libraries);
+ writeLibraries(doc, libraries, descriptor);
+
+ Element pages = doc.createElement(BuilderConstants.ELEMENT_PAGES);
+ pageSystem.appendChild(pages);
+ writePages(doc, pages, descriptor);
+
+ Element entries = doc.createElement(BuilderConstants.ELEMENT_ENTRIES);
+ pageSystem.appendChild(entries);
+ writeEntries(doc, entries, descriptor);
+
+ Element stylesheets = doc.createElement(BuilderConstants.ELEMENT_STYLESHEETS);
+ pageSystem.appendChild(stylesheets);
+ writeStylesheets(doc, stylesheets, descriptor);
+
+ return doc;
}
- private static void writeProjectInfo(Element element, AppFileData descriptor) {
- Element title = DocumentHelper.createElement(BuilderConstants.ELEMENT_TITLE);
- title.addText(descriptor.getTitle());
- element.add(title);
+ private static void writeProjectInfo(Document doc, Element element, AppFileData descriptor) {
+ Element title = doc.createElement(BuilderConstants.ELEMENT_TITLE);
+ title.setTextContent(descriptor.getTitle());
+ element.appendChild(title);
- Element author = DocumentHelper.createElement(BuilderConstants.ELEMENT_AUTHOR);
- author.addText(descriptor.getAuthor());
- element.add(author);
+ Element author = doc.createElement(BuilderConstants.ELEMENT_AUTHOR);
+ author.setTextContent(descriptor.getAuthor());
+ element.appendChild(author);
- Element version = DocumentHelper.createElement(BuilderConstants.ELEMENT_VERSION);
- version.addText(descriptor.getVersion());
- element.add(version);
+ Element version = doc.createElement(BuilderConstants.ELEMENT_VERSION);
+ version.setTextContent(descriptor.getVersion());
+ element.appendChild(version);
}
- private static void writeFrameworks(Element element, AppFileData descriptor) {
- element.add(writeTheme(descriptor.getFrameworkVariable("theme")));
+ private static void writeFrameworks(Document doc, Element element, AppFileData descriptor) {
+ element.appendChild(writeTheme(doc, descriptor.getFrameworkVariable("theme")));
List<Library> frameworks = descriptor.getLibraries();
if (!framework.getType().equals("framework") && !framework.getType().equals("system")) {
continue;
}
- Element elm = writeFramework(framework, descriptor);
+ Element elm = writeFramework(doc, framework, descriptor);
if (elm != null) {
- element.add(elm);
+ element.appendChild(elm);
}
}
}
- private static void writeLibraries(Element element, AppFileData descriptor) {
+ private static void writeLibraries(Document doc, Element element, AppFileData descriptor) {
List<Library> libraries = descriptor.getLibraries();
int size = libraries.size();
if (!libraries.get(i).getType().equals("user")) {
continue;
}
- element.add(writeScript(libraries.get(i)));
+ element.appendChild(writeScript(doc, libraries.get(i)));
}
}
- private static void writePages(Element element, AppFileData descriptor) {
+ private static void writePages(Document doc, Element element, AppFileData descriptor) {
List<Page> pages = descriptor.getPages();
int size = pages.size();
for (int i = 0; i < size; i++) {
- element.add(writePage(pages.get(i), i == descriptor.getStartupPage()));
+ element.appendChild(writePage(doc, pages.get(i), i == descriptor.getStartupPage()));
}
}
- private static void writeEntries(Element element, AppFileData descriptor) {
+ private static void writeEntries(Document doc, Element element, AppFileData descriptor) {
List<Library> entries = descriptor.getLibraries();
int size = entries.size();
if (!entries.get(i).getType().equals("entry")) {
continue;
}
- element.add(writeEntry(entries.get(i)));
+ element.appendChild(writeEntry(doc, entries.get(i)));
}
}
- private static void writeStylesheets(Element element, AppFileData descriptor) {
+ private static void writeStylesheets(Document doc, Element element, AppFileData descriptor) {
List<Stylesheet> stylesheets = descriptor.getStylesheets();
int size = stylesheets.size();
if (!stylesheets.get(i).getType().equals("user")) {
continue;
}
- element.add(writeStylesheet(stylesheets.get(i)));
+ element.appendChild(writeStylesheet(doc, stylesheets.get(i)));
}
}
- private static Element writeTheme(String theme) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_FRAMEWORK_THEME);
+ private static Element writeTheme(Document doc, String theme) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_FRAMEWORK_THEME);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, theme);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, theme);
return element;
}
- private static Element writeFramework(Library framework, AppFileData descriptor) {
+ private static Element writeFramework(Document doc, Library framework, AppFileData descriptor) {
Framework data = null;
if (framework.getType().equals("framework")) {
data = descriptor.findFramework(framework.getParam());
}
}
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_SCRIPT);
+ Element element = doc.createElement(BuilderConstants.ELEMENT_SCRIPT);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
if (data != null) {
String path = new String(data.getPath());
path = path.replaceAll("%tizen-web-ui-fw-path%", "./tizen-web-ui-fw/latest");
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, path);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, path);
if (data.getParam2() != null && !data.getParam2().isEmpty()) {
- element.addAttribute(BuilderConstants.ATTRIBUTE_THEME,
+ element.setAttribute(BuilderConstants.ATTRIBUTE_THEME,
descriptor.getFrameworkVariable("theme"));
- element.addAttribute(BuilderConstants.ATTRIBUTE_SCALE,
+ element.setAttribute(BuilderConstants.ATTRIBUTE_SCALE,
descriptor.getFrameworkVariable("viewport-scale"));
}
} else {
String path = new String(framework.getParam());
path = path.replaceAll("%tizen-web-ui-fw-path%", "./tizen-web-ui-fw/latest");
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, path);
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, path);
}
return element;
}
- private static Element writeEntry(Library framework) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_SCRIPT);
+ private static Element writeEntry(Document doc, Library framework) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_SCRIPT);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, framework.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, framework.getParam());
return element;
}
- private static Element writeScript(Library script) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_SCRIPT);
+ private static Element writeScript(Document doc, Library script) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_SCRIPT);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, "user");
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, script.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, "user");
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, script.getParam());
return element;
}
- private static Element writePage(Page page, boolean isStartup) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGE);
+ private static Element writePage(Document doc, Page page, boolean isStartup) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_PAGE);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, page.getName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_STARTUP, Boolean.toString(isStartup));
- element.addAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH, page.getPagePath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_JSPATH, page.getJsPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH, page.getManagedJsPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH, page.getHtmlPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, "system");
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, page.getName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_STARTUP, Boolean.toString(isStartup));
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH, page.getPagePath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_JSPATH, page.getJsPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH, page.getManagedJsPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH, page.getHtmlPath());
return element;
}
- private static Element writeStylesheet(Stylesheet stylesheet) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_STYLESHEET);
+ private static Element writeStylesheet(Document doc, Stylesheet stylesheet) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_STYLESHEET);
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, stylesheet.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, stylesheet.getParam());
return element;
}
import java.util.Map;
import java.util.Map.Entry;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.animator.AnimatorConstants;
import org.tizen.webuibuilder.model.app.Framework;
import org.tizen.webuibuilder.model.app.Stylesheet;
import org.tizen.webuibuilder.model.filedata.AppFileData;
import org.tizen.webuibuilder.model.io.TizenFileFormatter;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
public class ProjectWriter_ver_2 {
- public static Element writeElement(AppFileData descriptor) {
+ public static Document writeElement(AppFileData descriptor) {
TizenFileFormatter fmt =
new TizenFileFormatter("tizen-project", "2", "Tizen Web UI Builder Project");
- Element root = fmt.GenerateFileFormat();
+ Document doc = fmt.GenerateFileFormat();
- Element pageSystem = DocumentHelper.createElement(BuilderConstants.ELEMENT_TIZENPROJECT);
- root.add(pageSystem);
+ Element pageSystem = doc.createElement(BuilderConstants.ELEMENT_TIZENPROJECT);
+ doc.appendChild(pageSystem);
- Element libraries = DocumentHelper.createElement(BuilderConstants.ELEMENT_LIBRARIES);
- pageSystem.add(libraries);
- writeLibraries(libraries, descriptor);
+ Element libraries = doc.createElement(BuilderConstants.ELEMENT_LIBRARIES);
+ pageSystem.appendChild(libraries);
+ writeLibraries(doc, libraries, descriptor);
- Element frameworks = DocumentHelper.createElement(BuilderConstants.ELEMENT_FRAMEWORKS);
- pageSystem.add(frameworks);
- writeFrameworks(frameworks, descriptor);
+ Element frameworks = doc.createElement(BuilderConstants.ELEMENT_FRAMEWORKS);
+ pageSystem.appendChild(frameworks);
+ writeFrameworks(doc, frameworks, descriptor);
- Element pages = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGES);
- pageSystem.add(pages);
- writePages(pages, descriptor);
+ Element pages = doc.createElement(BuilderConstants.ELEMENT_PAGES);
+ pageSystem.appendChild(pages);
+ writePages(doc, pages, descriptor);
- Element stylesheets = DocumentHelper.createElement(BuilderConstants.ELEMENT_STYLESHEETS);
- pageSystem.add(stylesheets);
- writeStylesheets(stylesheets, descriptor);
+ Element stylesheets = doc.createElement(BuilderConstants.ELEMENT_STYLESHEETS);
+ pageSystem.appendChild(stylesheets);
+ writeStylesheets(doc, stylesheets, descriptor);
- return root;
+ return doc;
}
- private static void writeFrameworks(Element element, AppFileData descriptor) {
- element.add(writeFrameworkVariables(element, descriptor));
+ private static void writeFrameworks(Document doc, Element element, AppFileData descriptor) {
+ element.appendChild(writeFrameworkVariables(doc, element, descriptor));
List<Framework> frameworks = descriptor.getFrameworks();
int size = frameworks.size();
for (int i = 0; i < size; i++) {
- element.add(writeFramework(frameworks.get(i)));
+ element.appendChild(writeFramework(doc, frameworks.get(i)));
}
}
- private static Element writeFrameworkVariables(Element element, AppFileData descriptor) {
- Element element2 = DocumentHelper.createElement(BuilderConstants.ELEMENT_VARIABLES);
+ private static Element writeFrameworkVariables(Document doc, Element element, AppFileData descriptor) {
+ Element element2 = doc.createElement(BuilderConstants.ELEMENT_VARIABLES);
Map<String, String> variables = descriptor.getFrameworkVariables();
for (Entry<String, String> variable : variables.entrySet()) {
- element2.add(writeFrameworkVariable(variable));
+ element2.appendChild(writeFrameworkVariable(doc, variable));
}
return element2;
}
- private static void writeLibraries(Element element, AppFileData descriptor) {
+ private static void writeLibraries(Document doc, Element element, AppFileData descriptor) {
List<Library> libraries = descriptor.getLibraries();
int size = libraries.size();
for (int i = 0; i < size; i++) {
- element.add(writeLibrary(libraries.get(i)));
+ element.appendChild(writeLibrary(doc, libraries.get(i)));
}
}
- private static void writePages(Element element, AppFileData descriptor) {
+ private static void writePages(Document doc, Element element, AppFileData descriptor) {
List<Page> pages = descriptor.getPages();
int size = pages.size();
for (int i = 0; i < size; i++) {
- element.add(writePage(pages.get(i), i == descriptor.getStartupPage()));
+ element.appendChild(writePage(doc, pages.get(i), i == descriptor.getStartupPage()));
}
}
- private static void writeStylesheets(Element element, AppFileData descriptor) {
+ private static void writeStylesheets(Document doc, Element element, AppFileData descriptor) {
List<Stylesheet> stylesheets = descriptor.getStylesheets();
int size = stylesheets.size();
for (int i = 0; i < size; i++) {
- element.add(writeStylesheet(stylesheets.get(i)));
+ element.appendChild(writeStylesheet(doc, stylesheets.get(i)));
}
}
- private static Element writeLibrary(Library library) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_LIBRARY);
+ private static Element writeLibrary(Document doc, Library library) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_LIBRARY);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, library.getType());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PARAM, library.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, library.getType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PARAM, library.getParam());
return element;
}
- private static Element writeFramework(Framework framework) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_FRAMEWORK);
+ private static Element writeFramework(Document doc, Framework framework) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_FRAMEWORK);
- element.addAttribute(BuilderConstants.ATTRIBUTE_PARAM, framework.getParam());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PATH, framework.getPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PARAM2, framework.getParam2());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PARAM, framework.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PATH, framework.getPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PARAM2, framework.getParam2());
return element;
}
- private static Element writeFrameworkVariable(Entry<String, String> variable) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_VARIABLE);
+ private static Element writeFrameworkVariable(Document doc, Entry<String, String> variable) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_VARIABLE);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, variable.getKey());
- element.addAttribute(BuilderConstants.ATTRIBUTE_VALUE, variable.getValue());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, variable.getKey());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_VALUE, variable.getValue());
return element;
}
- private static Element writePage(Page page, boolean isStartup) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_PAGE);
+ private static Element writePage(Document doc, Page page, boolean isStartup) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_PAGE);
- element.addAttribute(BuilderConstants.ATTRIBUTE_NAME, page.getName());
- element.addAttribute(BuilderConstants.ATTRIBUTE_STARTUP, Boolean.toString(isStartup));
- element.addAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH, page.getPagePath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_JSPATH, page.getJsPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH, page.getManagedJsPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH, page.getHtmlPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_CSSPATH, page.getCssPath());
- element.addAttribute(BuilderConstants.ATTRIBUTE_MANAGED_CSSPATH, page.getManagedCssPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_NAME, page.getName());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_STARTUP, Boolean.toString(isStartup));
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PAGEPATH, page.getPagePath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_JSPATH, page.getJsPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_MANAGEDJSPATH, page.getManagedJsPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_HTMLPATH, page.getHtmlPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_CSSPATH, page.getCssPath());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_MANAGED_CSSPATH, page.getManagedCssPath());
- element.addAttribute(AnimatorConstants.ATTRIBUTE_ANIMATOR_MANAGED_JSPATH,
+ element.setAttribute(AnimatorConstants.ATTRIBUTE_ANIMATOR_MANAGED_JSPATH,
page.getAnimatorManagedJsPath());
- element.addAttribute(AnimatorConstants.ATTRIBUTE_ANIMATOR_MANAGED_CSSPATH,
+ element.setAttribute(AnimatorConstants.ATTRIBUTE_ANIMATOR_MANAGED_CSSPATH,
page.getAnimatorManagedCssPath());
return element;
}
- private static Element writeStylesheet(Stylesheet stylesheet) {
- Element element = DocumentHelper.createElement(BuilderConstants.ELEMENT_STYLESHEET);
+ private static Element writeStylesheet(Document doc, Stylesheet stylesheet) {
+ Element element = doc.createElement(BuilderConstants.ELEMENT_STYLESHEET);
- element.addAttribute(BuilderConstants.ATTRIBUTE_TYPE, stylesheet.getType());
- element.addAttribute(BuilderConstants.ATTRIBUTE_PARAM, stylesheet.getParam());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_TYPE, stylesheet.getType());
+ element.setAttribute(BuilderConstants.ATTRIBUTE_PARAM, stylesheet.getParam());
return element;
}
package org.tizen.webuibuilder.snippet.converter;
+import java.io.FileWriter;
import java.io.IOException;
import java.io.StringBufferInputStream;
import java.io.StringWriter;
import java.util.List;
-import org.dom4j.Attribute;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.SAXReader;
-import org.dom4j.io.XMLWriter;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
import org.tizen.webuibuilder.BuilderConstants;
import org.tizen.webuibuilder.model.PagePart;
import org.tizen.webuibuilder.model.Part;
*/
@Override
public String convert(Part part) {
- Document document = DocumentHelper.createDocument();
-
- Element rootElement = DocumentHelper.createElement("descriptor");
- Element cssElement = DocumentHelper.createElement("tizen.css");
- Element partElement = DocumentHelper.createElement("tizen.part");
- partElement.add(PageWriter_ver_2.writePart(part, false));
- rootElement.add(PageWriter_ver_2.writeCss(cssElement, part));
- rootElement.add(partElement);
- document.add(rootElement);
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
+ try {
+ builder = docFactory.newDocumentBuilder();
+ } catch (ParserConfigurationException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ Document document = builder.newDocument();
+
+ Element rootElement = document.createElement("descriptor");
+ Element cssElement = document.createElement("tizen.css");
+ Element partElement = document.createElement("tizen.part");
+ partElement.appendChild(PageWriter_ver_2.writePart(document, part, false));
+ rootElement.appendChild(PageWriter_ver_2.writeCss(document, cssElement, part));
+ rootElement.appendChild(partElement);
+ document.appendChild(rootElement);
StringWriter stringWriter = new StringWriter();
- OutputFormat prettyFormat = OutputFormat.createPrettyPrint();
- prettyFormat.setIndentSize(INDENT_SIZE);
-
- XMLWriter xmlwriter = new XMLWriter(stringWriter, prettyFormat);
- try {
- xmlwriter.write(document);
- xmlwriter.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
+
+ DOMSource source = new DOMSource(document);
+ StreamResult result = new StreamResult(stringWriter);
+
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = null;
+ try {
+ transformer = factory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
+ BuilderConstants.YES);
+ transformer.setOutputProperty(OutputKeys.ENCODING,
+ BuilderConstants.ENCODING);
+ transformer.setOutputProperty(OutputKeys.METHOD,
+ BuilderConstants.XML);
+ } catch (TransformerConfigurationException e) {
+ e.printStackTrace();
+ }
+
+ try {
+ transformer.transform(source, result);
+ } catch (TransformerException e) {
+ e.printStackTrace();
+ }
+
+// OutputFormat prettyFormat = OutputFormat.createPrettyPrint();
+// prettyFormat.setIndentSize(INDENT_SIZE);
+//
+// XMLWriter xmlwriter = new XMLWriter(stringWriter, prettyFormat);
+// try {
+// xmlwriter.write(document);
+// xmlwriter.close();
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
return stringWriter.getBuffer().toString();
}
public Part convert(String text) {
- SAXReader reader = new SAXReader();
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = null;
Document doc = null;
+
try {
- doc = reader.read(new StringBufferInputStream(text));
- } catch (DocumentException e) {
- return null;
- }
- Element rootElement = doc.getRootElement();
+ builder = factory.newDocumentBuilder();
+ doc = builder.parse(new StringBufferInputStream(text));
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ Element rootElement = doc.getDocumentElement();
List<CssSelector> selectors = null;
- for (Object child : rootElement.elements("tizen.css")) {
- Element childElement = (Element) child;
+ NodeList elemList = rootElement.getElementsByTagName("tizen.css");
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Element childElement = (Element) elemList.item(i);
selectors = PageReader_ver_2.parseStyle((Element) childElement);
}
- Element partElement = rootElement.element("tizen.part");
- List<Element> elements = partElement.elements();
- Part part = parse(elements.get(0), descriptorManager, selectors);
- return part;
+ elemList = rootElement.getElementsByTagName("tizen.part");
+ if(elemList.getLength() > 0) {
+ Element childElement = (Element) elemList.item(0);
+ Part part = parse(childElement, descriptorManager, selectors);
+ return part;
+ } else {
+ return null;
+ }
}
private static Part parse(Element element, DescriptorManager descriptorManager,
List<CssSelector> selectors) {
Part part = null;
- PartDescriptor descriptor = descriptorManager.getPartDescriptor(element.getName());
+ PartDescriptor descriptor = descriptorManager.getPartDescriptor(element.getNodeName());
if (descriptor == null) {
} else {
if (descriptor instanceof WidgetPartDescriptor) {
}
// Sets events and properties.
- Attribute attr = null;
- for (Object attrObj : element.attributes()) {
- attr = (Attribute) attrObj;
+ Attr attr = null;
+ NamedNodeMap attrList = element.getAttributes();
+ for (int i = 0; i < attrList.getLength(); i++) {
+ attr = (Attr) attrList.item(i);
if (BuilderConstants.ATTRIBUTE_EVENT_PREFIX.equals((attr.getName())
.substring(0, BuilderConstants.ATTRIBUTE_EVENT_PREFIX.length()))) {
part.setEventValue(attr.getName(), attr.getValue());
part.setPropertyValueWhenPageRead(attr.getName(), attr.getValue());
}
}
- String text = element.getText();
+ String text = element.getTextContent();
if (!text.isEmpty()) {
PropertyDescriptor prop = null;
for (Object attrObj : descriptor.getPropertyDescriptors()) {
}
// Adds children.
- Element child = null;
- Part childpart = null;
- for (Object childObj : element.elements()) {
- child = (Element) childObj;
- childpart = parse(child, descriptorManager, selectors);
- part.addChildWhenPageRead(childpart);
+ NodeList elemList = element.getChildNodes();
+ for (int i = 0; i < elemList.getLength(); i++) {
+ Node childNode = elemList.item(i);
+ if(childNode instanceof Element){
+ Part childpart = parse((Element)childNode, descriptorManager, selectors);
+ part.addChildWhenPageRead(childpart);
+ }
}
}
String positionValue = BuilderConstants.EMPTY;
// refresh position
- if (methodName.equals("width")) {
- positionValue = model.getPosition().width + "px";
- method.refreshValue(methodName, positionValue);
- refreshManagedMethods(methodName, positionValue, false);
- refreshFlag = false;
- } else if (methodName.equals("height")) {
- positionValue = model.getPosition().height + "px";
- method.refreshValue(methodName, positionValue);
- refreshManagedMethods(methodName, positionValue, false);
- refreshFlag = false;
+ if(model.getPosition() != null){
+ if (methodName.equals("width")) {
+ positionValue = model.getPosition().width + "px";
+ method.refreshValue(methodName, positionValue);
+ refreshManagedMethods(methodName, positionValue, false);
+ refreshFlag = false;
+ } else if (methodName.equals("height")) {
+ positionValue = model.getPosition().height + "px";
+ method.refreshValue(methodName, positionValue);
+ refreshManagedMethods(methodName, positionValue, false);
+ refreshFlag = false;
+ }
}
for (CssStyle style : cloneStyles) {