[Title]titlebar changed & thread page data update
authoryeongtaik.byeon <yeongtaik.byeon@samsung.com>
Tue, 10 Jul 2012 08:40:45 +0000 (17:40 +0900)
committeryeongtaik.byeon <yeongtaik.byeon@samsung.com>
Tue, 10 Jul 2012 08:40:45 +0000 (17:40 +0900)
[Type]feature
[Module]titlebar, thread page update
[Priority]high
[CQ#]
[Redmine#]5840,5322
[Problem]
[Cause]
[Solution]
[TestCase]

12 files changed:
org.tizen.dynamicanalyzer.workbench/src/org/tizen/dynamicanalyzer/workbench/ApplicationWorkbenchWindowAdvisor.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/CoolbarArea.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/base/DAEffectFrame.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/filePage/fileChart/FileChartManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/pageInfo/PageDataColumn.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/pageInfo/PageDataItem.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/pageInfo/PageDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/threadPage/ThreadChartView.java [moved from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/ThreadPage/ThreadChartView.java with 95% similarity]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/threadPage/ThreadPage.java [moved from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/ThreadPage/ThreadPage.java with 82% similarity]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/threadPage/ThreadPageDataManager.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/AboutDialog.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/ConfigurationDialog.java

index 5bbb54c..823fd03 100644 (file)
@@ -54,7 +54,7 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
                IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
                configurer.setInitialSize(new Point(width, height));
                configurer.setShowStatusLine(false);
-               configurer.setShellStyle(SWT.NO_TRIM | SWT.NO_BACKGROUND);
+               configurer.setShellStyle(SWT.SHELL_TRIM/* | SWT.NO_BACKGROUND*/);
        }
 
        public void postWindowOpen() {
index db6edfd..95cec18 100755 (executable)
@@ -6,6 +6,8 @@ import java.util.List;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.PaintEvent;
 import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.events.ShellEvent;
+import org.eclipse.swt.events.ShellListener;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Cursor;
 import org.eclipse.swt.graphics.Font;
@@ -244,6 +246,39 @@ public class CoolbarArea {
 
        public static boolean bThreadPageWork = false; // FIXME
 
+       private ShellListener shellListener = new ShellListener(){
+
+               @Override
+               public void shellActivated(ShellEvent e) {
+                       // TODO Auto-generated method stub
+                       
+               }
+
+               @Override
+               public void shellClosed(ShellEvent e) {
+                       // TODO Auto-generated method stub
+                       PlatformUI.getWorkbench().close();
+               }
+
+               @Override
+               public void shellDeactivated(ShellEvent e) {
+                       // TODO Auto-generated method stub
+                       
+               }
+
+               @Override
+               public void shellDeiconified(ShellEvent e) {
+                       // TODO Auto-generated method stub
+                       
+               }
+
+               @Override
+               public void shellIconified(ShellEvent e) {
+                       // TODO Auto-generated method stub
+                       
+               }
+               
+       };
        private Listener titlebarListener = new Listener() {
                Point downPt = null;
                Point downLocation = null;
@@ -581,22 +616,22 @@ public class CoolbarArea {
                baseComposite.setLayout(layout);
 
                // Creates title bar.
-               titlebarComposite = new Composite(baseComposite, SWT.NONE);
-               titlebarComposite.setLayout(layout);
-               titlebarComposite.addPaintListener(new PaintListener() {
-                       @Override
-                       public void paintControl(PaintEvent e) {
-                               // Draws titlebar background.
-                               Pattern pattern = new Pattern(shell.getDisplay(), topImage2);
-                               e.gc.setBackgroundPattern(pattern);
-                               e.gc.fillRectangle(START, START,
-                                               titlebarComposite.getBounds().width,
-                                               titlebarComposite.getBounds().height);
-                               pattern.dispose();
-                       }
-               });
-
-               createTitlebar(titlebarComposite);
+//             titlebarComposite = new Composite(baseComposite, SWT.NONE);
+//             titlebarComposite.setLayout(layout);
+//             titlebarComposite.addPaintListener(new PaintListener() {
+//                     @Override
+//                     public void paintControl(PaintEvent e) {
+//                             // Draws titlebar background.
+//                             Pattern pattern = new Pattern(shell.getDisplay(), topImage2);
+//                             e.gc.setBackgroundPattern(pattern);
+//                             e.gc.fillRectangle(START, START,
+//                                             titlebarComposite.getBounds().width,
+//                                             titlebarComposite.getBounds().height);
+//                             pattern.dispose();
+//                     }
+//             });
+//
+//             createTitlebar(titlebarComposite);
 
                final FormLayout formLayout = new FormLayout();
                formLayout.marginWidth = OFFSET_ZERO;
@@ -616,15 +651,15 @@ public class CoolbarArea {
                // Sets layout data.
                Control page = configurer.createPageComposite(baseComposite);
 
-               FormData data = new FormData();
-               data.top = new FormAttachment(START, 0);
-               data.left = new FormAttachment(START, 0);
-               data.right = new FormAttachment(END, -0);
-               data.height = DesignConstants.TITLEBAR_HEIGHT;
-               titlebarComposite.setLayoutData(data);
+//             FormData data = new FormData();
+//             data.top = new FormAttachment(START, 0);
+//             data.left = new FormAttachment(START, 0);
+//             data.right = new FormAttachment(END, -0);
+//             data.height = DesignConstants.TITLEBAR_HEIGHT;
+//             titlebarComposite.setLayoutData(data);
 
-               data = new FormData();
-               data.top = new FormAttachment(titlebarComposite, 0);
+               FormData data = new FormData();
+               data.top = new FormAttachment(0, 0);
                data.left = new FormAttachment(0, 0);
                data.right = new FormAttachment(100, 0);
                data.height = 38;
@@ -650,7 +685,8 @@ public class CoolbarArea {
                }
 
                // Adds listeners.
-               addTitlebarAndShellListeners();
+               shell.addShellListener(shellListener);
+//             addTitlebarAndShellListeners();
        }
 
        private void addTitlebarListeners() {
@@ -1290,7 +1326,8 @@ public class CoolbarArea {
                }
 
                // Removes listeners.
-               removeTitlebarAndShellListeners();
+               shell.removeShellListener(shellListener);
+//             removeTitlebarAndShellListeners();
        }
 
        public long getTime() {
index e26e950..df2c335 100644 (file)
@@ -18,9 +18,9 @@ import org.eclipse.swt.widgets.Canvas;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.tizen.dynamicanalyzer.ui.views.CoolbarArea;
-import org.tizen.dynamicanalyzer.ui.views.ThreadPage.ThreadPage;
 import org.tizen.dynamicanalyzer.ui.views.filePage.FilePage;
 import org.tizen.dynamicanalyzer.ui.views.summaryPage.SummaryPage;
+import org.tizen.dynamicanalyzer.ui.views.threadPage.ThreadPage;
 import org.tizen.dynamicanalyzer.ui.views.timelinePage.TimelinePage;
 import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;
 import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener;
index 3223b2f..3e59421 100644 (file)
@@ -150,7 +150,7 @@ public class FileChartManager {
                        String seqNum = input.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX);
                        // socket
                        int type = Integer.parseInt(fdType);
-                       if (type == 1) {
+                       if (type == 1 || type == 2) {
                                continue;
                        }
 
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/pageInfo/PageDataColumn.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/pageInfo/PageDataColumn.java
new file mode 100644 (file)
index 0000000..2006439
--- /dev/null
@@ -0,0 +1,75 @@
+package org.tizen.dynamicanalyzer.ui.views.pageInfo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PageDataColumn {
+       public final static int COLUMN_ATTRIBUTE_NONE = 0;
+       public final static int COLUMN_ATTRIBUTE_STRING = 1;
+       public final static int COLUMN_ATTRIBUTE_INT = 2;
+       public final static int COLUMN_ATTRIBUTE_DOUBLE = 3;
+       private List<String> Column = null;
+       private List<Integer> ColumnAttribute = null;
+       private int ColumnCount = 0;
+       
+       public PageDataColumn(int ColumnCount, String Column[], Integer ColumnAttribute[]){
+               if(null == this.Column)
+                       this.Column = new ArrayList<String>();
+
+               if(null == this.ColumnAttribute)
+                       this.ColumnAttribute = new ArrayList<Integer>();
+
+               this.ColumnCount = ColumnCount;
+               for(int i=0; i < ColumnCount; i++){
+                       if(Column.length > i)
+                               SetColumnText(i,Column[i]);
+                       else
+                               SetColumnText(i,"Column"+i);
+                       if(Column.length > i)
+                               SetColumnAttribute(i,ColumnAttribute[i]);
+                       else
+                               SetColumnAttribute(i,COLUMN_ATTRIBUTE_NONE);
+               }
+       }
+       
+       public String GetColumnText(int Index){
+               if(null != Column)
+                       return Column.get(Index);
+               else
+                       return null;
+       }
+
+       public int GetColumnAttribute(int Index){
+               if(null != ColumnAttribute)
+                       return ColumnAttribute.get(Index);
+               else
+                       return COLUMN_ATTRIBUTE_NONE;
+       }
+
+       public void SetColumnText(int Index, String Text){
+               if (Text == null)
+                       return;
+               if (GetColumnText(Index).equals(Text))
+                       return;
+               Column.add(Index,Text);
+       }
+
+       public void SetColumnAttribute(int Index, int Attribute){
+               if (Attribute < COLUMN_ATTRIBUTE_NONE || Attribute > COLUMN_ATTRIBUTE_DOUBLE)
+                       return;
+               if (GetColumnAttribute(Index) == Attribute)
+                       return;
+               ColumnAttribute.add(Index,Attribute);
+       }
+       
+       public void clear(){
+               if(null != Column){
+                       Column.clear();
+                       Column = null;
+               }
+               if(null != ColumnAttribute){
+                       ColumnAttribute.clear();
+                       ColumnAttribute = null;
+               }
+       }
+}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/pageInfo/PageDataItem.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/pageInfo/PageDataItem.java
new file mode 100644 (file)
index 0000000..af82ceb
--- /dev/null
@@ -0,0 +1,35 @@
+package org.tizen.dynamicanalyzer.ui.views.pageInfo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PageDataItem {
+       private List<String> Item = null;
+       private int ColumnCount = 0;
+       
+       public PageDataItem(int ColumnCount, String Item[]){
+               if(null == this.Item)
+                       this.Item = new ArrayList<String>();
+               
+               this.ColumnCount = ColumnCount;
+               for(int i=0; i < ColumnCount; i++){
+                       if(Item.length <= i)
+                               return;
+                       SetText(i,Item[i]);
+               }
+       }
+       
+       public String GetText(int Index){
+               if(null != Item)
+                       return Item.get(Index);
+               else
+                       return null;
+       }
+       public void SetText(int Index, String Text){
+               if (Text == null)
+                       return;
+               if (GetText(Index).equals(Text))
+                       return;
+               Item.add(Index,Text);
+       }
+}
index b40fe32..b6e1f1f 100644 (file)
@@ -10,11 +10,12 @@ import org.tizen.dynamicanalyzer.model.LogPackage;
 import org.tizen.dynamicanalyzer.model.WarningData;
 import org.tizen.dynamicanalyzer.ui.views.filePage.fileChart.FileChartManager;
 
-public abstract class PageDataManager<E> {
-       private List<E> row = null;
-       private List<String> column = null;
+public abstract class PageDataManager {
+       private List<PageDataItem> rows = null;
+       private PageDataColumn column = SetPageDataColumn();
 //     private List<WarningData> warning = null;
        private List<FailedData> failed = null;
+       private int ColumnCount = 0;
 
        private void AddErrorData(FailedData data){
                if(null == failed)
@@ -27,14 +28,58 @@ public abstract class PageDataManager<E> {
 //                     warning = new ArrayList<WarningData>();
 //             warning.add(data);
 //     }
+
+       private void AddPageDataItem(PageDataItem data){
+               if(null == rows)
+                       rows = new ArrayList<PageDataItem>();
+               rows.add(data);
+       }
        
-       private void AddPageData(E data){
-               if(null == row)
-                       row = new ArrayList<E>();
-               row.add((E)data);
+       protected int FindInsertIndex(PageDataItem data, int Index){
+               int ret = rows.size()-1;
+               switch(column.GetColumnAttribute(Index)){
+               case PageDataColumn.COLUMN_ATTRIBUTE_INT:
+                       int intVal = Integer.valueOf(data.GetText(Index));
+                       for(int i=ret; i >=0; i-- ){
+                               if(Integer.valueOf(rows.get(i).GetText(Index)) < intVal){
+                                       return i;
+                               }
+                       }
+                       break;
+               case PageDataColumn.COLUMN_ATTRIBUTE_STRING:
+                       String stringVal = data.GetText(Index);
+                       for(int i=ret; i >=0; i-- ){
+                               if(rows.get(i).GetText(Index).compareTo(stringVal) < 0){
+                                       return i;
+                               }
+                       }
+                       break;
+               case PageDataColumn.COLUMN_ATTRIBUTE_DOUBLE:
+                       double doubleVal = Double.valueOf(data.GetText(Index));
+                       for(int i=ret; i >=0; i-- ){
+                               if(Double.valueOf(rows.get(i).GetText(Index)) < doubleVal){
+                                       return i;
+                               }
+                       }
+                       break;
+               default:
+                       break;
+               }
+               return ret;
        }
        
-       public void SetColumn(List<String> column){
+       protected void AddPageDataItemBySortIndex(PageDataItem data, int Index){
+               int insertIndex;
+               if(null == rows)
+                       rows = new ArrayList<PageDataItem>();
+               for(int i = rows.size() - 1; i>=0; i--){
+                       insertIndex = FindInsertIndex(data, Index);
+                       if(insertIndex>=0 && insertIndex<=rows.size())
+                               rows.add(insertIndex,data);
+               }
+       }
+
+       public void SetPageDataColumn(PageDataColumn column){
                this.column = column;
        }
 
@@ -56,14 +101,38 @@ public abstract class PageDataManager<E> {
                        }
                        
                        //add page data
-                       E data = GetPageData(input);
+                       PageDataItem data = MakePageData(input);
                        if(null != data)
-                               AddPageData(data);
+                               AddPageDataItem(data);
                }       
        }
+
+       public void SetColumnCount(int ColumnCount){
+               this.ColumnCount = ColumnCount;
+       }
+       
+       public void clear(){
+               if(null != rows){
+                       rows.clear();
+                       rows = null;
+               }
+               if(null != column){
+                       column.clear();
+                       column = null;
+               }
+//             if(null != warning){
+//                     warning.clear();
+//                     warning = null;
+//             }
+               if(null != failed){
+                       failed.clear();
+                       failed = null;
+               }
+       }
        
+       public abstract PageDataColumn SetPageDataColumn(); 
        public abstract List<List<String>> GetLogsFromLogPackage(LogPackage logPack);
-       public abstract E GetPageData(List<String> input);
+       public abstract PageDataItem MakePageData(List<String> input);
        public abstract boolean ErrorCheck(List<String> input);
 //     public abstract boolean WarningCheck(List<String> input);
 }
@@ -1,20 +1,13 @@
-package org.tizen.dynamicanalyzer.ui.views.ThreadPage;
+package org.tizen.dynamicanalyzer.ui.views.threadPage;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.graphics.Rectangle;
+
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.tizen.dynamicanalyzer.constants.DesignConstants;
-import org.tizen.dynamicanalyzer.nl.InformationViewLables;
-import org.tizen.dynamicanalyzer.ui.views.CallstackView;
+import org.tizen.dynamicanalyzer.model.LogPackage;
 import org.tizen.dynamicanalyzer.ui.views.base.DAPageComposite;
-import org.tizen.dynamicanalyzer.ui.views.filePage.FileApiListView;
-import org.tizen.dynamicanalyzer.ui.views.filePage.FileChartView;
-import org.tizen.dynamicanalyzer.ui.views.filePage.FileDetailInfoView;
-import org.tizen.dynamicanalyzer.ui.widgets.DATabComposite;
 
 public class ThreadPage extends DAPageComposite {
        public final static int THREADCHART_INDEX = 0;
@@ -30,9 +23,12 @@ public class ThreadPage extends DAPageComposite {
        SashForm baseForm;
        SashForm leftForm;
        SashForm rightForm;
+       
+       ThreadPageDataManager tManager = ThreadPageDataManager.getInstance();
 
        public ThreadPage(Composite parent, int style) {
                super(parent, style);
+               
                this.setLayout(new FillLayout());
                baseForm = new SashForm(this, SWT.HORIZONTAL);
                baseForm.setLayout(new FillLayout());
@@ -94,4 +90,7 @@ public class ThreadPage extends DAPageComposite {
                });
                */
        }
+       public void updateLog(LogPackage logPack) {
+               tManager.ParsePageData(logPack);
+       }
 }
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/threadPage/ThreadPageDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/views/threadPage/ThreadPageDataManager.java
new file mode 100644 (file)
index 0000000..8e16291
--- /dev/null
@@ -0,0 +1,80 @@
+package org.tizen.dynamicanalyzer.ui.views.threadPage;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.constants.LogCenterConstants;
+import org.tizen.dynamicanalyzer.model.LogPackage;
+import org.tizen.dynamicanalyzer.model.Logs;
+import org.tizen.dynamicanalyzer.ui.views.pageInfo.PageDataColumn;
+import org.tizen.dynamicanalyzer.ui.views.pageInfo.PageDataItem;
+import org.tizen.dynamicanalyzer.ui.views.pageInfo.PageDataManager;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+
+public class ThreadPageDataManager extends PageDataManager {
+       private static ThreadPageDataManager instance = null;
+
+       public static ThreadPageDataManager getInstance() {
+               if (null == instance) {
+                       instance = new ThreadPageDataManager();
+               }
+               return instance;
+       }
+
+       private ThreadPageDataManager(){
+               
+       }
+
+       @Override
+       public PageDataColumn SetPageDataColumn() {
+               // TODO Auto-generated method stub
+               PageDataColumn pageColumn = new PageDataColumn(0, null, null);
+               return pageColumn;
+       }
+
+       @Override
+       public List<List<String>> GetLogsFromLogPackage(LogPackage logPack) {
+               // TODO Auto-generated method stub
+               Logs logs = logPack.getLogs(LogCenterConstants.LOG_RESOURCE);
+               if (null == logs || logs.getLogs().size() == 0) {
+                       return null;
+               }
+               List<List<String>> inputs = logs.getLogs();
+               List<List<String>> ret = new ArrayList<List<String>>();
+               int size = inputs.size();
+
+               for (int i = 0; i < size; i++) {
+                       List<String> input = inputs.get(i);
+                       if (AnalyzerUtil.isInternal(input, false)) {
+                               continue;
+                       }
+                       String fdType = input.get(LogCenterConstants.RESOURCE_FDTYPE_INDEX);
+
+                       int type = Integer.parseInt(fdType);
+                       if (type != 2) {
+                               continue;
+                       }
+                       ret.add(input);
+               }
+               return ret;
+       }
+
+       @Override
+       public PageDataItem MakePageData(List<String> input) {
+               // TODO Auto-generated method stub
+
+               return null;
+       }
+
+       @Override
+       public boolean ErrorCheck(List<String> input) {
+               // TODO Auto-generated method stub
+               return false;
+       }
+       
+       public void clear(){
+               super.clear();
+               instance = null;
+       }
+
+}
index d2b573f..a71775b 100644 (file)
@@ -1,6 +1,5 @@
 package org.tizen.dynamicanalyzer.ui.widgets;
 
-import org.eclipse.jface.window.Window;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.layout.FormAttachment;
@@ -18,7 +17,7 @@ import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
 import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;
 import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener;
 
-public class AboutDialog extends Window {
+public class AboutDialog {
        private Shell parent = null;
        private DAWindow shell = null;
        private DACustomButton licenseButton = null;
@@ -31,7 +30,6 @@ public class AboutDialog extends Window {
        private final Image iconImage = ImageResources.ABOUT_ICON;
 
        public AboutDialog(Shell parent, int style) {
-               super(parent);
                this.parent = parent;
        }
 
@@ -53,7 +51,7 @@ public class AboutDialog extends Window {
                }
        };
 
-       @Override
+
        public int open() {
                shell = new DAWindow(parent, SWT.APPLICATION_MODAL);
                shell.setSize(456, 184);
index ade5ce1..92aab2f 100644 (file)
@@ -16,7 +16,7 @@ import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
 import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;\r
 import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener;\r
 \r
-public class ConfigurationDialog/* extends Window */{\r
+public class ConfigurationDialog{\r
        private Shell parent = null;\r
        private DAWindow window = null;\r
        private DACustomButton okButton = null;\r