UIB : Fix null point exception on CodeGenerator, PageDataSet 74/18574/1
authorgyeongmin.ju <gyeongmin.ju@samsung.com>
Wed, 26 Mar 2014 09:45:36 +0000 (18:45 +0900)
committergyeongmin.ju <gyeongmin.ju@samsung.com>
Wed, 26 Mar 2014 09:45:36 +0000 (18:45 +0900)
Signed-off-by: gyeongmin.ju <gyeongmin.ju@samsung.com>
Change-Id: Ic86acd6e853e497ed1208f9d85b60b06f342d082

org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/io/CodeGenerator.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/page/PageDataSet.java

index 64eeb89..74fcb5f 100644 (file)
@@ -169,7 +169,10 @@ public class CodeGenerator {
                DOMSource source = new DOMSource(doc);
                StreamResult result = new StreamResult(writer);
                try {
-                       getTransformer(xslt).transform(source, result);
+                       Transformer transformer = getTransformer(xslt);
+                       if (transformer != null) {
+                               transformer.transform(source, result);
+                       }
                } catch (TransformerException e) {
                        e.printStackTrace();
                }
@@ -386,7 +389,7 @@ public class CodeGenerator {
 
                Part part = rootPart.getChildOfIdPropertyValue(partId, true);
                if (part == null) {
-                   return BuilderConstants.EMPTY;
+                       return BuilderConstants.EMPTY;
                }
                String css = getCssCode(part, false);
 
index b367489..dc6ffca 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-
 package org.tizen.webuibuilder.model.page;
 
 import java.util.ArrayList;
@@ -33,298 +32,307 @@ import org.tizen.webuibuilder.model.Part;
 import org.tizen.webuibuilder.model.page.PageDataEvent.PageDataEventType;
 import org.tizen.webuibuilder.model.page.PageDataSetEvent.PageDataSetEventType;
 
-
 public class PageDataSet {
 
-    public enum DataDataValidateType {
-        PAGE_OK, PAGE_NOACTIVEPAGE, PAGE_MULTIACTIVEPAGE
-    };
-
-    private Part baseRootPart = null;
-
-    private List<PageData> pages = new ArrayList<PageData>();
-
-    private List<IPageDataSetListener> listeners = new ArrayList<IPageDataSetListener>();
-    private List<IPageDataSetListener> removeListeners = new ArrayList<IPageDataSetListener>();
-    private boolean processEventFlag = false;
-
-    /**
-     * Constructor.
-     * 
-     * @param project
-     *            an {@link IProject}
-     */
-    public PageDataSet() {
-
-    }
-
-    public List<PageData> getPages() {
-        return pages;
-    }
-
-    public void addPage(PageData page, String path, boolean isExistsPagePart) {
-        if (hasPageName(page.getName())) {
-            return;
-        }
-
-        page.setPagePath(path);
-        pages.add(page);
-        if (isExistsPagePart) {
-            baseRootPart.addChild(page.getPagePart(), true);
-        }
-
-        fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_ADDED, page,
-                                       getNumberOfPages() - 1, null));
-    }
-
-    public void addPage(PageData page, String path) {
-        addPage(page, path, false);
-    }
-
-    public void addPage(int index, PageData page, String path, boolean isExistsPagePart) {
-        if (hasPageName(page.getName())) {
-            return;
-        }
-
-        page.setPagePath(path);
-        pages.add(index, page);
-        if (isExistsPagePart) {
-            baseRootPart.getChildOfId("tizen.doc").addChild(page.getPagePart(), true);
-        }
-
-        fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_ADDED, page, index, null));
-    }
-
-    public void addPage(int index, PageData page, String path) {
-        addPage(index, page, path, false);
-    }
-
-    public void renamePage(PageData page, String newName) {
-        PageData oldPage = page;
-        page.setName(newName);
-        // if (page.getPagePath() != oldPage.getPagePath()) {
-        // // rename(oldPage.getPagePath(), page.getPagePath());
-        // }
-        // if (page.getJsPath() != oldPage.getJsPath()) {
-        // // rename(oldPage.getPagePath(), page.getPagePath());
-        // }
-        // if (page.getManagedJsPath() != oldPage.getManagedJsPath()) {
-        // // delete(oldPage.getManagedJsPath());
-        // }
-        // if (page.getCssPath() != oldPage.getCssPath()) {
-        // // delete(oldPage.getPagePath());
-        // }
-        // if (page.getHtmlPath() != oldPage.getHtmlPath()) {
-        // // delete(oldPage.getHtmlPath());
-        // }
-
-        // rebuild Managed.js, html, css
-        // .........
-
-        fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_RENAMED, page, getPageIndex(page),
-                                       oldPage));
-    }
-
-    public void movePage(PageData page, int sourceIndex, int targetIndex) {
-        PageData pageData = pages.get(sourceIndex);
-        pages.remove(pageData);
-        pages.add(targetIndex, pageData);
-        fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_MOVED, null, 0, null));
-    }
-
-    public int getPageIndex(String id) {
-        return getPageIndex(getPageData(id));
-    }
-
-    public int getPageIndex(PageData page) {
-        return getPages().indexOf(page);
-    }
-
-    public boolean hasPageName(String pageName) {
-        for (PageData page : getPages()) {
-            String name = page.getName();
-            if (name != null && name.equals(pageName)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    public void addPageListener(IPageDataSetListener listener) {
-        listeners.add(listener);
-    }
-
-    public void removePageListener(IPageDataSetListener listener) {
-        if (!processEventFlag) {
-            listeners.remove(listener);
-        } else {
-            removeListeners.add(listener);
-        }
-    }
-
-    private void fireEvent(final PageDataSetEvent pageEvent) {
-        Display.getDefault().syncExec(new Runnable() {
-            @Override
-            public void run() {
-                fireEvent(pageEvent, listeners);
-            }
-        });
-    }
-
-    private void fireEvent(PageDataSetEvent pageEvent, List<IPageDataSetListener> listeners) {
-        Iterator<IPageDataSetListener> itr = listeners.iterator();
-        IPageDataSetListener listener = null;
-
-        processEventFlag = true;
-        while (itr.hasNext()) {
-            listener = itr.next();
-            switch (pageEvent.getType()) {
-                case ALL_PAGES_RESETED:
-                    listener.allPagesReseted(pageEvent);
-                    break;
-                case PAGE_ADDED:
-                    listener.pageAdded(pageEvent);
-                    break;
-                case PAGE_REMOVED:
-                    listener.pageRemoved(pageEvent);
-                    break;
-                case PAGE_RENAMED:
-                    listener.pageRenamed(pageEvent);
-                    break;
-                default:
-                    assert (false);
-            }
-        }
-        processEventFlag = false;
-
-        if (!removeListeners.isEmpty()) {
-            for (IPageDataSetListener removeListener : removeListeners) {
-                listeners.remove(removeListener);
-            }
-            removeListeners.clear();
-        }
-    }
-
-    public PageData getPageByIndex(int index) {
-        return getPages().get(index);
-    }
-
-    public PageData getPageByPath(String path) {
-        if (path == null) {
-            return null;
-        }
-
-        for (PageData page : getPages()) {
-            if (path.equals(page.getPagePath())) {
-                return page;
-            }
-        }
-
-        return null;
-    }
-
-    public String getPageName(int index) {
-        return getPageByIndex(index).getName();
-    }
-
-    public int getNumberOfPages() {
-        return getPages().size();
-    }
-
-    public Part getBaseRootPart() {
-        return baseRootPart;
-    }
-
-    public void setBaseRootPart(Part rootPart) {
-        baseRootPart = rootPart;
-        fireEvent(new PageDataSetEvent(PageDataSetEventType.ALL_PAGES_RESETED, null, 0, null));
-    }
-
-    /**
-     * Gets a root {@link Part} corresponding page.
-     * 
-     * @param name
-     *            a page name
-     * @return root {@link Part} if a root {@link Part} corresponding page is exist, and null
-     *         otherwise
-     */
-    public Part getRootPart(String name) {
-        PageData page = getPageData(name);
-        if (page != null) {
-            return page.getRootPart();
-        } else {
-            return null;
-        }
-    }
-
-    public Part getPagePart(String name) {
-        PageData page = getPageData(name);
-        if (page != null) {
-            return page.getPagePart();
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Gets a {@link PageData} corresponding page.
-     * 
-     * @param index
-     *            a page index
-     * @return {@link PageData} if a {@link PageData} corresponding page is exist, and null
-     *         otherwise
-     */
-    public PageData getPageData(int index) {
-        if (index < 0 || index >= getPages().size()) {
-            return null;
-        }
-
-        return getPages().get(index);
-    }
-
-    /**
-     * Gets a {@link PageData} corresponding page.
-     * 
-     * @param name
-     *            a page name
-     * @return {@link PageData} if a {@link PageData} corresponding page is exist, and null
-     *         otherwise
-     */
-    public PageData getPageData(String name) {
-        if (name == null) {
-            return null;
-        }
-
-        for (PageData page : getPages()) {
-            if (name.equals(page.getName())) {
-                return page;
-            }
-        }
-
-        return null;
-    }
-
-    public void removePage(int index) {
-        PageData page = getPages().get(index);
-
-        page.fireEvent(new PageDataEvent(PageDataEventType.PAGE_PREDELETE, page));
-        fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_PREDELETE, page, index, null));
-
-        pages.remove(index);
-
-        fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_REMOVED, page, index, null));
-    }
-
-    public void removePage(PageData page) {
-        int index = getPages().indexOf(page);
-        removePage(index);
-    }
-
-    public void removeAllPages() {
-        for (int i = pages.size() - 1; i >= 0; i--) {
-            removePage(i);
-        }
-    }
+       public enum DataDataValidateType {
+               PAGE_OK, PAGE_NOACTIVEPAGE, PAGE_MULTIACTIVEPAGE
+       };
+
+       private Part baseRootPart = null;
+
+       private List<PageData> pages = new ArrayList<PageData>();
+
+       private List<IPageDataSetListener> listeners = new ArrayList<IPageDataSetListener>();
+       private List<IPageDataSetListener> removeListeners = new ArrayList<IPageDataSetListener>();
+       private boolean processEventFlag = false;
+
+       /**
+        * Constructor.
+        * 
+        * @param project
+        *            an {@link IProject}
+        */
+       public PageDataSet() {
+
+       }
+
+       public List<PageData> getPages() {
+               return pages;
+       }
+
+       public void addPage(PageData page, String path, boolean isExistsPagePart) {
+               if (hasPageName(page.getName())) {
+                       return;
+               }
+
+               page.setPagePath(path);
+               pages.add(page);
+               if (isExistsPagePart) {
+                       baseRootPart.addChild(page.getPagePart(), true);
+               }
+
+               fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_ADDED, page,
+                               getNumberOfPages() - 1, null));
+       }
+
+       public void addPage(PageData page, String path) {
+               addPage(page, path, false);
+       }
+
+       public void addPage(int index, PageData page, String path,
+                       boolean isExistsPagePart) {
+               if (hasPageName(page.getName())) {
+                       return;
+               }
+
+               page.setPagePath(path);
+               pages.add(index, page);
+               if (isExistsPagePart) {
+                       Part docPart = baseRootPart.getChildOfId("tizen.doc");
+                       if (docPart != null) {
+                               docPart.addChild(page.getPagePart(), true);
+                       }
+               }
+
+               fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_ADDED, page,
+                               index, null));
+       }
+
+       public void addPage(int index, PageData page, String path) {
+               addPage(index, page, path, false);
+       }
+
+       public void renamePage(PageData page, String newName) {
+               PageData oldPage = page;
+               page.setName(newName);
+               // if (page.getPagePath() != oldPage.getPagePath()) {
+               // // rename(oldPage.getPagePath(), page.getPagePath());
+               // }
+               // if (page.getJsPath() != oldPage.getJsPath()) {
+               // // rename(oldPage.getPagePath(), page.getPagePath());
+               // }
+               // if (page.getManagedJsPath() != oldPage.getManagedJsPath()) {
+               // // delete(oldPage.getManagedJsPath());
+               // }
+               // if (page.getCssPath() != oldPage.getCssPath()) {
+               // // delete(oldPage.getPagePath());
+               // }
+               // if (page.getHtmlPath() != oldPage.getHtmlPath()) {
+               // // delete(oldPage.getHtmlPath());
+               // }
+
+               // rebuild Managed.js, html, css
+               // .........
+
+               fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_RENAMED, page,
+                               getPageIndex(page), oldPage));
+       }
+
+       public void movePage(PageData page, int sourceIndex, int targetIndex) {
+               PageData pageData = pages.get(sourceIndex);
+               pages.remove(pageData);
+               pages.add(targetIndex, pageData);
+               fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_MOVED, null,
+                               0, null));
+       }
+
+       public int getPageIndex(String id) {
+               return getPageIndex(getPageData(id));
+       }
+
+       public int getPageIndex(PageData page) {
+               return getPages().indexOf(page);
+       }
+
+       public boolean hasPageName(String pageName) {
+               for (PageData page : getPages()) {
+                       String name = page.getName();
+                       if (name != null && name.equals(pageName)) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
+       public void addPageListener(IPageDataSetListener listener) {
+               listeners.add(listener);
+       }
+
+       public void removePageListener(IPageDataSetListener listener) {
+               if (!processEventFlag) {
+                       listeners.remove(listener);
+               } else {
+                       removeListeners.add(listener);
+               }
+       }
+
+       private void fireEvent(final PageDataSetEvent pageEvent) {
+               Display.getDefault().syncExec(new Runnable() {
+                       @Override
+                       public void run() {
+                               fireEvent(pageEvent, listeners);
+                       }
+               });
+       }
+
+       private void fireEvent(PageDataSetEvent pageEvent,
+                       List<IPageDataSetListener> listeners) {
+               Iterator<IPageDataSetListener> itr = listeners.iterator();
+               IPageDataSetListener listener = null;
+
+               processEventFlag = true;
+               while (itr.hasNext()) {
+                       listener = itr.next();
+                       switch (pageEvent.getType()) {
+                       case ALL_PAGES_RESETED:
+                               listener.allPagesReseted(pageEvent);
+                               break;
+                       case PAGE_ADDED:
+                               listener.pageAdded(pageEvent);
+                               break;
+                       case PAGE_REMOVED:
+                               listener.pageRemoved(pageEvent);
+                               break;
+                       case PAGE_RENAMED:
+                               listener.pageRenamed(pageEvent);
+                               break;
+                       default:
+                               assert (false);
+                       }
+               }
+               processEventFlag = false;
+
+               if (!removeListeners.isEmpty()) {
+                       for (IPageDataSetListener removeListener : removeListeners) {
+                               listeners.remove(removeListener);
+                       }
+                       removeListeners.clear();
+               }
+       }
+
+       public PageData getPageByIndex(int index) {
+               return getPages().get(index);
+       }
+
+       public PageData getPageByPath(String path) {
+               if (path == null) {
+                       return null;
+               }
+
+               for (PageData page : getPages()) {
+                       if (path.equals(page.getPagePath())) {
+                               return page;
+                       }
+               }
+
+               return null;
+       }
+
+       public String getPageName(int index) {
+               return getPageByIndex(index).getName();
+       }
+
+       public int getNumberOfPages() {
+               return getPages().size();
+       }
+
+       public Part getBaseRootPart() {
+               return baseRootPart;
+       }
+
+       public void setBaseRootPart(Part rootPart) {
+               baseRootPart = rootPart;
+               fireEvent(new PageDataSetEvent(PageDataSetEventType.ALL_PAGES_RESETED,
+                               null, 0, null));
+       }
+
+       /**
+        * Gets a root {@link Part} corresponding page.
+        * 
+        * @param name
+        *            a page name
+        * @return root {@link Part} if a root {@link Part} corresponding page is
+        *         exist, and null otherwise
+        */
+       public Part getRootPart(String name) {
+               PageData page = getPageData(name);
+               if (page != null) {
+                       return page.getRootPart();
+               } else {
+                       return null;
+               }
+       }
+
+       public Part getPagePart(String name) {
+               PageData page = getPageData(name);
+               if (page != null) {
+                       return page.getPagePart();
+               } else {
+                       return null;
+               }
+       }
+
+       /**
+        * Gets a {@link PageData} corresponding page.
+        * 
+        * @param index
+        *            a page index
+        * @return {@link PageData} if a {@link PageData} corresponding page is
+        *         exist, and null otherwise
+        */
+       public PageData getPageData(int index) {
+               if (index < 0 || index >= getPages().size()) {
+                       return null;
+               }
+
+               return getPages().get(index);
+       }
+
+       /**
+        * Gets a {@link PageData} corresponding page.
+        * 
+        * @param name
+        *            a page name
+        * @return {@link PageData} if a {@link PageData} corresponding page is
+        *         exist, and null otherwise
+        */
+       public PageData getPageData(String name) {
+               if (name == null) {
+                       return null;
+               }
+
+               for (PageData page : getPages()) {
+                       if (name.equals(page.getName())) {
+                               return page;
+                       }
+               }
+
+               return null;
+       }
+
+       public void removePage(int index) {
+               PageData page = getPages().get(index);
+
+               page.fireEvent(new PageDataEvent(PageDataEventType.PAGE_PREDELETE, page));
+               fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_PREDELETE,
+                               page, index, null));
+
+               pages.remove(index);
+
+               fireEvent(new PageDataSetEvent(PageDataSetEventType.PAGE_REMOVED, page,
+                               index, null));
+       }
+
+       public void removePage(PageData page) {
+               int index = getPages().indexOf(page);
+               removePage(index);
+       }
+
+       public void removeAllPages() {
+               for (int i = pages.size() - 1; i >= 0; i--) {
+                       removePage(i);
+               }
+       }
 
 }