BaseView : handling null pointer exception 81/22581/3
authorhyeran74.kim <hyeran74.kim@samsung.com>
Mon, 9 Jun 2014 03:02:49 +0000 (12:02 +0900)
committerhyeran74.kim <hyeran74.kim@samsung.com>
Tue, 10 Jun 2014 01:33:22 +0000 (10:33 +0900)
Change-Id: I538b5c697778ba5c8dc299a57323225242469ee4
Signed-off-by: hyeran74.kim <hyeran74.kim@samsung.com>
org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/view/DATabComposite.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java

index ae2697e..f8c5d51 100644 (file)
@@ -475,6 +475,21 @@ public class DATabComposite extends DABaseComposite {
                buttons.clear();
        }
 
+       /**
+        * check if the page exists 
+        * @param id
+        * @return boolean
+        */
+       public boolean isExistingPage(String id) {
+               DABaseComposite child = getView(id);
+               if(child != null) {
+                       return true;
+                       
+               }else{
+                       return false;
+               }
+       }
+       
        public Composite getContentComposite() {
                return contentsComposite;
        }
index cbcc21c..cac36ea 100755 (executable)
@@ -116,49 +116,50 @@ public class BaseView extends ViewPart {
         * @param tabViewList : selected tab pages for adding
         */
        public void addTabViewPage(List<Integer> tabViewList) {
+               DABaseComposite newPage = null;
                tabView.removeAll(); // remove existing pages
                if(tabViewList != null && tabViewList.size() > 0) {
                        for(int id : tabViewList) {
                                switch(id){
                                case CommonConstants.PAGE_FILE:
-                                       DABaseComposite filePage = new FilePage(
+                                       newPage = new FilePage(
                                                        tabView.getContentComposite(), SWT.NONE);
-                                       tabView.addView(filePage, false);
+                                       tabView.addView(newPage, false);
                                        break;
                                case CommonConstants.PAGE_GRAPHICS:
-                                       DABaseComposite graphicsPage = new GLPage(
+                                       newPage = new GLPage(
                                                        tabView.getContentComposite(), SWT.NONE);
-                                       tabView.addView(graphicsPage, false);
+                                       tabView.addView(newPage, false);
                                        break;
                                case CommonConstants.PAGE_KERNEL:
-                                       DABaseComposite kernelPage = new KernelPage(
+                                       newPage = new KernelPage(
                                                        tabView.getContentComposite(), SWT.NONE);
-                                       tabView.addView(kernelPage, false);
+                                       tabView.addView(newPage, false);
                                        break;
                                case CommonConstants.PAGE_NETWORK:
-                                       DABaseComposite networkPage = new NetworkPage(
+                                       newPage = new NetworkPage(
                                                        tabView.getContentComposite(), SWT.NONE);
-                                       tabView.addView(networkPage, false);
+                                       tabView.addView(newPage, false);
                                        break;
                                case CommonConstants.PAGE_SUMMARY:
-                                       DABaseComposite summaryPage = new SummaryPage(
+                                       newPage = new SummaryPage(
                                                        tabView.getContentComposite(), SWT.NONE);
-                                       tabView.addView(summaryPage, false);
+                                       tabView.addView(newPage, false);
                                        break;
                                case CommonConstants.PAGE_THREAD:
-                                       DABaseComposite threadPage = new ThreadPage(
+                                       newPage = new ThreadPage(
                                                        tabView.getContentComposite(), SWT.NONE);
-                                       tabView.addView(threadPage, false);
+                                       tabView.addView(newPage, false);
                                        break;
                                case CommonConstants.PAGE_TIME_LINE:
-                                       DABaseComposite timelinePage = new TimelinePage(
+                                       newPage = new TimelinePage(
                                                        tabView.getContentComposite(), SWT.NONE);
-                                       tabView.addView(timelinePage, false);
+                                       tabView.addView(newPage, false);
                                        break;
                                case CommonConstants.PAGE_UI:
-                                       DABaseComposite uiPage = new UIPage(
+                                       newPage = new UIPage(
                                                        tabView.getContentComposite(), SWT.NONE);
-                                       tabView.addView(uiPage, false);
+                                       tabView.addView(newPage, false);
                                        break;
                                default:
                                        DA_LOG.debug("No Selected View Pages");
@@ -166,72 +167,79 @@ public class BaseView extends ViewPart {
                                }
                        }
                } else {
-                       DA_LOG.error("Veiw Page List is Null");
+                       DA_LOG.error("View Page List is Null");
                }
        }
        
        /**
         * add a tab page dynamically
-        * @param tabView
+        * @param tabViewType, tabViewId
         */
-       public void addTabViewPage(int tabViewId) {
-               switch (tabViewId) {
-               case CommonConstants.PAGE_FILE:
-                       DABaseComposite filePage = new FilePage(
-                                       tabView.getContentComposite(), SWT.NONE);
-                       tabView.addView(filePage, false);
-                       break;
-               case CommonConstants.PAGE_GRAPHICS:
-                       DABaseComposite graphicsPage = new GLPage(
-                                       tabView.getContentComposite(), SWT.NONE);
-                       tabView.addView(graphicsPage, false);
-                       break;
-               case CommonConstants.PAGE_KERNEL:
-                       DABaseComposite kernelPage = new KernelPage(
-                                       tabView.getContentComposite(), SWT.NONE);
-                       tabView.addView(kernelPage, false);
-                       break;
-               case CommonConstants.PAGE_NETWORK:
-                       DABaseComposite networkPage = new NetworkPage(
-                                       tabView.getContentComposite(), SWT.NONE);
-                       tabView.addView(networkPage, false);
-                       break;
-               case CommonConstants.PAGE_SUMMARY:
-                       DABaseComposite summaryPage = new SummaryPage(
-                                       tabView.getContentComposite(), SWT.NONE);
-                       tabView.addView(summaryPage, false);
-                       break;
-               case CommonConstants.PAGE_THREAD:
-                       DABaseComposite threadPage = new ThreadPage(
-                                       tabView.getContentComposite(), SWT.NONE);
-                       tabView.addView(threadPage, false);
-                       break;
-               case CommonConstants.PAGE_TIME_LINE:
-                       DABaseComposite timelinePage = new TimelinePage(
-                                       tabView.getContentComposite(), SWT.NONE);
-                       tabView.addView(timelinePage, false);
-                       break;
-               case CommonConstants.PAGE_UI:
-                       DABaseComposite uiPage = new UIPage(tabView.getContentComposite(),
-                                       SWT.NONE);
-                       tabView.addView(uiPage, false);
-                       break;
-               default:
-                       DA_LOG.debug("No Selected View Pages");
-                       break;
+       public void addTabViewPage(int tabViewType, String tabViewId) {
+               DABaseComposite newPage = null;
+               if(!tabView.isExistingPage(tabViewId)) { //if the page does not exist, add the page
+                       switch (tabViewType) {
+                       case CommonConstants.PAGE_FILE:
+                               newPage = new FilePage(
+                                               tabView.getContentComposite(), SWT.NONE);
+                               tabView.addView(newPage, false);
+                               break;
+                       case CommonConstants.PAGE_GRAPHICS:
+                               newPage = new GLPage(
+                                               tabView.getContentComposite(), SWT.NONE);
+                               tabView.addView(newPage, false);
+                               break;
+                       case CommonConstants.PAGE_KERNEL:
+                               newPage = new KernelPage(
+                                               tabView.getContentComposite(), SWT.NONE);
+                               tabView.addView(newPage, false);
+                               break;
+                       case CommonConstants.PAGE_NETWORK:
+                               newPage = new NetworkPage(
+                                               tabView.getContentComposite(), SWT.NONE);
+                               tabView.addView(newPage, false);
+                               break;
+                       case CommonConstants.PAGE_SUMMARY:
+                               newPage = new SummaryPage(
+                                               tabView.getContentComposite(), SWT.NONE);
+                               tabView.addView(newPage, false);
+                               break;
+                       case CommonConstants.PAGE_THREAD:
+                               newPage = new ThreadPage(
+                                               tabView.getContentComposite(), SWT.NONE);
+                               tabView.addView(newPage, false);
+                               break;
+                       case CommonConstants.PAGE_TIME_LINE:
+                               newPage = new TimelinePage(
+                                               tabView.getContentComposite(), SWT.NONE);
+                               tabView.addView(newPage, false);
+                               break;
+                       case CommonConstants.PAGE_UI:
+                               newPage = new UIPage(tabView.getContentComposite(),
+                                               SWT.NONE);
+                               tabView.addView(newPage, false);
+                               break;
+                       default:
+                               DA_LOG.debug("No Selected View Pages");
+                               break;
+                       }
+               } else {
+                       DA_LOG.info("Add failed : " + tabViewId + " already exists");
                }
-
        }
        
        /**
         * remove a tab page dynamically
-        * @param tabView
+        * @param tabViewId
         */
        public void removeTabViewPage(String tabViewId) {
-               tabView.removeView(tabViewId, false);
+               if (tabView.isExistingPage(tabViewId)) { // If the page exist, remove the page
+                       tabView.removeView(tabViewId, false);
+               } else {
+                       DA_LOG.debug("Remove failed : " + tabViewId + " does not exist");
+               }
        }
        
-       
        public DAPageComposite getTopComposite() {
                Display.getDefault().syncExec(new Runnable() {
                        @Override