From d0113e67945824fb339d46732db80b616697a753 Mon Sep 17 00:00:00 2001 From: "hyeran74.kim" Date: Mon, 9 Jun 2014 12:02:49 +0900 Subject: [PATCH] BaseView : handling null pointer exception Change-Id: I538b5c697778ba5c8dc299a57323225242469ee4 Signed-off-by: hyeran74.kim --- .../widgets/da/view/DATabComposite.java | 15 +++ .../tizen/dynamicanalyzer/ui/page/BaseView.java | 142 +++++++++++---------- 2 files changed, 90 insertions(+), 67 deletions(-) diff --git a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/view/DATabComposite.java b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/view/DATabComposite.java index ae2697e..f8c5d51 100644 --- a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/view/DATabComposite.java +++ b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/view/DATabComposite.java @@ -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; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java index cbcc21c..cac36ea 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java @@ -116,49 +116,50 @@ public class BaseView extends ViewPart { * @param tabViewList : selected tab pages for adding */ public void addTabViewPage(List 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 -- 2.7.4