UIB: remove NPE 61/16061/1
authorgyeongmin.ju <gyeongmin.ju@samsung.com>
Thu, 6 Feb 2014 01:38:14 +0000 (10:38 +0900)
committergyeongmin.ju <gyeongmin.ju@samsung.com>
Thu, 6 Feb 2014 01:38:14 +0000 (10:38 +0900)
Signed-off-by: gyeongmin.ju <gyeongmin.ju@samsung.com>
Change-Id: Ia39a5ff05ab59fc166fd2f4d2cab8148c2dc88b7

org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/model/AnimatorModelManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/app/io/HtmlMetaReader.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/descriptors/DescriptorManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/io/DescriptorReader.java

index 6511b97..b85c610 100644 (file)
@@ -165,8 +165,10 @@ public class AnimatorModelManager implements ISelectionListener, IPageDataSetLis
      */
     public void initialize(Part rootPart) {
         this.rootPart = rootPart;
-        eventSource = new EventManager(rootPart);
-        initMaxIds(rootPart);
+        if(rootPart != null){
+               eventSource = new EventManager(rootPart);
+               initMaxIds(rootPart);
+        }
     }
 
     /**
index 79c52c0..f9a8865 100644 (file)
@@ -70,13 +70,16 @@ public class HtmlMetaReader {
                        doc = builder.parse(url.toURI().toString());
                } catch (ParserConfigurationException e) {
                        e.printStackTrace();
+                       return null;
                } catch (SAXException e) {
                        e.printStackTrace();
+                       return null;
                } catch (IOException e) {
                        e.printStackTrace();
                        return null;
                } catch (URISyntaxException e) {
                        e.printStackTrace();
+                       return null;
                }
 
                HtmlMetaFileData fileData = parsePage(appManager, doc, partFactory);
index af0311e..4460d32 100644 (file)
@@ -110,6 +110,11 @@ public final class DescriptorManager {
      * A xslt document.
      */
     private Document xslt;
+    
+    /**
+     * A xslt element.
+     */
+    private Element xslRoot;
 
     /**
      * Constructor.
@@ -256,6 +261,7 @@ public final class DescriptorManager {
         reader.parse(descriptorPath);
 
         xslt = reader.getXsltForOutput();
+        xslRoot = reader.getXsltForOutputElement();
 
         CssDescriptorReader cssReader = new CssDescriptorReader(this);
         cssReader.parse(cssDescriptorPath);
@@ -274,6 +280,15 @@ public final class DescriptorManager {
     }
 
     /**
+     * Gets a xslt element.
+     * 
+     * @return xslt element.
+     */
+    public Element getXsltElement() {
+        return xslRoot;
+    }
+
+    /**
      * Adds a {@link PartDescriptor}.
      * 
      * @param desc
index 55742e7..b9c951c 100644 (file)
@@ -152,8 +152,8 @@ public class DescriptorReader {
        /**
         * A xsl-for-output document.
         */
-       private Document xslt;
-       private Element xslRoot;
+       private Document xslt = null;
+       private Element xslRoot = null;
 
        /**
         * Constructor.
@@ -175,11 +175,21 @@ public class DescriptorReader {
        }
 
        /**
+        * Gets a {@link Document}.
+        * 
+        * @return a {@link Document}
+        */
+       public Element getXsltForOutputElement() {
+               return xslRoot;
+       }
+
+       /**
         * Parses a descriptor XML.
         * 
         * @param descriptorPath
         *            a path of descriptor XML
         */
+       @SuppressWarnings("deprecation")
        public void parse(URL descriptorPath) {
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                factory.setNamespaceAware(true);
@@ -200,16 +210,17 @@ public class DescriptorReader {
                        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) {
+                       xslRoot = doc.createElement("xsl:stylesheet");
+                       xslRoot.setAttribute("xmlns:xsl", XSLT_NAMESPACE);
+                       xslRoot.setAttribute(ATTR_STYLESHEET_VERSION, VALUE_STYLESHEET_VERSION);
+                       //doc.getDocumentElement().appendChild(xslRoot);
+
                        parseRoot(doc.getDocumentElement());
-               }
 
-               xslt = builder.newDocument();
-               xslt.appendChild(xslt.importNode(xslRoot, true));
+                       xslt = builder.newDocument();
+                       xslt.appendChild(xslt.adoptNode(xslRoot));
+               }
                
                // TODO: Temporary code. Expected to be simplified. 
                TransformerFactory transFactory = TransformerFactory.newInstance();
@@ -229,6 +240,7 @@ public class DescriptorReader {
                } catch (IOException e) {
                        e.printStackTrace();
                }
+               
        }
 
        /**
@@ -293,7 +305,7 @@ public class DescriptorReader {
                String childXpath = elem.getAttribute(ATTR_CHILDXPATH);
 
                boolean boolpaletteVisible = true;
-               if (paletteVisible != null) {
+               if (paletteVisible != null && !paletteVisible.isEmpty()) {
                        boolpaletteVisible = Boolean.parseBoolean(paletteVisible);
                }
                boolean boolBorderVisible = Boolean.parseBoolean(borderVisible);
@@ -306,7 +318,7 @@ public class DescriptorReader {
 
                if (part instanceof WidgetPartDescriptor) {
                        String categories = elem.getAttribute(ATTR_CATEGORY);
-                       if (categories != null) {
+                       if (categories != null && !categories.isEmpty()) {
                                String[] categoriesArray = categories
                                                .split(BuilderConstants.COMMA);
                                ((WidgetPartDescriptor) part).setCategories(Arrays
@@ -345,8 +357,6 @@ public class DescriptorReader {
                        }
                }
 
-               //parseXsltForOutput(elem);
-
                manager.addPartDescriptor(part);
        }
 
@@ -413,10 +423,10 @@ public class DescriptorReader {
                String excludeIds = elem.getAttribute(ATTR_EXCLUDE_IDS);
                String parentIds = elem.getAttribute(ATTR_PARENT_IDS);
 
-               if (excludeIds != null) {
+               if (excludeIds != null && !excludeIds.isEmpty()) {
                        relation.addNoContentPartIds(excludeIds);
                }
-               if (parentIds != null) {
+               if (parentIds != null && !parentIds.isEmpty()) {
                        relation.addParentPartIds(parentIds);
                }
        }
@@ -453,7 +463,7 @@ public class DescriptorReader {
 
                ContentDescriptor content = new ContentDescriptor();
                content.setPartType(partType);
-               if (ids != null) {
+               if (ids != null && !ids.isEmpty()) {
                        content.setPartIds(ids);
                }
                if (min != null && !min.isEmpty()) {