network : data module of the network page was modified to use the DB 01/19901/1
authorHyunjong,park <phjwithyou.park@samsung.com>
Wed, 23 Apr 2014 01:54:16 +0000 (10:54 +0900)
committerHyunjong,park <phjwithyou.park@samsung.com>
Wed, 23 Apr 2014 01:55:48 +0000 (10:55 +0900)
Signed-off-by: Hyunjong,park <phjwithyou.park@samsung.com>
Change-Id: Id7a812309f26c894df0fc7030fae1007a521f268

33 files changed:
org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBConstants.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/NetworkPageLabels.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/NetworkPageLabels.properties
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/NetworkData.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChart.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartBoard.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartData.java [deleted file]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartDataEvent.java [deleted file]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartManager.java [deleted file]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDataMaker.java [deleted file]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDetailInfoView.java [deleted file]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDetailView.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkPage.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTable.java [moved from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkApiListTable.java with 71% similarity]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTableView.java [moved from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkApiListView.java with 61% similarity]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTrafficChart.java [deleted file]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkAPIDBManager.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataMaker.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataManager.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkSeriesDBManager.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/StatusSeriesListSortComparator.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/type/NetworkAPIType.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/type/NetworkSelectionType.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/type/NetworkSeriesType.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ConfigureManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAWindowingTableComposite.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/WindowingTableColumnSizePackListener.java

index 1c71cfb..df5b258 100644 (file)
@@ -110,11 +110,12 @@ public class DAChartBoardItemCell extends Composite {
                nameCell.addMouseListener(new MouseListener() {
                        @Override
                        public void mouseUp(MouseEvent e) {
+                               parent.callbackSelect(true);
                        }
 
                        @Override
                        public void mouseDown(MouseEvent e) {
-                               parent.callbackSelect(true);
+                               //parent.callbackSelect(true);
                        }
 
                        @Override
index c74d4a2..353fcb0 100644 (file)
@@ -5,6 +5,7 @@ import org.tizen.dynamicanalyzer.constant.CommonConstants;
 public class DBConstants {
        // options constant
        public static final String EMPTY = CommonConstants.EMPTY;
+       public static final String PRIMARY_KEY = "PRIMARY KEY NOT NULL";//$NON-NLS-1$
        public static final String NOT_NULL = "not null";//$NON-NLS-1$
 
        // types type constant
index 6f38100..d1a3c75 100644 (file)
@@ -54,6 +54,7 @@ import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfo;
 import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfoPackage;\r
 import org.tizen.dynamicanalyzer.ui.info.callstack.CallStackData;\r
 import org.tizen.dynamicanalyzer.ui.info.callstack.CallStackUnit;\r
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;\r
 import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;\r
 import org.tizen.dynamicanalyzer.ui.range.RangePage;\r
 import org.tizen.dynamicanalyzer.ui.summary.failed.FailedChecker;\r
@@ -68,9 +69,9 @@ import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage;
 import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;\r
 import org.tizen.dynamicanalyzer.ui.toolbar.opentrace.OpenTraceProgressManager;\r
 import org.tizen.dynamicanalyzer.ui.userinterface.UIDataManager;\r
+import org.tizen.dynamicanalyzer.util.DALogger;\r
 import org.tizen.dynamicanalyzer.util.WorkbenchUtil;\r
 import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;\r
-import org.tizen.dynamicanalyzer.util.DALogger;\r
 import org.tizen.dynamicanalyzer.widgets.combo.DACustomCombo;\r
 import org.tizen.dynamicanalyzer.widgets.da.base.DADialog;\r
 import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite;\r
@@ -173,6 +174,8 @@ public class OpenTraceHandler extends AbstractHandler {
                OpenTraceProgressManager.getInstance().runThreads();\r
                OpenTraceProgressManager.getInstance().openTraceComplete();\r
                SqlManager.getInstance().closeConnection();\r
+               \r
+               NetworkDataManager.getInstance().openProcess();\r
                return null;\r
        }\r
 \r
index 42541d0..02c8369 100644 (file)
@@ -66,6 +66,7 @@ public class NetworkPageLabels extends NLS {
        public static String NETWORK_CHART_SERIES;
        public static String NETWORK_CHART_API;
        public static String NETWORK_CHART_ACCESS;
+       public static String NETWORK_CHILD_CHART_NAME;
        
        public static String NETWORK_CHART_TOOLTIP_FD_OPEND;
        public static String NETWORK_CHART_TOOLTIP_CONNECTED;
@@ -81,6 +82,30 @@ public class NetworkPageLabels extends NLS {
        public static String NETWORK_CHART_CLIENT_NAME;
        public static String NETWORK_CHART_SESSION_NAME;
        public static String NETWORK_CHART_TRANSACTION_NAME;
+
+       public static String NETWORK_DB_RID;
+       public static String NETWORK_DB_DESTINATION_ADDRESS; 
+       public static String NETWORK_DB_FD_VALUE;
+       public static String NETWORK_DB_API_ID;
+       
+       public static String NETWORK_API_DB_TABLENAME;
+       public static String NETWORK_API_DB_API_TIME;
+       
+       public static String NETWORK_API_DB_ERRNO;
+       public static String NETWORK_API_DB_ARGUMENT;
+       public static String NETWORK_API_DB_RETURN;
+       public static String NETWORK_API_DB_BYTE_SIZE;
+       public static String NETWORK_API_DB_PAYLOAD;
+       public static String NETWORK_API_DB_API_TYPE;
+       public static String NETWORK_API_DB_CALLER_PC_ADDRESS;
+       public static String NETWORK_API_DB_LIB_NAME;
+       
+       public static String NETWORK_SERIES_DB_TABLENAME;
+       public static String NETWORK_SERIES_DB_START_TIME;
+       public static String NETWORK_SERIES_DB_END_TIME;
+       public static String NETWORK_SERIES_DB_STATUS_TYPE;
+       
+       
        
        public static String TIME_MS;
                        
index 5398a38..55fc8c4 100644 (file)
@@ -15,19 +15,20 @@ NETWORK_API_LIST_VIEW_ERRNO=Error code
 
 NETWORK_CHART=Network
 NETWORK_CHART_NOTCONNECT= Unknown\n Address
+NETWORK_CHILD_CHART_NAME =FD : 
 
 NETWORK_DETAILS_TITLE=Network Details
-NETWORK_DETAILS_ADDRESS=Address :
-NETWORK_DETAILS_TOTAL_SIZE=Packet size :
-NETWORK_DETAILS_RECV_SIZE=Recv size :
-NETWORK_DETAILS_SEND_SIZE=Send size :
-NETWORK_DETAILS_TOTAL_USE_TIME=Usage time :
-NETWORK_DETAILS_API_COUNT=API count :
-NETWORK_DETAILS_FAILED_API_COUNT=Failed API count :
+NETWORK_DETAILS_ADDRESS=Address : 
+NETWORK_DETAILS_TOTAL_SIZE=Packet size : 
+NETWORK_DETAILS_RECV_SIZE=Recv size : 
+NETWORK_DETAILS_SEND_SIZE=Send size : 
+NETWORK_DETAILS_TOTAL_USE_TIME=Usage time : 
+NETWORK_DETAILS_API_COUNT=API count : 
+NETWORK_DETAILS_FAILED_API_COUNT=Failed API count : 
 NETWORK_DETAILS_NAME_NEWLINE=Network name : \n 
-NETWORK_DETAILS_PAYLOAD_ASCII=Payload(Ascii)
+NETWORK_DETAILS_PAYLOAD_ASCII=Payload(Ascii) 
 NETWORK_DETAILS_PAYLOAD_HEXCODE=Payload(Hex Code)
-NETWORK_DETAILS_SEND_ACK_TIME=send ack time :
+NETWORK_DETAILS_SEND_ACK_TIME=send ack time : 
  
 NETWORK_CHART_SERIES=STATE
 NETWORK_CHART_API=API List
@@ -49,4 +50,25 @@ NETWORK_CHART_CLIENT_NAME=Client
 NETWORK_CHART_SESSION_NAME=Session
 NETWORK_CHART_TRANSACTION_NAME=Transaction
 
-TIME_MS = ms
\ No newline at end of file
+TIME_MS = ms
+
+NETWORK_DB_RID = "RID"
+NETWORK_DB_DESTINATION_ADDRESS = DESTINATION_ADDRESS
+NETWORK_DB_FD_VALUE = FD_VALUE
+NETWORK_DB_API_ID = API_ID
+
+NETWORK_API_DB_TABLENAME = NETWORK_API
+NETWORK_API_DB_API_TIME = API_TIME
+NETWORK_API_DB_ERRNO = ERRNO
+NETWORK_API_DB_ARGUMENT = ARGUMENT
+NETWORK_API_DB_RETURN = RETURN
+NETWORK_API_DB_BYTE_SIZE = BYTE_SIZE
+NETWORK_API_DB_PAYLOAD = PAYLOAD
+NETWORK_API_DB_API_TYPE = API_TYPE
+NETWORK_API_DB_CALLER_PC_ADDRESS = CALLER_PC_ADDRESS
+NETWORK_API_DB_LIB_NAME = LIB_NAME
+
+NETWORK_SERIES_DB_TABLENAME = NETWORK_SERIES
+NETWORK_SERIES_DB_START_TIME = START_TIME
+NETWORK_SERIES_DB_END_TIME = END_TIME
+NETWORK_SERIES_DB_STATUS_TYPE = STATUS_TYPE
\ No newline at end of file
index 708ad8d..3ad2e08 100755 (executable)
@@ -77,7 +77,7 @@ public class SqlManager {
        // private static final int PERMIT = 1;
        // private Semaphore semaphore = new Semaphore(PERMIT);
        private static final DALogger DA_LOG = DALogger.getInstance();
-       
+
        private static SqlManager instance = null;
 
        private Connection connection = null;
@@ -188,9 +188,9 @@ public class SqlManager {
                        return;
                } else {
                        try {
-//                             Statement st = connection.createStatement();
-//                             st.execute("SHUTDOWN");
-//                             CommonUtil.tryClose(st);
+                               // Statement st = connection.createStatement();
+                               // st.execute("SHUTDOWN");
+                               // CommonUtil.tryClose(st);
                                connection.close();
                        } catch (SQLException se) {
                                if (!se.getSQLState().equals("XJ015")) {
@@ -285,7 +285,7 @@ public class SqlManager {
                        }
                }
 
-//             System.out.println("dddd : " + query.toString());
+               // System.out.println("dddd : " + query.toString());
                return query.toString();
        }
 
@@ -324,8 +324,7 @@ public class SqlManager {
                        List<DBTableInfo> tableInfos = dbManager.getTableInfos();
                        for (DBTableInfo info : tableInfos) {
                                if (!executeUpdateCreateTable(stat, info.createQuery())) {
-                                       DA_LOG.debug("table create failed..."
-                                                       + info.getTableName());
+                                       DA_LOG.debug("table create failed..." + info.getTableName());
                                }
                        }
                } catch (SQLException e) {
index b570311..5a0eea6 100644 (file)
@@ -14,11 +14,11 @@ public class NetworkData extends ProbeCommonData {
 
        long objectAddress = 0;
        long fdValue = 0;
-       int fdApiType = 0;
+       protected int fdApiType = 0;
        int destinationIPAddress = 0;
        int destinationPortAddress = 0;
-       String packetMessage = CommonConstants.EMPTY;
-       int messageSize = 0;
+       protected String packetMessage = CommonConstants.EMPTY;
+       protected int messageSize = 0;
 
        public long getObjectAddress() {
                return objectAddress;
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChart.java
new file mode 100644 (file)
index 0000000..fe3198c
--- /dev/null
@@ -0,0 +1,340 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com> 
+ * yeongtaik byeon <yeongtaik.byeon@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+
+package org.tizen.dynamicanalyzer.ui.network;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.swt.graphics.Color;
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.resources.ColorResources;
+import org.tizen.dynamicanalyzer.swap.channel.data.ApiNameManager;
+import org.tizen.dynamicanalyzer.ui.network.data.StatusSeriesListSortComparator;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem;
+import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
+
+public class NetworkChart {
+       protected DAChartBoardItem item;
+       protected DAChart chart;
+       private List<NetworkChart> children = new ArrayList<NetworkChart>();
+
+       private DAChartSeries statueSeries;
+       private DAChartSeries apiSeries;
+       private DAChartSeries accessSeries;
+
+       private String chartName = CommonConstants.EMPTY;
+       private String destinationAddress = CommonConstants.EMPTY;
+       private String fdValue = CommonConstants.EMPTY;
+
+       public NetworkChart(String chartName, String destinationAddress,
+                       String fdValue, DAChartBoardItem item, DAChart chart) {
+               setChartName(chartName);
+               setDestinationAddress(destinationAddress);
+               setFdValue(fdValue);
+               setItem(item);
+               setChart(chart);
+       }
+
+       public String getChartName() {
+               return chartName.trim();
+       }
+
+       public void setChartName(String chartName) {
+               this.chartName = chartName;
+       }
+
+       public String getDestinationAddress() {
+               return destinationAddress.trim();
+       }
+
+       public void setDestinationAddress(String destinationAddress) {
+               this.destinationAddress = destinationAddress;
+       }
+
+       public String getFdValue() {
+               return fdValue.trim();
+       }
+
+       public void setFdValue(String fdValue) {
+               this.fdValue = fdValue;
+       }
+
+       public boolean isParentChartRow() {
+               if (children.size() > 0) {
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+
+       public void pushChild(NetworkChart data) {
+               children.add(data);
+       }
+
+       public void setItem(DAChartBoardItem item) {
+               this.item = item;
+               setChart(item.getChart());
+               apiSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_API);
+               accessSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_ACCESS);
+               statueSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_SERIES);
+       }
+
+       public DAChartBoardItem getItem() {
+               return item;
+       }
+
+       public DAChart getChart() {
+               return chart;
+       }
+
+       public void setChart(DAChart chart) {
+               this.chart = chart;
+       }
+
+       public void clearSeries() {
+               apiSeries.clear();
+               statueSeries.clear();
+       }
+
+       public void updateApiSeries(List<NetworkAPIType> apiList) {
+               for (int i = 0; i < apiList.size(); i++) {
+                       if (getDestinationAddress().equals(
+                                       apiList.get(i).getDestinationAddress())) {
+                               if (!isParentChartRow()
+                                               && !getFdValue().equals(apiList.get(i).getFdStr())) {
+                                       continue;
+                               }
+                               NetworkAPIType data = apiList.get(i);
+                               DAChartSeriesItem seriesItem = null;
+                               double time = data.getTime() / TimelineConstants.MEGA_DOUBLE;
+                               Color color = ColorResources.NETWORK_API_USED;
+                               String apiName = ApiNameManager.getApiName(data.getApiNameID());
+                               if (data.getErrno() != 0) {
+                                       color = ColorResources.NETWORK_API_FAILED;
+                               }
+                               seriesItem = new DAChartSeriesItem(time,
+                                               DAChartSeriesItem.SERIES_STATE_BAR, color, apiName);
+                               apiSeries.addSeriesItem(seriesItem);
+                       }
+               }
+               chart.redraw();
+       }
+
+       private void sortStatusSeriesByStartTime(List<NetworkSeriesType> statusList) {
+               Collections.sort(statusList, new StatusSeriesListSortComparator());
+       }
+
+       public void updateParentChartStatusSeries(List<NetworkSeriesType> statusList) {
+               NetworkSeriesType data = null;
+               double startTime = -1;
+               double endTime = -1;
+
+               double openTimeOfNotClosed = 999999999;
+
+               for (int i = 0; i < statusList.size(); i++) {
+                       if (getDestinationAddress().equals(
+                                       statusList.get(i).getDestinationAddress())) {
+                               data = statusList.get(i);
+
+                               if (isAccessEvnet(data.getAPIType())) {
+                                       continue;
+                               }
+
+                               startTime = data.getStartTime() / TimelineConstants.MEGA_DOUBLE;
+                               endTime = data.getEndTime() / TimelineConstants.MEGA_DOUBLE;
+
+                               if (endTime > 0 && openTimeOfNotClosed > startTime) { // closed
+                                       DAChartSeriesItem seriesItem = new DAChartSeriesItem(
+                                                       startTime, DAChartSeriesItem.SERIES_STATE_CONTINUE,
+                                                       ColorResources.NETWORK_AREA_CLOSED_END,
+                                                       ColorResources.NETWORK_AREA_CLOSED_START,
+                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+                                       statueSeries.addSeriesItem(seriesItem);
+
+                                       int nStatusLastIndex = statueSeries.getSeriesItemList()
+                                                       .size() - 1;
+                                       DAChartSeriesItem endSeriesItem = new DAChartSeriesItem(
+                                                       endTime, DAChartSeriesItem.SERIES_STATE_BAR,
+                                                       ColorResources.NETWORK_AREA_CLOSED_END,
+                                                       ColorResources.NETWORK_AREA_CLOSED_START,
+                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+                                       seriesItem.setBarWidth(0);
+                                       statueSeries.addSeriesItem(seriesItem);
+                                       statueSeries
+                                                       .getSeriesItemList()
+                                                       .get(nStatusLastIndex)
+                                                       .setTooltipText(
+                                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+                                       statueSeries.addSeriesItem(endSeriesItem);
+                               } else { // open
+                                       openTimeOfNotClosed = startTime;
+                                       DAChartSeriesItem seriesItem = new DAChartSeriesItem(
+                                                       startTime, DAChartSeriesItem.SERIES_STATE_CONTINUE,
+                                                       ColorResources.NETWORK_AREA_FD_USED_END,
+                                                       ColorResources.NETWORK_AREA_FD_USED_START,
+                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
+                                       statueSeries.addSeriesItem(seriesItem);
+                               }
+                       }
+               }
+               chart.redraw();
+       }
+
+       public void updateStatusSeries(List<NetworkSeriesType> statusList) {
+               if (isParentChartRow()) {
+                       sortStatusSeriesByStartTime(statusList);
+                       updateParentChartStatusSeries(statusList);
+                       return;
+               }
+               NetworkSeriesType data = null;
+               double startTime = -1;
+               double endTime = -1;
+
+               for (int i = 0; i < statusList.size(); i++) {
+                       if (getDestinationAddress().equals(
+                                       statusList.get(i).getDestinationAddress())
+                                       && getFdValue().equals(statusList.get(i).getFdValue())) {
+                               data = statusList.get(i);
+
+                               if (isAccessEvnet(data.getAPIType())) {
+                                       continue;
+                               }
+                               startTime = data.getStartTime() / TimelineConstants.MEGA_DOUBLE;
+                               endTime = data.getEndTime() / TimelineConstants.MEGA_DOUBLE;
+
+                       }
+               }
+               if (null == data) {
+                       return;
+               }
+
+               DAChartSeriesItem seriesItem = new DAChartSeriesItem(startTime,
+                               DAChartSeriesItem.SERIES_STATE_CONTINUE,
+                               ColorResources.NETWORK_AREA_FD_USED_END,
+                               ColorResources.NETWORK_AREA_FD_USED_START,
+                               NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
+               statueSeries.addSeriesItem(seriesItem);
+
+               if (endTime > 0) {
+                       int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
+                       statueSeries.getSeriesItemList().get(nStatusLastIndex)
+                                       .setColor(ColorResources.NETWORK_AREA_CLOSED_END);
+                       statueSeries
+                                       .getSeriesItemList()
+                                       .get(nStatusLastIndex)
+                                       .setGradationForegroundColor(
+                                                       ColorResources.NETWORK_AREA_CLOSED_START);
+                       statueSeries
+                                       .getSeriesItemList()
+                                       .get(nStatusLastIndex)
+                                       .setTooltipText(
+                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+
+                       DAChartSeriesItem endSeriesItem = new DAChartSeriesItem(endTime,
+                                       DAChartSeriesItem.SERIES_STATE_BAR,
+                                       ColorResources.NETWORK_AREA_CLOSED_END,
+                                       ColorResources.NETWORK_AREA_CLOSED_START,
+                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+                       seriesItem.setBarWidth(0);
+                       statueSeries.addSeriesItem(seriesItem);
+                       statueSeries
+                                       .getSeriesItemList()
+                                       .get(nStatusLastIndex)
+                                       .setTooltipText(
+                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+                       statueSeries.addSeriesItem(endSeriesItem);
+               }
+
+               chart.redraw();
+       }
+
+       public void updateAccessSeries(List<NetworkSeriesType> accessList) {
+               NetworkSeriesType data = null;
+               double startTime = -1;
+               double endTime = -1;
+               for (int i = 0; i < accessList.size(); i++) {
+                       if (getDestinationAddress().equals(
+                                       accessList.get(i).getDestinationAddress())) {
+                               if (!isParentChartRow()
+                                               && !getFdValue().equals(accessList.get(i).getFdValue())) {
+                                       continue;
+                               }
+                               data = accessList.get(i);
+                               if (null == data) {
+                                       continue;
+                               }
+
+                               if (!isAccessEvnet(data.getAPIType())) {
+                                       continue;
+                               }
+                               startTime = data.getStartTime() / TimelineConstants.MEGA_DOUBLE;
+                               endTime = data.getEndTime() / TimelineConstants.MEGA_DOUBLE;
+                               int status = data.getAPIType();
+
+                               Color waitiColor = null;
+                               if (status == NetworkSeriesType.ACCESS_TYPE_WRITE) {
+                                       waitiColor = ColorResources.NETWORK_ACCESS_SEND;
+                               } else if (status == NetworkSeriesType.ACCESS_TYPE_READ) {
+                                       waitiColor = ColorResources.NETWORK_ACCESS_RECV;
+                               } else {
+                                       waitiColor = ColorResources.NETWORK_ACCESS_WAIT;
+                               }
+
+                               DAChartSeriesItem seriesItem = new DAChartSeriesItem(startTime,
+                                               endTime, waitiColor, ApiNameManager.getApiName(data
+                                                               .getApiID()));
+                               accessSeries.addSeriesItem(seriesItem);
+
+                               startTime = -1;
+                               endTime = -1;
+                       }
+               }
+
+               chart.redraw();
+       }
+
+       private boolean isAccessEvnet(int apiType) {
+               {
+                       if (apiType == NetworkSeriesType.ACCESS_TYPE_WAIT
+                                       || apiType == NetworkSeriesType.ACCESS_TYPE_READ
+                                       || apiType == NetworkSeriesType.ACCESS_TYPE_WRITE) {
+                               return true;
+                       } else {
+                               return false;
+                       }
+               }
+
+       }
+}
\ No newline at end of file
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartBoard.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartBoard.java
new file mode 100644 (file)
index 0000000..5dd1a51
--- /dev/null
@@ -0,0 +1,385 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: 
+ * Jooyoul Lee <jy.exe.lee@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+
+package org.tizen.dynamicanalyzer.ui.network;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.widgets.Composite;
+import org.tizen.dynamicanalyzer.common.AnalyzerManager;
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.nl.ThreadPageLabels;
+import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;
+import org.tizen.dynamicanalyzer.resources.ColorResources;
+import org.tizen.dynamicanalyzer.resources.FontResources;
+import org.tizen.dynamicanalyzer.resources.ImageResources;
+import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.PopupClearMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.PopupEndMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.PopupFromSelectionMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.PopupStartMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseEventListener;
+import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseTrackAdapter;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSelectionType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.AutoRangeType;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotTooltip;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
+import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
+import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
+import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu;
+import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuItem;
+
+public class NetworkChartBoard extends DAChartBoard {
+
+       private List<NetworkChart> chartItemList = new ArrayList<NetworkChart>();
+
+       private int statusSeriesListCount = -1;
+       private boolean isFirstMakeChart = true;
+
+       public NetworkChartBoard(Composite parent, String title) {
+               super(parent, title);
+               initIntervalMarkers();
+       }
+
+       public NetworkChartBoard(Composite parent, String title, int[] scaleValues) {
+               super(parent, title, scaleValues);
+       }
+
+       public NetworkChartBoard(Composite parent, String title, int boardStyle) {
+               super(parent, title, boardStyle);
+       }
+
+       @Override
+       protected void callBackScaleChanged() {
+               super.callBackScaleChanged();
+               updateChart();
+       }
+
+       @Override
+       protected void callBackScrollChanged() {
+               super.callBackScrollChanged();
+               updateChart();
+       }
+
+       @Override
+       protected void callBackSizeChanged() {
+               layout(true, true);
+               super.callBackSizeChanged();
+       }
+
+       public void updateChart() {
+               createChartItem();
+               clearSeries();
+               updateSeries();
+               updateApiSeries();
+       }
+
+       public void clear() {
+               super.clear();
+               chartItemList.clear();
+               statusSeriesListCount = -1;
+               isFirstMakeChart = true;
+               initIntervalMarkers();
+       }
+
+       public void initIntervalMarkers() {
+               // selection marker
+               DAChartPlotIntervalMarker selectionMarker = new DAChartPlotIntervalMarker(
+                               -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_AREA);
+               selectionMarker.setBackgroundColor(ColorResources.SELECTION_RANGE);
+               selectionMarker.setAlpha((int) (255 * 0.25));
+               addIntervalMarker(selectionMarker);
+
+               // range analysis marker
+               DAChartPlotIntervalMarker rangeAnalyzeMarker = new DAChartPlotIntervalMarker(
+                               -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_AREA);
+               rangeAnalyzeMarker.setBackgroundColor(ColorResources.YELLOW);
+               rangeAnalyzeMarker.setAlpha((int) (255 * 0.25));
+               addIntervalMarker(rangeAnalyzeMarker);
+
+               // range marker
+               DAChartPlotIntervalMarker rangeMarker = new DAChartPlotIntervalMarker(
+                               -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_LINE);
+               rangeMarker.setForegroundColor(ColorResources.RED);
+               rangeMarker.setAlpha((int) (255 * 0.25));
+               addIntervalMarker(rangeMarker);
+       }
+
+       private void initNetworkChart(DAChart chart, boolean isParent) {
+               if (null == chart) {
+                       return;
+               }
+
+               DAChartPlot plot = chart.getPlot();
+               if (null == plot) {
+                       return;
+               }
+               if (true == isParent) {
+                       plot.setBackgroundImage(ImageResources.BG_GRADIENT);
+               } else {
+                       plot.setBackgroundImage(ImageResources.BG_CHILD_GRADIENT);
+               }
+               plot.setAutoHeightRange(AutoRangeType.MANUAL);
+               plot.setAxisFont(FontResources.CHART_AXIS_FONT);
+               plot.setAxisRangeY(0, 101);
+               plot.setAxisRangeX(getVisibleStartTime(), getVisibleEndTime());
+               DAChartPlotTooltip tooltip = new DAChartPlotTooltip(-1);
+               tooltip.setFont(FontResources.CHART_TOOLTIP_FONT);
+               plot.setTooltip(tooltip);
+
+               DAPopupMenu popupMenu = new DAPopupMenu(chart);
+               popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT);
+               DAPopupMenuItem startItem = new DAPopupMenuItem(popupMenu,
+                               DAPopupMenuItem.NONE);
+               startItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_START);
+               startItem.addListener(new PopupStartMenuItemClickListener(startItem,
+                               this));
+
+               DAPopupMenuItem endItem = new DAPopupMenuItem(popupMenu,
+                               DAPopupMenuItem.NONE);
+               endItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_END);
+               endItem.addListener(new PopupEndMenuItemClickListener(endItem, this));
+
+               DAPopupMenuItem fromSelectionItem = new DAPopupMenuItem(popupMenu,
+                               DAPopupMenuItem.NONE);
+               fromSelectionItem
+                               .setText(TimelineChartLabels.RANGE_CONTEXT_SET_FROM_SELECTION);
+               fromSelectionItem
+                               .addListener(new PopupFromSelectionMenuItemClickListener(
+                                               fromSelectionItem, this));
+
+               DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu,
+                               DAPopupMenuItem.NONE);
+               analysisItem.setText(TimelineChartLabels.RANGE_CONTEXT_ANALYSIS);
+               analysisItem.addListener(new PopupAnalysisMenuItemClickListener());
+
+               DAPopupMenuItem clearItem = new DAPopupMenuItem(popupMenu,
+                               DAPopupMenuItem.NONE);
+               clearItem.setText(TimelineChartLabels.RANGE_CONTEXT_CLEAR);
+               clearItem.addListener(new PopupClearMenuItemClickListener());
+
+               TimelineChartMouseEventListener timelineChartMouseEventListener = new TimelineChartMouseEventListener(
+                               popupMenu, getTimeline());
+               chart.addMouseListener(timelineChartMouseEventListener);
+               chart.addMouseMoveListener(timelineChartMouseEventListener);
+               chart.addMouseTrackListener(new TimelineChartMouseTrackAdapter(
+                               getTimeline()));
+               plot.setMarkers(getMarkers());
+       }
+
+       private NetworkChart getParentChartData(String address, String fd) {
+               for (NetworkChart chart : chartItemList) {
+                       if (chart.getDestinationAddress().equals(address)
+                                       && chart.isParentChartRow()) {
+                               return chart;
+                       }
+               }
+               return null;
+       }
+
+       private void addSeries(DAChart chart) {
+               DAChartSeries apiSeries = new DAChartSeries(
+                               NetworkPageLabels.NETWORK_CHART_API,
+                               DAChartSeries.SERIES_STYLE_EVENT, ColorResources.YELLOW);
+
+               DAChartSeries stateSeries = new DAChartSeries(
+                               NetworkPageLabels.NETWORK_CHART_SERIES,
+                               DAChartSeries.SERIES_STYLE_STATE, ColorResources.WHITE);
+
+               DAChartSeries accessSeries = new DAChartSeries(
+                               NetworkPageLabels.NETWORK_CHART_ACCESS,
+                               DAChartSeries.SERIES_STYLE_EVENT_AREA, ColorResources.WHITE);
+
+               apiSeries.setSummarizeTooltipText(ThreadPageLabels.THREAD_TOOLTIP_APIS);
+
+               chart.addSeries(stateSeries);
+               chart.addSeries(apiSeries);
+               chart.addSeries(accessSeries);
+       }
+
+       public boolean createChartItem() {
+               if (!AnalyzerManager.isRunning() && isFirstMakeChart == true) {
+                       if (null != NetworkDataManager.getInstance().getSeriesList()) {
+                               isFirstMakeChart = false;
+                               for (NetworkSeriesType status : NetworkDataManager
+                                               .getInstance().getSeriesList()) {
+                                       NetworkDataManager
+                                                       .getInstance()
+                                                       .getCheckStatusSeries()
+                                                       .put(status.getFdValue(),
+                                                                       status.getDestinationAddress());
+                               }
+                       }
+               }
+
+               if (statusSeriesListCount != NetworkDataManager.getInstance()
+                               .getCheckStatusSeries().size()) {
+                       for (String fd : NetworkDataManager.getInstance()
+                                       .getCheckStatusSeries().keySet()) {
+                               String destinationAddress = NetworkDataManager.getInstance()
+                                               .getCheckStatusSeries().get(fd);
+
+                               boolean findMatchChartRow = false;
+                               for (NetworkChart chart : chartItemList) {
+                                       if (chart.getDestinationAddress()
+                                                       .equals(destinationAddress)
+                                                       && chart.getFdValue().equals(fd)) {
+                                               findMatchChartRow = true;
+                                               break;
+                                       }
+                               }
+                               if (findMatchChartRow) {
+                                       continue;
+                               }
+
+                               NetworkChart parent = getParentChartData(destinationAddress, fd);
+                               if (null == parent) {
+                                       StringBuffer chartName = new StringBuffer(
+                                                       destinationAddress);
+                                       if (chartName.length() > 10) {
+                                               chartName.replace(10, chartName.length(),
+                                                               CommonConstants.EMPTY);
+                                               chartName.insert(chartName.length(), "...");//$NON-NLS-1$
+                                       }
+                                       DAChartBoardItem parentItem = new DAChartBoardItem(this,
+                                                       chartName.toString());
+                                       parentItem.setData(new NetworkSelectionType(
+                                                       destinationAddress, fd, true));
+                                       DAChart parentDAChart = parentItem.getChart();
+
+                                       initNetworkChart(parentDAChart, true);
+                                       addSeries(parentDAChart);
+                                       NetworkChart parentChartData = new NetworkChart(
+                                                       chartName.toString(), destinationAddress, fd,
+                                                       parentItem, parentDAChart);
+                                       chartItemList.add(parentChartData);
+
+                                       String childChartName = NetworkPageLabels.NETWORK_CHILD_CHART_NAME
+                                                       + fd;
+                                       DAChartBoardItem childItem = new DAChartBoardItem(
+                                                       parentItem, childChartName);
+                                       childItem.setData(new NetworkSelectionType(
+                                                       destinationAddress, fd, false));
+                                       DAChart childDAChart = childItem.getChart();
+                                       initNetworkChart(childDAChart, false);
+                                       addSeries(childDAChart);
+                                       NetworkChart childChartData = new NetworkChart(
+                                                       childChartName, destinationAddress, fd, childItem,
+                                                       childDAChart);
+                                       parentChartData.pushChild(childChartData);
+                                       chartItemList.add(childChartData);
+                               } else {
+                                       String childChartName = NetworkPageLabels.NETWORK_CHILD_CHART_NAME
+                                                       + fd;
+                                       DAChartBoardItem parentItem = parent.getItem();
+                                       DAChartBoardItem childItem = new DAChartBoardItem(
+                                                       parentItem, childChartName);
+                                       childItem.setData(new NetworkSelectionType(
+                                                       destinationAddress, fd, false));
+                                       DAChart childDAChart = childItem.getChart();
+                                       initNetworkChart(childDAChart, false);
+                                       addSeries(childDAChart);
+                                       NetworkChart childChartData = new NetworkChart(
+                                                       childChartName, destinationAddress, fd, childItem,
+                                                       childDAChart);
+                                       parent.pushChild(childChartData);
+                                       chartItemList.add(childChartData);
+                               }
+                       }
+                       statusSeriesListCount = NetworkDataManager.getInstance()
+                                       .getCheckStatusSeries().size();
+               }
+               return true;
+       }
+
+       public void clearSeries() {
+               if (null == chartItemList) {
+                       return;
+               }
+               for (NetworkChart chart : chartItemList) {
+                       chart.clearSeries();
+               }
+       }
+
+       public void updateApiSeries() {
+               List<NetworkAPIType> apiList = NetworkDataManager.getInstance()
+                               .getAPIDBManger()
+                               .selectAPISeries(getVisibleStartTime(), getVisibleEndTime());
+               if (null == apiList) {
+                       return;
+               }
+               for (NetworkChart chart : chartItemList) {
+                       chart.updateApiSeries(apiList);
+               }
+       }
+
+       public void updateSeries() {
+               List<NetworkSeriesType> seriesList = filetirngSeriresList();
+               for (NetworkChart chart : chartItemList) {
+                       chart.updateStatusSeries(seriesList);
+               }
+               for (NetworkChart chart : chartItemList) {
+                       chart.updateAccessSeries(seriesList);
+               }
+       }
+
+       private List<NetworkSeriesType> filetirngSeriresList() {
+               List<NetworkSeriesType> filterTimeList = new ArrayList<NetworkSeriesType>();
+               for (int i = 0; i < NetworkDataManager.getInstance().getSeriesList()
+                               .size(); i++) {
+                       double startTime = NetworkDataManager.getInstance().getSeriesList()
+                                       .get(i).getStartTime()
+                                       / TimelineConstants.MEGA_DOUBLE;
+                       double endTime = NetworkDataManager.getInstance().getSeriesList()
+                                       .get(i).getEndTime()
+                                       / TimelineConstants.MEGA_DOUBLE;
+
+                       if (getVisibleStartTime() <= startTime
+                                       && startTime <= getVisibleEndTime()) {
+                               filterTimeList.add(NetworkDataManager.getInstance()
+                                               .getSeriesList().get(i));
+                       } else if (getVisibleStartTime() <= endTime
+                                       && endTime <= getVisibleEndTime()) {
+                               filterTimeList.add(NetworkDataManager.getInstance()
+                                               .getSeriesList().get(i));
+                       } else if (endTime < 0) {
+                               filterTimeList.add(NetworkDataManager.getInstance()
+                                               .getSeriesList().get(i));
+                       }
+               }
+               return filterTimeList;
+       }
+
+}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartData.java
deleted file mode 100644 (file)
index 271e4bf..0000000
+++ /dev/null
@@ -1,1090 +0,0 @@
-/*
- *  Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact:
- * Hyunjong Park <phjwithyou.park@samsung.com> 
- * yeongtaik byeon <yeongtaik.byeon@samsung.com>
- * Juyoung Kim <j0.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * 
- * Contributors:
- * - S-Core Co., Ltd
- * 
- */
-
-package org.tizen.dynamicanalyzer.ui.network;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Color;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
-import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.ui.summary.failed.FailedData;
-import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
-import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.util.DALogger;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
-
-public class NetworkChartData {
-       private static final DALogger DA_LOG = DALogger.getInstance();
-       
-       private List<NetworkChartData> children = new ArrayList<NetworkChartData>();
-       private NetworkChartData parent = null;
-
-       private DAChartSeries statueSeries;
-       private DAChartSeries apiSeries;
-       private DAChartSeries accessSeries;
-
-       private String fd = AnalyzerLabels.EMPTY_STRING;
-       private List<String> hasFd = new ArrayList<String>();
-       private String address = AnalyzerLabels.EMPTY_STRING;
-       private String thread = AnalyzerLabels.EMPTY_STRING;
-
-       private boolean isFDConnected = true;
-       private boolean isClosedSocket = true;
-       private boolean isFailedAPI = false;
-       // for Detail View Data
-       private List<FailedData> failedData = null;
-       private long messageSize = 0;
-       private long sendSize = 0;
-       private long recvSize = 0;
-       private double socketOpendTime = 0;
-       private double socketClosedTime = 0;
-       private double socketLastUsedTime = 0;
-       private double socketTotalUsedTime = 0;
-
-       protected DAChartBoardItem item;
-       protected List<NetworkChartDataEvent> contents = new ArrayList<NetworkChartDataEvent>();
-       protected List<NetworkChartDataEvent> contentsQueue = new ArrayList<NetworkChartDataEvent>();
-
-       protected DAChart chart;
-       protected boolean hasUpdate = false;
-
-       private NetworkChartDataEvent event = null;
-
-       private int lastAccessIndexForParent = -1;
-
-       private boolean chartWarningStatus = false;
-
-       private String chartKeyName = AnalyzerLabels.EMPTY_STRING;
-
-       public NetworkChartData(NetworkChartDataEvent event, boolean isRoot) {
-               setEvent(event);
-               setAddress(event.getAddress());
-               setFD(event.getFD());
-               setThread(event.getThread());
-               this.isFailedAPI = event.isFailedAPI();
-       }
-
-       public void checkUpdate() {
-               if (false == hasUpdate && AnalyzerManager.isRunning()) {
-                       return;
-               } else {
-                       hasUpdate = false;
-               }
-
-               int size = contentsQueue.size();
-               NetworkChartDataEvent event = null;
-               if (size > 0) {
-                       for (int i = 0; i < size; i++) {
-                               event = contentsQueue.get(0);
-                               setStatusColor(event);
-                               getContents().add(event);
-                               createChartItem(event);
-                               contentsQueue.remove(0);
-                       }
-                       chart.redraw();
-               }
-
-               size = children.size();
-               if (size > 0) {
-                       NetworkChartData data;
-                       for (int i = 0; i < size; i++) {
-                               data = children.get(i);
-                               data.checkUpdate();
-                       }
-               }
-
-               if (!AnalyzerManager.isRunning()) {
-                       if (isParent() && (event == null)) {
-                               for (int i = 0; i < size; i++) {
-                                       if ((!children.get(i).isClosed(null))
-                                                       && (!children.get(i).getFD().contains("-1"))) {//$NON-NLS-1$
-                                               setNotFDClosedStatus();
-                                               break;
-                                       }
-                               }
-                       } else {
-                               if (!isClosed(event)) {
-                                       setNotFDClosedStatus();
-                               }
-                       }
-               }
-       }
-
-       public void pushChild(NetworkChartData data) {
-               children.add(data);
-               hasUpdate = true;
-       }
-
-       public DAChartBoardItem getItem() {
-               return item;
-       }
-
-       public DAChart getChart() {
-               return chart;
-       }
-
-       public void setChart(DAChart chart) {
-               this.chart = chart;
-       }
-
-       public void pushEvent(NetworkChartDataEvent event) {
-               contentsQueue.add(event);
-               makeDetailViewData(event);
-               hasUpdate = true;
-       }
-
-       public void makeDetailViewData(NetworkChartDataEvent event) {
-               setMessageSize(event.getMessageSize());
-               setSendSize(event.getSendSize());
-               setRecvSize(event.getRecvSize());
-               if (event.getFailedData() != null) {
-                       getFailedData().add(event.getFailedData());
-               }
-       }
-
-       public List<FailedData> getFailedData() {
-               if (null == failedData) {
-                       failedData = new ArrayList<FailedData>();
-               }
-               return failedData;
-       }
-
-       public List<String> getFailedRelations() {
-               List<String> output = new ArrayList<String>();
-               int size = getFailedData().size();
-               for (int i = 0; i < size; i++) {
-                       FailedData ffd = failedData.get(i);
-                       String seq = Integer.toString(ffd.getSeq());
-                       output.add(seq);
-               }
-               return output;
-       }
-
-       public void setHasUpdate() {
-               hasUpdate = true;
-       }
-
-       public List<NetworkChartDataEvent> getContents() {
-               return contents;
-       }
-
-       public int getChildCount() {
-               return children.size();
-       }
-
-       public List<NetworkChartData> getChild() {
-               return children;
-       }
-
-       public String getFD() {
-               if (null == fd) {
-                       return CommonConstants.EMPTY;
-               }
-               return fd;
-       }
-
-       public void setFD(String data) {
-               this.fd = data;
-       }
-
-       public void setClosed(boolean data) {
-               this.isClosedSocket = data;
-       }
-
-       public boolean isClosed(NetworkChartDataEvent event) {
-               if (event == null) {
-                       return this.isClosedSocket;
-               }
-               if (isParent()) {
-                       this.isClosedSocket = true;
-                       for (int i = 0; i < children.size(); i++) {
-
-                               double socketOpendTime = children.get(i).getSocketOpendTime();
-                               double socketClosedTime = children.get(i).getSocketClosedTime();
-                               if (event.getApiChartTime() == socketOpendTime) {
-                                       this.isClosedSocket = true;
-                                       break;
-                               }
-                               if (event.getApiChartTime() < socketOpendTime) {
-                                       continue;
-                               }
-                               if ((event.getApiChartTime() > socketClosedTime)
-                                               && (socketClosedTime != 0)) {
-                                       continue;
-                               }
-                               if (socketClosedTime == 0) {
-                                       if (!children.get(i).isClosed(null)) {
-                                               this.isClosedSocket = false;
-                                               break;
-                                       }
-                               }
-                               if (socketOpendTime < event.getApiChartTime()
-                                               && event.getApiChartTime() < socketClosedTime) {
-                                       this.isClosedSocket = false;
-                                       break;
-                               }
-                       }
-                       return this.isClosedSocket;
-               }
-               return this.isClosedSocket;
-       }
-
-       public boolean isFDOpenFailed() {
-               if (isParent()) {
-                       this.isClosedSocket = true;
-                       for (int i = 0; i < children.size(); i++) {
-                               if (!children.get(i).isFDOpenFailed()) {
-                                       return false;
-                               }
-                       }
-                       return true;
-               } else {
-                       return isFailedAPI;
-               }
-       }
-
-       public void setAddress(String name) {
-               this.address = name;
-       }
-
-       public String getAddress() {
-               return address;
-       }
-
-       public String getAddressName() {
-               String[] parentKeyName = this.address.split(CommonConstants.COLON);
-               String keyname = null;
-               if (parentKeyName.length == 2) {
-                       keyname = parentKeyName[0] + "\n:" + parentKeyName[1];//$NON-NLS-1$
-               } else {
-                       keyname = this.address;
-               }
-
-               return keyname;
-       }
-
-       public int getFailedApiCount() {
-               return getFailedData().size();
-       }
-
-       public int getApiCount() {
-               int nAPICallCound = 0;
-               for (NetworkChartDataEvent data : getContents()) {
-                       if (!data.getApiName().contains("start")) {//$NON-NLS-1$
-                               nAPICallCound++;
-                       }
-               }
-               return nAPICallCound;
-       }
-
-       public void setMessageSize(long data) {
-               if (data > 0) {
-                       this.messageSize = data;
-               }
-       }
-
-       public long getMessageSize() {
-               return this.messageSize;
-       }
-
-       public void setSendSize(long data) {
-               this.sendSize += data;
-       }
-
-       public long getRecvSize() {
-               if (this.recvSize < 0) {
-                       return 0;
-               }
-               return this.recvSize;
-       }
-
-       public void setRecvSize(long data) {
-               this.recvSize += data;
-       }
-
-       public long getSendSize() {
-               if (this.sendSize < 0) {
-                       return 0;
-               }
-               return this.sendSize;
-       }
-
-       public boolean isParent() {
-               boolean isParent = false;
-               if (children.size() > 0) {
-                       isParent = true;
-               } else {
-                       isParent = false;
-               }
-               return isParent;
-       }
-
-       public NetworkChartData findChildData(NetworkChartDataEvent event) {
-               int size = children.size();
-               NetworkChartData ret;
-               for (int i = 0; i < size; i++) {
-                       ret = children.get(i);
-                       if (null == ret || null == event) {
-                               continue;
-                       }
-                       if (ret.getFD().equals(event.getFD())) {
-                               return ret;
-                       }
-               }
-               return null;
-       }
-
-       public void setItem(DAChartBoardItem item) {
-               this.item = item;
-               setChart(item.getChart());
-               apiSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_API);
-               accessSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_ACCESS);
-               statueSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_SERIES);
-
-       }
-
-       private void setStatusColor(NetworkChartDataEvent event) {
-               if (event.isFailedAPI() == true) {
-                       return;
-               }
-
-               if (!isParent() && !isClientOfClient()
-                               && statueSeries.getSeriesItemList().size() == 0) {
-                       setFDOpendStatus(event);
-
-                       if (getChartKeyName().contains(
-                                       NetworkPageLabels.NETWORK_CHART_CLIENT_NAME)
-                                       && event.getApiType() == LogCenterConstants.SOCKET_API_RECV_END) {
-                               setConnectedStatus(event);
-                       }
-                       return;
-               }
-
-               if (isParent()
-                               && statueSeries.getSeriesItemList().size() == 0
-                               && getChartKeyName().contains(
-                                               NetworkPageLabels.NETWORK_CHART_CLIENT_NAME)
-                               && event.getApiType() == LogCenterConstants.SOCKET_API_RECV_END) {
-                       setConnectedStatus(event);
-                       return;
-               }
-
-               if (statueSeries.getSeriesItemList().size() == 0) {
-                       setFDOpendStatus(event);
-                       return;
-               }
-
-               switch (event.getApiType()) {
-               // Socket
-               case LogCenterConstants.SOCKET_API_FD_OPEN: {
-                       if (isParent()) {
-                               if (isClosed(event)) {
-                                       setFDOpendStatus(event);
-                               }
-                       } else {
-                               setFDOpendStatus(event);
-                       }
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_CONNECT: {
-                       if (event.isFailedAPI() == true) {
-                               chartWarningStatus = true;
-                       } else {
-                               if (isParent()) {
-                                       setConnectedStatus(event);
-                               } else {
-                                       setConnectedStatus(event);
-                               }
-                       }
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_ACCEPT_START:
-                       break;
-               case LogCenterConstants.SOCKET_API_ACCEPT_END: {
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_FD_CLOSE: {
-                       if (isFDOpenFailed() == true) {
-                               return;
-                       }
-                       setFDCloseStatusManager(event);
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_RECV_START:
-                       break;
-               case LogCenterConstants.SOCKET_API_RECV_END: {
-                       if (event.getRecvSize() <= 0) {
-                               chartWarningStatus = true;
-                       }
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_SEND_START:
-                       break;
-               case LogCenterConstants.SOCKET_API_SEND_END:
-                       break;
-               case LogCenterConstants.SOCKET_API_EVENT_START:
-                       break;
-               case LogCenterConstants.SOCKET_API_EVENT_END:
-                       break;
-               case LogCenterConstants.SOCKET_API_BIND: {
-                       if (event.isFailedAPI() == true) {
-                               chartWarningStatus = true;
-                       }
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_LISTEN: {
-                       if (event.isFailedAPI() == true) {
-                               chartWarningStatus = true;
-                       }
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_OTHER:
-                       break;
-
-               // HTTP
-               case LogCenterConstants.HTTP_API_SESSION_CONSTRUCT: {
-                       if (isParent()) {
-                               if (isClosed(event)) {
-                                       setFDOpendStatus(event);
-                               }
-                       } else {
-                               setFDOpendStatus(event);
-                       }
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_TRANSACTION_OPEN: {
-                       if (isParent()) {
-                               if (isClosed(event)) {
-                                       setFDOpendStatus(event);
-                               }
-                       } else {
-                               setFDOpendStatus(event);
-                       }
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_TRANSACTION_CLOSE:
-                       setFDCloseStatusManager(event);
-                       break;
-               case LogCenterConstants.HTTP_API_ALLOCATION:
-                       break;
-               case LogCenterConstants.HTTP_API_SUBMIT: {
-                       // if (event.isFailedAPI()) {
-                       // setFDCloseStatusManager(event);
-                       // return;
-                       // }
-                       // setConnectedStatus(event);
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_REQUEST:
-                       // setDisConnectedStatus(event);
-                       break;
-               case LogCenterConstants.HTTP_API_RESPONSE:
-                       break;
-               case LogCenterConstants.HTTP_API_OTHER:
-                       break;
-               case LogCenterConstants.HTTP_API_CLOSE: {
-                       if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
-                               return;
-                       }
-                       setFDCloseStatusManager(event);
-                       break;
-               }
-
-               default:
-                       DA_LOG.debug("setStatusColor : no case NetworkChartDataEvent : "
-                                                       + event.getApiType());//$NON-NLS-1$
-                       return;
-               }
-       }
-
-       private void setFDOpendStatus(NetworkChartDataEvent event) {
-               if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
-                       return;
-               }
-               DAChartSeriesItem seriesItem = new DAChartSeriesItem(
-                               event.getApiChartTime(),
-                               DAChartSeriesItem.SERIES_STATE_CONTINUE,
-                               ColorResources.NETWORK_AREA_FD_USED_END,
-                               ColorResources.NETWORK_AREA_FD_USED_START,
-                               NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
-               statueSeries.addSeriesItem(seriesItem);
-       }
-
-       private void setFDCloseStatusManager(NetworkChartDataEvent event) {
-               if (isParent()) {
-                       if (isClosed(event)) {
-                               setFDClosedStatus(event);
-                       } else {
-                               if (!isFDConnected()) {
-                                       setFDOpenParentStatus(event);
-                               }
-                       }
-               } else {
-                       setFDClosedStatus(event);
-               }
-       }
-
-       private void setFDOpenParentStatus(NetworkChartDataEvent event) {
-               if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
-                       return;
-               }
-               int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
-               if (nStatusLastIndex > -1) {
-                       statueSeries.getSeriesItemList().get(nStatusLastIndex)
-                                       .setColor(ColorResources.NETWORK_AREA_FD_USED_END);
-                       statueSeries
-                                       .getSeriesItemList()
-                                       .get(nStatusLastIndex)
-                                       .setGradationForegroundColor(
-                                                       ColorResources.NETWORK_AREA_FD_USED_START);
-                       statueSeries
-                                       .getSeriesItemList()
-                                       .get(nStatusLastIndex)
-                                       .setTooltipText(
-                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
-               }
-       }
-
-       private void setFDClosedStatus(NetworkChartDataEvent event) {
-               int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
-               if (nStatusLastIndex > -1) {
-                       statueSeries.getSeriesItemList().get(nStatusLastIndex)
-                                       .setColor(ColorResources.NETWORK_AREA_CLOSED_START);
-
-                       if (chartWarningStatus) {
-                               statueSeries
-                                               .getSeriesItemList()
-                                               .get(nStatusLastIndex)
-                                               .setGradationForegroundColor(
-                                                               ColorResources.NETWORK_AREA_NOT_CLOSED_END);
-                       } else {
-                               statueSeries
-                                               .getSeriesItemList()
-                                               .get(nStatusLastIndex)
-                                               .setGradationForegroundColor(
-                                                               ColorResources.NETWORK_AREA_CLOSED_START);
-                       }
-
-                       DAChartSeriesItem seriesItem = new DAChartSeriesItem(
-                                       event.getApiChartTime(),
-                                       DAChartSeriesItem.SERIES_STATE_BAR,
-                                       ColorResources.NETWORK_AREA_CLOSED_END,
-                                       ColorResources.NETWORK_AREA_CLOSED_START,
-                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
-                       seriesItem.setBarWidth(0);
-                       statueSeries.addSeriesItem(seriesItem);
-                       statueSeries
-                                       .getSeriesItemList()
-                                       .get(nStatusLastIndex)
-                                       .setTooltipText(
-                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
-               }
-       }
-
-       // private void setDisConnectedStatus(NetworkChartDataEvent event) {
-       // if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
-       // return;
-       // }
-       // int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
-       // if (nStatusLastIndex > -1) {
-       // statueSeries.getSeriesItemList().get(nStatusLastIndex)
-       // .setColor(ColorResources.NETWORK_AREA_FD_USED_END);
-       //
-       // statueSeries
-       // .getSeriesItemList()
-       // .get(nStatusLastIndex)
-       // .setGradationForegroundColor(
-       // ColorResources.NETWORK_AREA_FD_USED_START);
-       //
-       // statueSeries
-       // .getSeriesItemList()
-       // .get(nStatusLastIndex)
-       // .setTooltipText(
-       // NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
-       // }
-       // }
-
-       private void setConnectedStatus(NetworkChartDataEvent event) {
-               if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
-                       return;
-               }
-               int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
-               if (nStatusLastIndex > -1) {
-
-                       statueSeries.getSeriesItemList().get(nStatusLastIndex)
-                                       .setColor(ColorResources.NETWORK_AREA_CONNECTED_END);
-                       statueSeries
-                                       .getSeriesItemList()
-                                       .get(nStatusLastIndex)
-                                       .setGradationForegroundColor(
-                                                       ColorResources.NETWORK_AREA_CONNECTED_START);
-
-                       statueSeries
-                                       .getSeriesItemList()
-                                       .get(nStatusLastIndex)
-                                       .setTooltipText(
-                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_CONNECTED);
-               }
-       }
-
-       private void setNotFDClosedStatus() {
-               int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
-               if (nStatusLastIndex > -1) {
-                       statueSeries.getSeriesItemList().get(nStatusLastIndex)
-                                       .setColor(ColorResources.NETWORK_AREA_NOT_CLOSED_END);
-                       statueSeries
-                                       .getSeriesItemList()
-                                       .get(nStatusLastIndex)
-                                       .setGradationForegroundColor(
-                                                       ColorResources.NETWORK_AREA_NOT_CLOSED_START);
-                       statueSeries
-                                       .getSeriesItemList()
-                                       .get(nStatusLastIndex)
-                                       .setTooltipText(
-                                                       NetworkPageLabels.NETWORK_CHART_TOOLTIP_NOT_CLOSED);
-               }
-       }
-
-       protected int createChartItem(NetworkChartDataEvent event) {
-               DAChartSeriesItem seriesItem = null;
-               DAChartSeriesItem accessItem = null;
-               int apiType = event.getApiType();
-
-               if (event.isFailedAPI() == true) {
-                       seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
-                                       DAChartSeriesItem.SERIES_STATE_BAR,
-                                       ColorResources.NETWORK_API_FAILED, event.getApiName());
-                       apiSeries.addSeriesItem(seriesItem);
-
-                       if (apiType == LogCenterConstants.SOCKET_API_CONNECT
-                                       || apiType == LogCenterConstants.SOCKET_API_ACCEPT_END
-                                       || apiType == LogCenterConstants.SOCKET_API_SEND_END
-                                       || apiType == LogCenterConstants.SOCKET_API_RECV_END) {
-                               setSocketEndFunc(seriesItem, event);
-                       }
-
-                       if (apiType == LogCenterConstants.HTTP_API_RESPONSE) {
-                               setHTTPEndFunc(seriesItem, event);
-                       }
-                       return apiType;
-               }
-
-               switch (apiType) {
-               // Socket
-               case LogCenterConstants.SOCKET_API_FD_OPEN:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_CONNECT:
-                       setSocketEndFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_ACCEPT_START:
-                       setStartFunc(seriesItem, accessItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_ACCEPT_END:
-                       setSocketEndFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_FD_CLOSE:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_RECV_START:
-                       setStartFunc(seriesItem, accessItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_RECV_END:
-                       setSocketEndFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_SEND_START:
-                       setStartFunc(seriesItem, accessItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_SEND_END:
-                       setSocketEndFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_EVENT_START:
-                       setStartFunc(seriesItem, accessItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_EVENT_END:
-                       setSocketEndFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_BIND:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_LISTEN:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.SOCKET_API_OTHER:
-                       setEventFunc(seriesItem, event);
-                       break;
-               // HTTP
-               case LogCenterConstants.HTTP_API_SESSION_CONSTRUCT:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.HTTP_API_TRANSACTION_OPEN:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.HTTP_API_TRANSACTION_CLOSE:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.HTTP_API_ALLOCATION:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.HTTP_API_SUBMIT:
-                       setStartFunc(seriesItem, accessItem, event);
-                       break;
-               case LogCenterConstants.HTTP_API_REQUEST:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.HTTP_API_RESPONSE:
-                       setHTTPEndFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.HTTP_API_OTHER:
-                       setEventFunc(seriesItem, event);
-                       break;
-               case LogCenterConstants.HTTP_API_CLOSE:
-                       setEventFunc(seriesItem, event);
-                       break;
-
-               default:
-                       DA_LOG.debug("createChartItem : no case NetworkChartDataEvent : "
-                                                       + apiType);//$NON-NLS-1$
-                       return -1;
-               }
-               return apiType;
-       }
-
-       private void setEventFunc(DAChartSeriesItem seriesItem,
-                       NetworkChartDataEvent event) {
-               seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
-                               DAChartSeriesItem.SERIES_STATE_BAR,
-                               ColorResources.NETWORK_API_USED, event.getApiName());
-               if (seriesItem != null) {
-                       apiSeries.addSeriesItem(seriesItem);
-               }
-       }
-
-       private void setStartFunc(DAChartSeriesItem seriesItem,
-                       DAChartSeriesItem accessItem, NetworkChartDataEvent event) {
-               seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
-                               DAChartSeriesItem.SERIES_STATE_BAR,
-                               ColorResources.NETWORK_API_USED, event.getApiName());
-
-               Color waitiColor = null;
-               if (event.getApiType() == LogCenterConstants.SOCKET_API_SEND_START) {
-                       waitiColor = ColorResources.NETWORK_ACCESS_SEND;
-               } else if (event.getApiType() == LogCenterConstants.SOCKET_API_RECV_START) {
-                       waitiColor = ColorResources.NETWORK_ACCESS_RECV;
-               } else if (event.getApiType() == LogCenterConstants.HTTP_API_SUBMIT) {
-                       waitiColor = ColorResources.NETWORK_ACCESS_RECV;
-               } else {
-                       waitiColor = ColorResources.NETWORK_ACCESS_WAIT;
-               }
-
-               accessItem = new DAChartSeriesItem(event.getApiChartTime(),
-                               event.getApiChartTime(), waitiColor, event.getApiName());
-
-               if (seriesItem != null) {
-                       apiSeries.addSeriesItem(seriesItem);
-               }
-               if (accessItem != null) {
-                       accessSeries.addSeriesItem(accessItem);
-               }
-       }
-
-       private void setHTTPEndFunc(DAChartSeriesItem seriesItem,
-                       NetworkChartDataEvent event) {
-               seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
-                               DAChartSeriesItem.SERIES_STATE_BAR,
-                               ColorResources.NETWORK_API_USED, event.getApiName());
-
-               int lastIndex = accessSeries.getSeriesItemList().size() - 1;
-               if (lastIndex >= 0) {
-                       accessSeries.getSeriesItemList().get(lastIndex)
-                                       .setY(event.getApiChartTime());
-               }
-
-               if (seriesItem != null) {
-                       apiSeries.addSeriesItem(seriesItem);
-               }
-       }
-
-       private void setSocketEndFunc(DAChartSeriesItem seriesItem,
-                       NetworkChartDataEvent event) {
-               seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
-                               DAChartSeriesItem.SERIES_STATE_BAR,
-                               ColorResources.NETWORK_API_USED, event.getApiName());
-
-               setSocketAccessSeriesEnd(accessSeries.getSeriesItemList().size() - 1,
-                               event.getApiChartTime());
-
-               if (seriesItem != null) {
-                       apiSeries.addSeriesItem(seriesItem);
-               }
-       }
-
-       public void setSocketAccessSeriesEnd(int lastIndex, double endTime) {
-               if (lastIndex < 0) {
-                       return;
-               }
-               if (isParent()) {
-                       for (int i = lastAccessIndexForParent; i < lastIndex; i++) {
-                               accessSeries.getSeriesItemList().get(lastIndex).setY(endTime);
-
-                       }
-                       lastAccessIndexForParent = lastIndex;
-               } else {
-                       accessSeries.getSeriesItemList().get(lastIndex).setY(endTime);
-               }
-       }
-
-       public void setSocketOpendTime(double data) {
-               this.socketOpendTime = data;
-       }
-
-       public double getSocketOpendTime() {
-               return this.socketOpendTime / TimelineConstants.MEGA_DOUBLE;
-       }
-
-       public void setSocketClosedTime(double data) {
-               socketClosedTime = data;
-       }
-
-       public double getSocketClosedTime() {
-               return this.socketClosedTime / TimelineConstants.MEGA_DOUBLE;
-       }
-
-       public void setSocketLastUsedTime(double data) {
-               socketLastUsedTime = data;
-       }
-
-       public double getSocketLastUsedTime() {
-               return this.socketLastUsedTime / TimelineConstants.MEGA_DOUBLE;
-       }
-
-       public void setSocketUsedTime(double data) {
-               if (this.socketOpendTime == 0) {
-                       this.setSocketTotalUsedTime(0);
-               } else {
-                       this.setSocketTotalUsedTime(data - this.socketOpendTime);
-               }
-               setSocketLastUsedTime(data);
-       }
-
-       private double parentTotalUsedTime() {
-               List<String> totalUsedTimeList = new ArrayList<String>();
-               boolean firstInputData = false;
-               double socketTotalUsedTime = 0;
-               NetworkChartData networkData;
-               double firstUsedTime = 0;
-               double lastUsedTime = 0;
-               for (int i = 0; i < children.size(); i++) {
-                       networkData = children.get(i);
-                       firstUsedTime = networkData.getSocketOpendTime()
-                                       * TimelineConstants.MEGA_DOUBLE;
-                       lastUsedTime = networkData.getSocketLastUsedTime()
-                                       * TimelineConstants.MEGA_DOUBLE;
-                       if (lastUsedTime == 0) {
-                               continue;
-                       } else if (!networkData.isFDOpenFailed() && firstInputData == false) {
-                               firstInputData = true;
-                               totalUsedTimeList
-                                               .add(Double.toString(firstUsedTime)
-                                                               + CommonConstants.COLON
-                                                               + Double.toString(lastUsedTime));
-                       }
-                       int nLastIndex = totalUsedTimeList.size() - 1;
-                       if (nLastIndex < 0) {
-                               continue;
-                       }
-                       String data = totalUsedTimeList.get(nLastIndex);
-                       String[] splitTimeDataList = data.split(CommonConstants.COLON);
-                       double savedFirstUsedTime = Double
-                                       .parseDouble(splitTimeDataList[0]);
-                       double savedLastUsedTime = Double.parseDouble(splitTimeDataList[1]);
-                       if ((savedFirstUsedTime < firstUsedTime)
-                                       && (firstUsedTime < savedLastUsedTime)
-                                       && (savedFirstUsedTime < savedLastUsedTime)
-                                       && (savedLastUsedTime < lastUsedTime)) {
-                               totalUsedTimeList.remove(nLastIndex);
-                               totalUsedTimeList
-                                               .add(Double.toString(savedFirstUsedTime)
-                                                               + CommonConstants.COLON
-                                                               + Double.toString(lastUsedTime));
-                       } else if ((savedLastUsedTime < firstUsedTime)
-                                       && (savedLastUsedTime < lastUsedTime)) {
-                               totalUsedTimeList
-                                               .add(Double.toString(firstUsedTime)
-                                                               + CommonConstants.COLON
-                                                               + Double.toString(lastUsedTime));
-                       } else if ((lastUsedTime < savedFirstUsedTime)
-                                       && (lastUsedTime < savedLastUsedTime)) {
-                               totalUsedTimeList
-                                               .add(Double.toString(firstUsedTime)
-                                                               + CommonConstants.COLON
-                                                               + Double.toString(lastUsedTime));
-                       }
-               }
-               int nSize = totalUsedTimeList.size();
-               for (int i = 0; i < nSize; i++) {
-                       String data = totalUsedTimeList.get(i);
-                       String[] splitTimeDataList = data.split(CommonConstants.COLON); //$NON-NLS-1$
-                       double savedFirstUsedTime = Double
-                                       .parseDouble(splitTimeDataList[0]);
-                       double savedLastUsedTime = Double.parseDouble(splitTimeDataList[1]);
-                       socketTotalUsedTime += (savedLastUsedTime - savedFirstUsedTime);
-               }
-               return socketTotalUsedTime;
-       }
-
-       public double getTotalUseTime() {
-
-               if (isParent()) {
-                       double fistOpenTime = 1000000;
-                       NetworkChartData fileData;
-                       boolean isAllClosed = true;
-                       for (int i = 0; i < children.size(); i++) {
-                               fileData = children.get(i);
-                               if (fileData.getSocketOpendTime() < fistOpenTime) {
-                                       fistOpenTime = fileData.getSocketOpendTime();
-                               }
-                               if (fileData.isClosed(null) != true) {
-                                       if (isAllClosed) {
-                                               isAllClosed = false;
-                                       }
-                               }
-                       }
-                       if (isAllClosed) {
-                               return parentTotalUsedTime();
-                       } else {
-                               return ToolbarArea.getInstance().getTime() - fistOpenTime;
-                       }
-               }
-               if (isClosed(null) == true) {
-                       return this.socketLastUsedTime - this.socketOpendTime;
-               } else {
-                       return ToolbarArea.getInstance().getTime() - this.socketOpendTime;
-               }
-       }
-
-       public String getThread() {
-               return thread;
-       }
-
-       public void setThread(String thread) {
-               this.thread = thread;
-       }
-
-       public boolean isContainChildFD(String fd) {
-               for (String data : getHasFd()) {
-                       if (data.equals(fd)) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-       public List<String> getHasFd() {
-               return hasFd;
-       }
-
-       public void setHasFd(String hasFd) {
-               this.hasFd.add(hasFd);
-       }
-
-       public NetworkChartData getParent() {
-               return parent;
-       }
-
-       public void setParent(NetworkChartData parent) {
-               this.parent = parent;
-       }
-
-       public boolean isFDConnected() {
-               return isFDConnected;
-       }
-
-       public void setFDConnected(boolean isFDConnected) {
-               if (isParent()) {
-                       for (int i = 0; i < children.size(); i++) {
-                               if (!children.get(i).isFDConnected()) {
-                                       this.isFDConnected = false;
-                                       return;
-                               }
-                       }
-               } else {
-                       this.isFDConnected = isFDConnected;
-               }
-       }
-
-       public boolean isServerFD() {
-               for (NetworkChartDataEvent event : getContents()) {
-                       if (event.getApiType() == LogCenterConstants.SOCKET_API_BIND) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-       public boolean isClientOfClient() {
-               for (NetworkChartDataEvent event : getContents()) {
-                       if (event.getApiType() == LogCenterConstants.SOCKET_API_FD_OPEN) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-       public NetworkChartDataEvent getEvent() {
-               return event;
-       }
-
-       public void setEvent(NetworkChartDataEvent event) {
-               this.event = event;
-       }
-
-       public double getSocketTotalUsedTime() {
-               return socketTotalUsedTime;
-       }
-
-       public void setSocketTotalUsedTime(double socketTotalUsedTime) {
-               this.socketTotalUsedTime = socketTotalUsedTime;
-       }
-
-       public String getChartKeyName() {
-               return chartKeyName;
-       }
-
-       public void setChartKeyName(String chartKeyName) {
-               this.chartKeyName = chartKeyName;
-       }
-}
\ No newline at end of file
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartDataEvent.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartDataEvent.java
deleted file mode 100644 (file)
index 3213c07..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- *  Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: 
- * Hyunjong Park <phjwithyou.park@samsung.com>
- * yeongtaik byeon <yeongtaik.byeon@samsung.com>
- * Juyoung Kim <j0.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * 
- * Contributors:
- * - S-Core Co., Ltd
- * 
- */
-
-package org.tizen.dynamicanalyzer.ui.network;
-
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
-import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
-import org.tizen.dynamicanalyzer.ui.summary.failed.FailedData;
-import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
-
-public class NetworkChartDataEvent {
-
-       private FailedData failedData = null;
-       private String FD = AnalyzerLabels.EMPTY_STRING;
-       private String address = AnalyzerLabels.EMPTY_STRING;
-       private String thread = AnalyzerLabels.EMPTY_STRING;
-       private String apiName = AnalyzerLabels.EMPTY_STRING;
-       private int apiType = -1;
-
-       private NetworkData contents;
-       private double logTime = -1;
-       private long messageSize = 0;
-       private long sendSize = 0;
-       private long recvSize = 0;
-
-       private boolean isFailedAPI = false;
-       
-       private int connectedType = 0;
-       public static final int NETWORK_CHART_SERVER_NAME = 0;
-       public static final int NETWORK_CHART_CLIENT_NAME = 1;
-       public static final int NETWORK_CHART_SESSION_NAME = 2;
-       public static final int NETWORK_CHART_TRANSACTION_NAME =3;
-       
-
-       public NetworkChartDataEvent(String address, String Fd, String thread, double time,
-                       String apiName, int apyType, int connectedType, NetworkData contents) {
-               setAddress(address);
-               setFD(Fd);
-               setThread(thread);
-               setLogTime(time);
-               setApiName(apiName);
-               setApiType(apyType);
-               setContents(contents);
-               setConnectedType(connectedType);
-       }
-
-       public NetworkChartDataEvent(NetworkData contents) {
-               setContents(contents);
-       }
-
-       public NetworkData getContents() {
-               return contents;
-       }
-
-       public void setContents(NetworkData contents) {
-               this.contents = contents;
-       }
-
-       public String getFD() {
-               if(null == FD){
-                       return CommonConstants.EMPTY;
-               }
-               return FD;
-       }
-
-       public void setFD(String fd) {
-               this.FD = fd;
-       }
-
-       public boolean isFailedAPI() {
-               return isFailedAPI;
-       }
-
-       public void setFailedAPI() {
-               this.isFailedAPI = true;
-       }
-
-       public int getApiType() {
-               return apiType;
-       }
-
-       public void setApiType(int apiType) {
-               this.apiType = apiType;
-       }
-
-       public double getLogTime() {
-               return logTime;
-       }
-
-       public void setLogTime(double data) {
-               this.logTime = data;
-       }
-
-       public double getApiChartTime() {
-               return getLogTime() / TimelineConstants.MEGA_DOUBLE;
-       }
-
-       public void setAddress(String data) {
-               this.address = data;
-       }
-
-       public String getAddress() {
-               return address;
-       }
-
-       public void setMessageSize(long data) {
-               this.messageSize = data;
-       }
-
-       public long getMessageSize() {
-               return this.messageSize;
-       }
-
-       public void setSendSize(long data) {
-               this.sendSize = data;
-               setMessageSize(data);
-       }
-
-       public long getSendSize() {
-               return this.sendSize;
-       }
-
-       public void setRecvSize(long data) {
-               this.recvSize = data;
-               setMessageSize(data);
-       }
-
-       public long getRecvSize() {
-               return this.recvSize;
-       }
-
-       public void setFailedData(FailedData data) {
-               failedData = data;
-       }
-
-       public FailedData getFailedData() {
-               return failedData;
-       }
-
-       public String getApiName() {
-               return apiName;
-       }
-
-       public void setApiName(String tooltip) {
-               this.apiName = tooltip;
-       }
-
-       public String getThread() {
-               return thread;
-       }
-
-       public void setThread(String thread) {
-               this.thread = thread;
-       }
-
-       public int getConnectedType() {
-               return connectedType;
-       }
-
-       public void setConnectedType(int connectedType) {
-               this.connectedType = connectedType;
-       }       
-}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartManager.java
deleted file mode 100644 (file)
index 8596051..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- *  Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: 
- * Hyunjong Park <phjwithyou.park@samsung.com>
- * Jooyoul Lee <jy.exe.lee@samsung.com>
- * Juyoung Kim <j0.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * 
- * Contributors:
- * - S-Core Co., Ltd
- * 
- */
-
-package org.tizen.dynamicanalyzer.ui.network;
-
-import java.util.List;
-
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants;
-import org.tizen.dynamicanalyzer.swap.logparser.LogPackage;
-import org.tizen.dynamicanalyzer.swap.logparser.Logs;
-import org.tizen.dynamicanalyzer.swap.logparser.PageDataManager;
-import org.tizen.dynamicanalyzer.swap.model.data.LogData;
-import org.tizen.dynamicanalyzer.util.DALogger;
-
-public class NetworkChartManager extends PageDataManager {
-       private static final DALogger DA_LOG = DALogger.getInstance();
-
-       private NetworkDataMaker networkDataMaker = null;
-
-       private static NetworkChartManager instance = null;
-
-       private String packetMessage = CommonConstants.EMPTY;
-       private String sendAckTime = CommonConstants.EMPTY;
-
-       public NetworkChartManager() {
-               networkDataMaker = new NetworkDataMaker(
-                               AnalyzerManager.getFailedChecker(),
-                               AnalyzerManager.getLeakDetector(),
-                               AnalyzerManager.getWarningChecker());
-       }
-
-       public synchronized static NetworkChartManager getInstance() {
-               if (null == instance) {
-                       instance = new NetworkChartManager();
-               }
-               return instance;
-       }
-
-       public NetworkDataMaker getNetworkDataMaker() {
-               return networkDataMaker;
-       }
-
-       /*** make network data thread ***/
-       @Override
-       public void run() {
-               while (!AnalyzerManager.isExit()) {
-                       LogPackage pack = pollPack();
-                       if (pack == null) // stop thread
-                               break;
-
-                       Logs logs = pack.getLogs(DataChannelConstants.MSG_PROBE_NETWORK);
-                       if (null != logs && logs.getRawLogs().size() != 0) {
-                               List<LogData> inputs = logs.getLogs();
-
-                               getNetworkDataMaker().makeData(inputs);
-                       }
-               }
-
-               /* log for debug */
-               DA_LOG.debug(getName() + " thread end!!"); //$NON-NLS-1$
-       }
-
-       public void clear() {
-               instance = null;
-               networkDataMaker.clear();
-       }
-
-       public int[] getParentChartIndex(String seq) {
-               int parentChartIndex = -1;
-               NetworkChartData chartData = null;
-               List<NetworkChartData> networkChartDataLow = NetworkChartManager
-                               .getInstance().getNetworkDataMaker().getNetworkChartLow();
-               for (int i = 0; i < networkChartDataLow.size(); i++) {
-                       chartData = networkChartDataLow.get(i);
-                       if (chartData.getChildCount() != 0) {
-                               parentChartIndex++;
-                               if (isEqulasSeq(chartData, seq)) {
-                                       return new int[] { parentChartIndex, i };
-                               }
-                       }
-               }
-               return new int[] { 0, 0 };
-       }
-
-       public int getChildChartIndex(int parentChartIndex, String seq) {
-               List<NetworkChartData> networkChartDataLow = getNetworkDataMaker()
-                               .getNetworkChartLow();
-               if (networkChartDataLow.size() > 0) {
-                       List<NetworkChartData> childData = networkChartDataLow.get(
-                                       parentChartIndex).getChild();
-                       NetworkChartData childChartData = null;
-                       for (int i = 0; i < childData.size(); i++) {
-                               childChartData = childData.get(i);
-                               if (isEqulasSeq(childChartData, seq)) {
-                                       return i;
-                               }
-                       }
-               }
-
-               List<NetworkChartData> unknownChartDataLow = getNetworkDataMaker()
-                               .getUnknownNetworkChartLow();
-               if (unknownChartDataLow.size() > 0) {
-                       List<NetworkChartData> childData = unknownChartDataLow.get(
-                                       parentChartIndex).getChild();
-                       NetworkChartData childChartData = null;
-                       for (int i = 0; i < childData.size(); i++) {
-                               childChartData = childData.get(i);
-                               if (isEqulasSeq(childChartData, seq)) {
-                                       return i;
-                               }
-                       }
-               }
-               return 0;
-       }
-
-       public boolean isEqulasSeq(NetworkChartData chartData, String seq) {
-               for (int j = 0; j < chartData.getContents().size(); j++) {
-
-                       int seqlong = chartData.getContents().get(j).getContents().getSeq();
-                       if (Long.toString(seqlong).equals(seq)) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
-       public String getPacketMessage() {
-               return this.packetMessage;
-       }
-
-       public void setPacketMessage(String packetMessage) {
-               if (packetMessage != null
-                               && !packetMessage.equals(CommonConstants.EMPTY)) {
-                       StringBuffer out = new StringBuffer();
-                       StringBuffer strHex = new StringBuffer();
-                       StringBuffer strAscii = new StringBuffer();
-                       int index = 0;
-                       long hexAddress = 0;
-                       for (int nIndex = 0; nIndex < packetMessage.length(); nIndex++) {
-
-                               strAscii.append(packetMessage.charAt(nIndex));
-
-                               if (index % 8 == 0) {
-                                       hexAddress++;
-                                       String strHexCode = Long.toHexString((Long) hexAddress)
-                                                       .toUpperCase();
-                                       String strhexCodeFormat = CommonConstants.EMPTY;
-                                       if (strHexCode.length() == 1) {
-                                               strhexCodeFormat += CommonConstants.ZERO
-                                                               + CommonConstants.ZERO + strHexCode
-                                                               + CommonConstants.ZERO;
-                                       } else if (strHexCode.length() == 2) {
-                                               strhexCodeFormat += CommonConstants.ZERO + strHexCode
-                                                               + CommonConstants.ZERO;
-                                       } else if (strHexCode.length() == 3) {
-                                               strhexCodeFormat += strHexCode + CommonConstants.ZERO;
-                                       }
-                                       strHex.append(CommonConstants.NEW_LINE)
-                                                       .append(strhexCodeFormat)
-                                                       .append(CommonConstants.TAB);
-
-                               }
-                               strHex.append(String.format("%02X ",
-                                               (int) packetMessage.charAt(nIndex)));//$NON-NLS-1$
-
-                               index++;
-                       }
-
-                       out.append(CommonConstants.SPACE).append(CommonConstants.SPACE);
-                       out.append(NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_ASCII)
-                                       .append(CommonConstants.NEW_LINE)
-                                       .append(CommonConstants.NEW_LINE);
-                       out.append(strAscii.toString());
-
-                       out.append(CommonConstants.NEW_LINE).append(
-                                       CommonConstants.NEW_LINE);
-                       out.append(CommonConstants.SPACE).append(CommonConstants.SPACE);
-
-                       out.append(NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_HEXCODE)
-                                       .append(CommonConstants.NEW_LINE);
-                       out.append(strHex.toString());
-                       this.packetMessage = out.toString();
-               } else {
-                       this.packetMessage = CommonConstants.EMPTY;
-               }
-       }
-
-       public String getSendAckTime() {
-               return this.sendAckTime;
-       }
-
-       public void setSendAckTime(String sendAckTime) {
-
-               this.sendAckTime = sendAckTime;
-       }
-}
index ad5918b..e95b7fc 100644 (file)
@@ -44,12 +44,12 @@ import org.tizen.dynamicanalyzer.resources.ImageResources;
 import org.tizen.dynamicanalyzer.swap.model.data.LogData;
 import org.tizen.dynamicanalyzer.ui.common.SetRangeMarkerMouseMoveListener;
 import org.tizen.dynamicanalyzer.ui.common.UICommonConstants;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
 import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
 import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
 import org.tizen.dynamicanalyzer.ui.timeline.logparser.LifecycleLogParser;
 import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
 import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
 import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardSelectionListener;
 import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
@@ -60,9 +60,9 @@ public class NetworkChartView extends DAViewComposite {
        public final static int NETWORK_CHART_HEIGHT = 40;
 
        private final Composite contents;
-       private DAChartBoard networkChart;
-       // private DACustomCombo networkCombo;
+       private NetworkChartBoard networkChartBoard;
        private final StackLayout stackLayout;
+       private DAChartBoardItem lastSelectedItemForSummary = null;
 
        private final RangeDataManager rangeDataManager = RangeDataManager
                        .getInstance();
@@ -77,35 +77,32 @@ public class NetworkChartView extends DAViewComposite {
                contents.setBackground(ColorResources.WINDOW_BG_COLOR);
                stackLayout = new StackLayout();
                contents.setLayout(stackLayout);
-               networkChart = new DAChartBoard(contents,
+               networkChartBoard = new NetworkChartBoard(contents,
                                NetworkPageLabels.NETWORK_CHART);
-               networkChart.setNameFont(FontResources.CHART_NAME_FONT);
-               networkChart.addSelectionListener(new DAChartBoardSelectionListener() {
-
-                       @Override
-                       public void handleSelectionEvent(DAChartBoardItem item) {
-                               AnalyzerManager
-                                               .getCurrentPage()
-                                               .updateView(
-                                                               new DASelectionData(
-                                                                               NetworkPage.chartViewID,
-                                                                               (long) (((DAChartPlotIntervalMarker) networkChart
-                                                                                               .getMarkers()
-                                                                                               .get(UICommonConstants.SELECTION_MARKER_INDEX))
-                                                                                               .getStartVal() * TimelineConstants.MEGA_DOUBLE),
-                                                                               (long) (((DAChartPlotIntervalMarker) networkChart
-                                                                                               .getMarkers()
-                                                                                               .get(UICommonConstants.SELECTION_MARKER_INDEX))
-                                                                                               .getEndVal() * TimelineConstants.MEGA_DOUBLE),
+               networkChartBoard.setNameFont(FontResources.CHART_NAME_FONT);
+               networkChartBoard
+                               .addSelectionListener(new DAChartBoardSelectionListener() {
+
+                                       @Override
+                                       public void handleSelectionEvent(DAChartBoardItem item) {
+                                               lastSelectedItemForSummary = item;
+                                               DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) networkChartBoard
+                                                               .getMarkers()
+                                                               .get(UICommonConstants.SELECTION_MARKER_INDEX);
+                                               long selectiedStartTime = (long) (intervalMarker
+                                                               .getStartVal() * TimelineConstants.MEGA_DOUBLE);
+                                               long selectiedEndTime = (long) (intervalMarker
+                                                               .getEndVal() * TimelineConstants.MEGA_DOUBLE);
+                                               AnalyzerManager.getCurrentPage().updateView(
+                                                               new DASelectionData(NetworkPage.chartViewID,
+                                                                               selectiedStartTime, selectiedEndTime,
                                                                                item.getData(), null));
-                       }
-               });
+                                       }
+                               });
 
-               initIntervalMarkers(networkChart);
-
-               stackLayout.topControl = networkChart;
-               Composite textBoxLabel = new Composite(networkChart.getTitleComp(),
-                               SWT.NONE);
+               stackLayout.topControl = networkChartBoard;
+               Composite textBoxLabel = new Composite(
+                               networkChartBoard.getTitleComp(), SWT.NONE);
                textBoxLabel.addPaintListener(new PaintListener() {
                        @Override
                        public void paintControl(PaintEvent e) {
@@ -121,46 +118,44 @@ public class NetworkChartView extends DAViewComposite {
                        }
                });
 
-               DATimeline timeline = networkChart.getTimeline();
+               DATimeline timeline = networkChartBoard.getTimeline();
 
                timeline.setTimeTickFont(FontResources.TIMELINE_TICK_FONT);
                timeline.setTimeBalloonFont(FontResources.TIMELINE_BALLOON_FONT);
 
                LifecycleLogParser.getInstance().registerLifecycleBar(
-                               networkChart.getLifecycleBar());
+                               networkChartBoard.getLifecycleBar());
                LifecycleLogParser.getInstance().registerTimeline(timeline);
 
                timeline.addMouseMoveListener(new SetRangeMarkerMouseMoveListener(
-                               rangeDataManager, networkChart, timeline));
-
-               clear();
+                               rangeDataManager, networkChartBoard, timeline));
        }
 
        @Override
        public void updateView() {
-               NetworkChartManager.getInstance().getNetworkDataMaker().checkUpdate();
+               networkChartBoard.updateChart();
 
-               networkChart.setTotalEndTime(ToolbarArea.getInstance().getTime());
+               networkChartBoard.setTotalEndTime(ToolbarArea.getInstance().getTime());
 
-               networkChart.setTimelineMarkerStartTime(rangeDataManager
+               networkChartBoard.setTimelineMarkerStartTime(rangeDataManager
                                .getMarkerStartTime() / TimelineConstants.MEGA_DOUBLE);
-               networkChart.setTimelineMarkerEndTime(rangeDataManager
+               networkChartBoard.setTimelineMarkerEndTime(rangeDataManager
                                .getMarkerEndTime() / TimelineConstants.MEGA_DOUBLE);
 
                if (RangeDataManager.getInstance().isBeingAnalyzed()) {
-                       ((DAChartPlotIntervalMarker) networkChart.getMarkers().get(
+                       ((DAChartPlotIntervalMarker) networkChartBoard.getMarkers().get(
                                        UICommonConstants.RANGE_ANALYSIS_MARKER_INDEX))
                                        .setInterval(rangeDataManager.getAnalysisStartTime()
                                                        / TimelineConstants.MEGA_DOUBLE,
                                                        rangeDataManager.getAnalysisEndTime()
                                                                        / TimelineConstants.MEGA_DOUBLE);
                } else {
-                       ((DAChartPlotIntervalMarker) networkChart.getMarkers().get(
+                       ((DAChartPlotIntervalMarker) networkChartBoard.getMarkers().get(
                                        UICommonConstants.RANGE_ANALYSIS_MARKER_INDEX))
                                        .setInterval(-1, -1);
                }
 
-               ((DAChartPlotIntervalMarker) networkChart.getMarkers().get(
+               ((DAChartPlotIntervalMarker) networkChartBoard.getMarkers().get(
                                UICommonConstants.RANGE_MARKER_INDEX)).setInterval(
                                rangeDataManager.getMarkerStartTime()
                                                / TimelineConstants.MEGA_DOUBLE,
@@ -171,88 +166,53 @@ public class NetworkChartView extends DAViewComposite {
 
        @Override
        public void updateView(DAViewData data) {
+               networkChartBoard.updateChart();
                if (data instanceof DASelectionData) {
                        DASelectionData selData = (DASelectionData) data;
+                       long dataTime = -1;
 
                        if (selData.isLogData()) {
-                               Object odata = selData.getData();
-                               if (null != odata && (odata instanceof LogData)) {
-                                       LogData ldata = (LogData) odata;
-                                       int seq = ldata.getSeq();
-                                       int selectedIndex[] = NetworkChartManager.getInstance()
-                                                       .getParentChartIndex(Integer.toString(seq));
-                                       networkChart.selectItem(
-                                                       selectedIndex[0],
-                                                       NetworkChartManager.getInstance()
-                                                                       .getChildChartIndex(selectedIndex[1],
-                                                                                       Integer.toString(seq)));
+                               Object obData = selData.getData();
+                               if (null != obData && (obData instanceof LogData)) { // summary
+                                       LogData ldata = (LogData) obData;
+                                       dataTime = ldata.getTime();
+                                       if (null != lastSelectedItemForSummary) {
+                                               AnalyzerManager.getCurrentPage().updateView(
+                                                               new DASelectionData(NetworkPage.chartViewID,
+                                                                               dataTime, dataTime,
+                                                                               lastSelectedItemForSummary.getData(),
+                                                                               null));
+                                       }
                                }
                        } else {
-                               long start = selData.getStartTime();
-                               long end = selData.getEndTime();
-
-                               double startTime = (double) start
-                                               / TimelineConstants.MEGA_DOUBLE;
-                               double endTime = (double) end / TimelineConstants.MEGA_DOUBLE;
-                               // double middleTime = (startTime + endTime) / 2.0;
-                               // if (start == end) {
-                               // middleTime = startTime;
-                               // }
+                               dataTime = selData.getStartTime();
+                       }
+                       double selectionTime = dataTime / TimelineConstants.MEGA_DOUBLE;
 
-                               DAChartBoard chartBoard = (DAChartBoard) stackLayout.topControl;
+                       DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) networkChartBoard
+                                       .getMarkers().get(UICommonConstants.SELECTION_MARKER_INDEX);
+                       intervalMarker.setInterval(selectionTime, selectionTime);
 
-                               // chartBoard.setVisibleMiddleTime(middleTime);
-                               DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) chartBoard
-                                               .getMarkers().get(
-                                                               UICommonConstants.SELECTION_MARKER_INDEX);
-                               intervalMarker.setInterval(startTime, endTime);
-                       }
                }
        }
 
        @Override
        public void clear() {
-               networkChart.clear();
-               initIntervalMarkers(networkChart);
-               NetworkChartManager.getInstance().getNetworkDataMaker().clear();
-               NetworkChartManager.getInstance().getNetworkDataMaker()
-                               .setBoard(networkChart);
+               networkChartBoard.clear();
+               NetworkDataManager.getInstance().clear();
        }
 
        @Override
        public Control getControl() {
-               return networkChart;
-       }
-
-       private void initIntervalMarkers(DAChartBoard board) {
-               // selection marker
-               DAChartPlotIntervalMarker selectionMarker = new DAChartPlotIntervalMarker(
-                               -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_AREA);
-               selectionMarker.setBackgroundColor(ColorResources.SELECTION_RANGE);
-               selectionMarker.setAlpha((int) (255 * 0.25));
-               board.addIntervalMarker(selectionMarker);
-
-               // range analysis marker
-               DAChartPlotIntervalMarker rangeAnalyzeMarker = new DAChartPlotIntervalMarker(
-                               -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_AREA);
-               rangeAnalyzeMarker.setBackgroundColor(ColorResources.YELLOW);
-               rangeAnalyzeMarker.setAlpha((int) (255 * 0.25));
-               board.addIntervalMarker(rangeAnalyzeMarker);
-
-               // range marker
-               DAChartPlotIntervalMarker rangeMarker = new DAChartPlotIntervalMarker(
-                               -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_LINE);
-               rangeMarker.setForegroundColor(ColorResources.RED);
-               rangeMarker.setAlpha((int) (255 * 0.25));
-               board.addIntervalMarker(rangeMarker);
+               return networkChartBoard;
        }
 
        public void setRangeMarker(double starttime, double endtime) {
-               networkChart.setTimelineMarkerStartTime(starttime);
-               networkChart.setTimelineMarkerEndTime(endtime);
+               networkChartBoard.setTimelineMarkerStartTime(starttime);
+               networkChartBoard.setTimelineMarkerEndTime(endtime);
 
-               ((DAChartPlotIntervalMarker) networkChart.getMarkers().get(
-                               UICommonConstants.RANGE_MARKER_INDEX)).setInterval(
-                                               starttime, endtime);
+               ((DAChartPlotIntervalMarker) networkChartBoard.getMarkers().get(
+                               UICommonConstants.RANGE_MARKER_INDEX)).setInterval(starttime,
+                               endtime);
        }
 }
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDataMaker.java
deleted file mode 100644 (file)
index c986c7f..0000000
+++ /dev/null
@@ -1,800 +0,0 @@
-/*
- *  Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: 
- * Hyunjong Park <phjwithyou.park@samsung.com>
- * Jooyoul Lee <jy.exe.lee@samsung.com>
- * Juyoung Kim <j0.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * 
- * Contributors:
- * - S-Core Co., Ltd
- * 
- */
-
-package org.tizen.dynamicanalyzer.ui.network;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
-import org.tizen.dynamicanalyzer.nl.ConfigureLabels;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-import org.tizen.dynamicanalyzer.nl.ThreadPageLabels;
-import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;
-import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.resources.FontResources;
-import org.tizen.dynamicanalyzer.resources.ImageResources;
-import org.tizen.dynamicanalyzer.swap.model.data.LogData;
-import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
-import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.PopupClearMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.PopupEndMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.PopupFromSelectionMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.PopupStartMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseEventListener;
-import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseTrackAdapter;
-import org.tizen.dynamicanalyzer.ui.summary.failed.FailedChecker;
-import org.tizen.dynamicanalyzer.ui.summary.failed.FailedData;
-import org.tizen.dynamicanalyzer.ui.summary.leaks.LeakDetector;
-import org.tizen.dynamicanalyzer.ui.summary.warning.WarningCase;
-import org.tizen.dynamicanalyzer.ui.summary.warning.WarningChecker;
-import org.tizen.dynamicanalyzer.ui.summary.warning.WarningData;
-import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.ui.toolbar.configuration.ConfigurationDialogDataManager;
-import org.tizen.dynamicanalyzer.util.DALogger;
-import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.AutoRangeType;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotTooltip;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
-import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu;
-import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuItem;
-
-public class NetworkDataMaker {
-       private static final DALogger DA_LOG = DALogger.getInstance();
-       
-       private DAChartBoard board;
-       private int preSelectionPId = -1;
-       private List<NetworkChartData> unknownDataList = new ArrayList<NetworkChartData>();
-       private List<NetworkChartData> connectedDataList = new ArrayList<NetworkChartData>();
-
-       private List<NetworkChartDataEvent> networkEventQueue = new ArrayList<NetworkChartDataEvent>();
-
-       private List<NetworkChartDataEvent> unConnectedEventQueue = new ArrayList<NetworkChartDataEvent>();
-
-       private HashMap<String, String> addressByFdHashMap = new HashMap<String, String>();
-       private HashMap<String, String> parentFDByFdHashMap = new HashMap<String, String>();
-
-       // private DAChartBoardItem networkTransmissionSizeItem;
-
-       private WarningChecker warningChecker = null;
-       private FailedChecker failedChecker = null;
-
-       // private boolean isUnknownChart = false;
-       // private boolean isAddressChart = false;
-
-       public NetworkDataMaker(FailedChecker failedChecker,
-                       LeakDetector leakDetector, WarningChecker warningChecker) {
-               this.failedChecker = failedChecker;
-               this.warningChecker = warningChecker;
-       }
-
-       public void setBoard(DAChartBoard board) {
-               this.board = board;
-       }
-
-       public void clear() {
-               unknownDataList.clear();
-               connectedDataList.clear();
-               networkEventQueue.clear();
-               unConnectedEventQueue.clear();
-               addressByFdHashMap.clear();
-               parentFDByFdHashMap.clear();
-               // networkTransmissionSizeItem = null;
-               NetworkTrafficChart.getInstance().clear();
-
-       }
-
-       public List<NetworkChartData> getNetworkChartLow() {
-               return connectedDataList;
-       }
-       
-       public List<NetworkChartData> getUnknownNetworkChartLow() {
-               return unknownDataList;
-       }
-
-       /**
-        * 
-        * @param inputs
-        */
-       public void makeData(List<LogData> inputs) {
-               int size = inputs.size();
-               for (int i = 0; i < size; i++) {
-                       NetworkData input = (NetworkData) inputs.get(i);
-
-                       if (ConfigurationDialogDataManager.getInstance()
-                                       .getfeatureValue(
-                                                       ConfigureLabels.INCLUDE_INSIDE_CALL_NETWORK) == 0) {
-                               if (input.isInternal()) {
-                                       continue;
-                               }
-                       }
-
-                       NetworkChartDataEvent event = makeEventData(input);
-
-                       if (event.isFailedAPI()) {
-                               FailedData ffd = new FailedData(input);
-                               event.setFailedData(ffd);
-                               this.failedChecker.getFailedList().add(ffd);
-                       }
-
-                       setTrafficData(event);
-
-                       checkClosedFDForFailedFD(event);
-                       if(event.getAddress().equals("")){
-                               unConnectedEventQueue.add(event);
-                       }else{
-                               networkEventQueue.add(event);   
-                       }
-               }
-       }
-
-       private NetworkChartDataEvent makeEventData(NetworkData input) {
-               String apiAddress = input.getDestinationAddress();
-               String apiFD = Long.toString(input.getFdValue());
-               apiFD = getHexString(apiFD);
-               String apiThread = Integer.toString(input.getTid());
-               String apiName = input.getApiName();
-               int apiType = input.getFdApiType();
-               double time = input.getTime();
-               long errno = input.getErrno();
-
-               int connectedType = 5;
-               String parentAddress = addressByFdHashMap.get(apiFD);
-               if (null != parentAddress) { // get Address by FD
-                       apiAddress = parentAddress;
-               }
-
-               switch (apiType) {
-               // Socket
-               case LogCenterConstants.SOCKET_API_FD_OPEN:
-                       break;
-               case LogCenterConstants.SOCKET_API_CONNECT: {
-                       String[] strInput = input.getArgs()
-                                       .split(CommonConstants.COMMA);
-                       if (strInput.length <= 0) {
-                               return null;
-                       }
-                       apiAddress = strInput[1];
-                       connectedType = NetworkChartDataEvent.NETWORK_CHART_CLIENT_NAME;
-                       updatePreviousEventData(apiFD, apiAddress, connectedType);
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_ACCEPT_START:
-                       break;
-               case LogCenterConstants.SOCKET_API_ACCEPT_END: {
-                       String clientFD = input.getReturn();
-                       addressByFdHashMap.put(clientFD, parentAddress);
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_FD_CLOSE: {
-                       if (errno != 0) {
-                               addressByFdHashMap.remove(apiFD);
-                       }
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_RECV_START:
-                       break;
-               case LogCenterConstants.SOCKET_API_RECV_END:
-                       break;
-               case LogCenterConstants.SOCKET_API_SEND_START:
-                       break;
-               case LogCenterConstants.SOCKET_API_SEND_END:
-                       break;
-               case LogCenterConstants.SOCKET_API_EVENT_START:
-                       break;
-               case LogCenterConstants.SOCKET_API_EVENT_END:
-                       break;
-               case LogCenterConstants.SOCKET_API_BIND: {
-                       String[] strInput = input.getArgs()
-                                       .split(CommonConstants.COMMA);
-                       if (strInput.length <= 0) {
-                               return null;
-                       }
-                       apiAddress = strInput[1];
-                       connectedType = NetworkChartDataEvent.NETWORK_CHART_SERVER_NAME;
-                       updatePreviousEventData(apiFD, apiAddress, connectedType);
-                       break;
-               }
-               case LogCenterConstants.SOCKET_API_LISTEN:
-                       break;
-               case LogCenterConstants.SOCKET_API_OTHER: {
-                       if (apiName.contains("epoll_ctl")) { //$NON-NLS-1$
-                               String[] strInput = input.getArgs()
-                                               .split(CommonConstants.COMMA);
-                               if (strInput.length <= 0) {
-                                       return null;
-                               }
-                               String clientFD = strInput[0];
-                               addressByFdHashMap.put(clientFD, parentAddress);
-                               if (errno != 0) {
-                               }
-                               apiFD = clientFD;
-                               connectedType = NetworkChartDataEvent.NETWORK_CHART_SERVER_NAME;
-                               updatePreviousEventData(apiFD, apiAddress, connectedType);
-                       }
-                       break;
-               }
-               // HTTP
-               case LogCenterConstants.HTTP_API_SESSION_CONSTRUCT:
-                       String[] strInput = input.getArgs().split(CommonConstants.COMMA);
-                       if (strInput.length <= 0) {
-                               return null;
-                       }
-                       String clientAddress = strInput[2];
-
-                       addressByFdHashMap.put(apiFD, clientAddress);
-                       parentFDByFdHashMap.put(apiFD, apiFD);
-                       connectedType = NetworkChartDataEvent.NETWORK_CHART_SESSION_NAME;
-                       break;
-               case LogCenterConstants.HTTP_API_TRANSACTION_OPEN: {
-                       String clientFD = input.getReturn();
-                       String parrentAddress = addressByFdHashMap.get(apiFD);
-                       if (null != parrentAddress) {
-                               apiAddress = parrentAddress;
-                       }
-                       addressByFdHashMap.put(clientFD, apiAddress);
-                       apiFD = clientFD;
-                       connectedType = NetworkChartDataEvent.NETWORK_CHART_TRANSACTION_NAME;
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_TRANSACTION_CLOSE: {
-                       String clientFD = input.getArgs().trim();
-                       if (!clientFD.contains(CommonConstants.EMPTY)) {
-                               apiFD = clientFD;
-                       }
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_ALLOCATION: {
-                       String clientFD = input.getReturn();
-                       String parretnFD = parentFDByFdHashMap.get(apiFD);
-                       if (null != parretnFD) {
-                               apiFD = parretnFD;
-                       }
-                       String parrentAddress = addressByFdHashMap.get(apiFD);
-                       if (null != parrentAddress) {
-                               apiAddress = parrentAddress;
-                       }
-
-                       addressByFdHashMap.put(clientFD, apiAddress);
-                       parentFDByFdHashMap.put(clientFD, apiFD);
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_SUBMIT: {
-                       String parretnFD = parentFDByFdHashMap.get(apiFD);
-                       if (null != parretnFD) {
-                               apiFD = parretnFD;
-                       }
-                       String parrentAddress = addressByFdHashMap.get(apiFD);
-                       if (null != parrentAddress) {
-                               apiAddress = parrentAddress;
-                       }
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_REQUEST: {
-                       String parretnFD = parentFDByFdHashMap.get(apiFD);
-                       if (null != parretnFD) {
-                               apiFD = parretnFD;
-                       }
-                       String parrentAddress = addressByFdHashMap.get(apiFD);
-                       if (null != parrentAddress) {
-                               apiAddress = parrentAddress;
-                       }
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_RESPONSE: {
-                       String clientFD = input.getReturn();
-                       String parretnFD = parentFDByFdHashMap.get(apiFD);
-                       if (null != parretnFD) {
-                               apiFD = parretnFD;
-                       }
-                       String parrentAddress = addressByFdHashMap.get(apiFD);
-                       if (null != parrentAddress) {
-                               apiAddress = parrentAddress;
-                       }
-
-                       addressByFdHashMap.put(clientFD, apiAddress);
-                       parentFDByFdHashMap.put(clientFD, apiFD);
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_OTHER: {
-                       String parretnFD = parentFDByFdHashMap.get(apiFD);
-                       if (null != parretnFD) {
-                               apiFD = parretnFD;
-                       }
-                       String parrentAddress = addressByFdHashMap.get(apiFD);
-                       if (null != parrentAddress) {
-                               apiAddress = parrentAddress;
-                       }
-                       break;
-               }
-               case LogCenterConstants.HTTP_API_CLOSE: {
-                       if (errno != 0) {
-                               addressByFdHashMap.remove(apiFD);
-                       }
-
-                       break;
-               }
-               default:
-                       DA_LOG.debug("makeEventData : no case NetworkChartDataEvent : "
-                                                       + apiType);//$NON-NLS-1$
-                       return null;
-               }
-
-               NetworkChartDataEvent event = new NetworkChartDataEvent(apiAddress,
-                               apiFD, apiThread, time, apiName, apiType, connectedType, input);
-               if (errno != 0) {
-                       event.setFailedAPI();
-               }
-               return event;
-       }
-
-       private void setTrafficData(NetworkChartDataEvent event) {
-               if (event.getApiType() == LogCenterConstants.SOCKET_API_SEND_END
-                               || event.getApiType() == LogCenterConstants.HTTP_API_REQUEST) {
-                       event.setSendSize(event.getContents().getPacketMessageSize());
-                       NetworkTrafficChart.getInstance().setSendSize(
-                                       event.getContents().getPacketMessageSize(),
-                                       Long.toString(event.getContents().getTime()));
-               } else if (event.getApiType() == LogCenterConstants.SOCKET_API_RECV_END
-                               || event.getApiType() == LogCenterConstants.HTTP_API_RESPONSE) {
-                       event.setRecvSize(event.getContents().getPacketMessageSize());
-                       NetworkTrafficChart.getInstance().setRecvSize(
-                                       event.getContents().getPacketMessageSize(),
-                                       Long.toString(event.getContents().getTime()));
-               }
-       }
-
-       private void updatePreviousEventData(String apiFD, String apiAddress,
-                       int connectType) {
-               addressByFdHashMap.put(apiFD, apiAddress);
-               List<NetworkChartDataEvent> removeEventQueue = new ArrayList<NetworkChartDataEvent>();
-               for (NetworkChartDataEvent event : unConnectedEventQueue) {
-                       if (event.getFD().equals(apiFD)) {
-                               event.setAddress(apiAddress);
-                               event.setConnectedType(connectType);
-                               networkEventQueue.add(event);
-                               removeEventQueue.add(event);
-                       }
-               }
-               unConnectedEventQueue.removeAll(removeEventQueue);
-               for (NetworkChartDataEvent event : networkEventQueue) {
-                       if (event.getFD().equals(apiFD)) {
-                               event.setAddress(apiAddress);
-                               event.setConnectedType(connectType);
-                       }
-               }
-
-               // isAddressChart = true;
-       }
-
-       private void checkClosedFDForFailedFD(NetworkChartDataEvent data) {
-               if (data.isFailedAPI()
-                               && data.getApiType() != LogCenterConstants.SOCKET_API_OTHER) {
-                       if (!warningChecker.isChecked(data.getFD(),
-                                       WarningCase.CLOSED_NETWORK_FD.getType())) {
-                               WarningData wData = new WarningData(
-                                               WarningCase.CLOSED_NETWORK_FD.getType(),
-                                               data.getContents(), data.getFD());
-                               warningChecker.getWarningData().add(wData);
-                       }
-               }
-               if (data.getApiType() == LogCenterConstants.SOCKET_API_RECV_END
-                               && data.getRecvSize() <= 0) {
-                       if (!warningChecker.isChecked(data.getFD(),
-                                       WarningCase.CLOSED_NETWORK_FD.getType())) {
-                               WarningData wData = new WarningData(
-                                               WarningCase.CLOSED_NETWORK_FD.getType(),
-                                               data.getContents(), data.getFD());
-                               warningChecker.getWarningData().add(wData);
-                       }
-               }
-               if (data.getApiType() == LogCenterConstants.SOCKET_API_FD_CLOSE) {
-                       if (warningChecker.isChecked(data.getFD(),
-                                       WarningCase.CLOSED_NETWORK_FD.getType())) {
-                               warningChecker.removeData(data.getFD(),
-                                               WarningCase.CLOSED_NETWORK_FD.getType());
-
-                       }
-               }
-       }
-
-       private void initNetworkChart(DAChart chart, boolean isParent) {
-               if (null == chart) {
-                       return;
-               }
-
-               DAChartPlot plot = chart.getPlot();
-               if (null == plot) {
-                       return;
-               }
-               if (true == isParent) {
-                       plot.setBackgroundImage(ImageResources.BG_GRADIENT);
-               } else {
-                       plot.setBackgroundImage(ImageResources.BG_CHILD_GRADIENT);
-               }
-               plot.setAutoHeightRange(AutoRangeType.MANUAL);
-               plot.setAxisFont(FontResources.CHART_AXIS_FONT);
-               plot.setAxisRangeY(0, 101);
-               plot.setAxisRangeX(board.getVisibleStartTime(),
-                               board.getVisibleEndTime());
-               DAChartPlotTooltip tooltip = new DAChartPlotTooltip(-1);
-               tooltip.setFont(FontResources.CHART_TOOLTIP_FONT);
-               plot.setTooltip(tooltip);
-
-               DAPopupMenu popupMenu = new DAPopupMenu(chart);
-               popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT);
-               DAPopupMenuItem startItem = new DAPopupMenuItem(popupMenu,
-                               DAPopupMenuItem.NONE);
-               startItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_START);
-               startItem.addListener(new PopupStartMenuItemClickListener(startItem,
-                               board));
-
-               DAPopupMenuItem endItem = new DAPopupMenuItem(popupMenu,
-                               DAPopupMenuItem.NONE);
-               endItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_END);
-               endItem.addListener(new PopupEndMenuItemClickListener(endItem, board));
-
-               DAPopupMenuItem fromSelectionItem = new DAPopupMenuItem(popupMenu,
-                               DAPopupMenuItem.NONE);
-               fromSelectionItem
-                               .setText(TimelineChartLabels.RANGE_CONTEXT_SET_FROM_SELECTION);
-               fromSelectionItem
-                               .addListener(new PopupFromSelectionMenuItemClickListener(
-                                               fromSelectionItem, board));
-
-               DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu,
-                               DAPopupMenuItem.NONE);
-               analysisItem.setText(TimelineChartLabels.RANGE_CONTEXT_ANALYSIS);
-               analysisItem.addListener(new PopupAnalysisMenuItemClickListener());
-
-               DAPopupMenuItem clearItem = new DAPopupMenuItem(popupMenu,
-                               DAPopupMenuItem.NONE);
-               clearItem.setText(TimelineChartLabels.RANGE_CONTEXT_CLEAR);
-               clearItem.addListener(new PopupClearMenuItemClickListener());
-
-               TimelineChartMouseEventListener timelineChartMouseEventListener = new TimelineChartMouseEventListener(
-                               popupMenu, board.getTimeline());
-               chart.addMouseListener(timelineChartMouseEventListener);
-               chart.addMouseMoveListener(timelineChartMouseEventListener);
-               chart.addMouseTrackListener(new TimelineChartMouseTrackAdapter(board
-                               .getTimeline()));
-               plot.setMarkers(board.getMarkers());
-       }
-
-       private boolean createNetworkBoardItem(NetworkChartData parent,
-                       NetworkChartData sync, NetworkChartDataEvent event) {
-               DAChartBoardItem item;
-               DAChart chart;
-               if (null == parent) {
-                       item = new DAChartBoardItem(board, sync.getAddressName());
-                       chart = item.getChart();
-                       initNetworkChart(chart, true);
-                       sync.setChartKeyName(sync.getAddressName());
-               } else {
-                       DAChartBoardItem parentItem = parent.getItem();
-                       String objectName = CommonConstants.EMPTY;
-                       if (event.getConnectedType() == NetworkChartDataEvent.NETWORK_CHART_SERVER_NAME) {
-                               objectName = NetworkPageLabels.NETWORK_CHART_SERVER_NAME;
-                       } else if (event.getConnectedType() == NetworkChartDataEvent.NETWORK_CHART_CLIENT_NAME) {
-                               objectName = NetworkPageLabels.NETWORK_CHART_CLIENT_NAME;
-                       } else if (event.getConnectedType() == NetworkChartDataEvent.NETWORK_CHART_SESSION_NAME) {
-                               objectName = NetworkPageLabels.NETWORK_CHART_SESSION_NAME;
-                       } else if (event.getConnectedType() == NetworkChartDataEvent.NETWORK_CHART_TRANSACTION_NAME) {
-                               objectName = NetworkPageLabels.NETWORK_CHART_TRANSACTION_NAME;
-                       } else {
-                               objectName = NetworkPageLabels.NETWORK_CHART_CLIENT_NAME;
-                       }
-                       item = new DAChartBoardItem(parentItem, objectName
-                                       + CommonConstants.NEW_LINE + sync.getFD());
-                       sync.setChartKeyName(objectName + sync.getFD());
-                       chart = item.getChart();
-                       initNetworkChart(chart, false);
-               }
-
-               DAChartSeries apiSeries = new DAChartSeries(
-                               NetworkPageLabels.NETWORK_CHART_API,
-                               DAChartSeries.SERIES_STYLE_EVENT, ColorResources.YELLOW);
-
-               DAChartSeries stateSeries = new DAChartSeries(
-                               NetworkPageLabels.NETWORK_CHART_SERIES,
-                               DAChartSeries.SERIES_STYLE_STATE, ColorResources.WHITE);
-
-               DAChartSeries accessSeries = new DAChartSeries(
-                               NetworkPageLabels.NETWORK_CHART_ACCESS,
-                               DAChartSeries.SERIES_STYLE_EVENT_AREA, ColorResources.WHITE);
-
-               apiSeries.setSummarizeTooltipText(ThreadPageLabels.THREAD_TOOLTIP_APIS);
-
-               chart.addSeries(stateSeries);
-               chart.addSeries(apiSeries);
-               chart.addSeries(accessSeries);
-
-               sync.setItem(item);
-               item.setData(sync);
-               chart.setData(sync);
-               chart.redraw();
-               return true;
-       }
-
-       // private boolean createTransmissionSizeBoardItem() {
-       // if (null == networkTransmissionSizeItem) {
-       // if (null == board) {
-       // return false;
-       // }
-       // DAChart chart;
-       // networkTransmissionSizeItem = NetworkTrafficChart.getInstance()
-       // .createBoardItem(board);
-       //
-       // chart = networkTransmissionSizeItem.getChart();
-       // initNetworkChart(chart, true);
-       // }
-       // return true;
-       // }
-
-       private NetworkChartData findAddressChart(NetworkChartDataEvent data) {
-
-               String address = addressByFdHashMap.get(data.getFD());
-               if (null != address) {
-                       data.setAddress(address);
-               }
-               NetworkChartData returnData = null;
-               for (int i = 0; i < connectedDataList.size(); i++) {
-                       returnData = connectedDataList.get(i);
-                       if (returnData.getAddress().equals(data.getAddress())) {
-                               return returnData;
-                       }
-               }
-               return null;
-       }
-
-       private void chartFilteringByPId() {
-               if (null == board || null == board.getItemList()) {
-                       return;
-               }
-               int selectedPid = ToolbarArea.getInstance().getSelectedPid();
-               boolean isCheck = false;
-
-               if (networkEventQueue.size() > 0) {
-                       isCheck = true;
-               }
-
-               if (preSelectionPId != -1 && preSelectionPId != selectedPid) {
-                       isCheck = true;
-               }
-
-               if (isCheck) {
-                       int parentSize = board.getItemList().getItemSize();
-                       for (int i = 0; i < parentSize; i++) {
-                               DAChartBoardItem parentItem = board.getItemList().get(i);
-                               int childSize = parentItem.getChildItemList().getItemSize();
-                               int hidedCount = 0;
-                               for (int j = 0; j < childSize; j++) {
-                                       DAChartBoardItem childItem = parentItem.getChildItemList()
-                                                       .get(j);
-                                       int itemPid = getItemPid(childItem);
-                                       if (itemPid == selectedPid) {
-                                               parentItem.getChildItemList().showItem(j);
-                                               board.showItem(i);
-                                       } else if (selectedPid == 0) {
-                                               parentItem.getChildItemList().showItem(j);
-                                               board.showItem(i);
-                                       } else if (itemPid == -1) {
-                                               board.showItem(i);
-                                       } else {
-                                               parentItem.getChildItemList().hideItem(j);
-                                               hidedCount++;
-                                       }
-                               }
-                               if (childSize == 0) {
-                                       int itemPid = getItemPid(parentItem);
-                                       if (itemPid == selectedPid) {
-                                               board.showItem(i);
-                                       } else if (selectedPid == 0) {
-                                               board.showItem(i);
-                                       } else if (itemPid == -1) {
-                                               board.showItem(i);
-                                       } else {
-                                               board.hideItem(i);
-                                               hidedCount++;
-                                       }
-                               } else {
-                                       if (childSize == hidedCount) {
-                                               board.hideItem(i);
-                                       }
-                               }
-                       }
-               }
-               preSelectionPId = selectedPid;
-       }
-
-       private int getItemPid(DAChartBoardItem item) {
-               int pid = -1;
-               if (item.getData() instanceof NetworkChartData) {
-                       NetworkChartData chartData = (NetworkChartData) item.getData();
-                       if (chartData.getContents().size() > 0) {
-                               pid = chartData.getContents().get(0).getContents().getPid();
-                       }
-               }
-               return pid;
-       }
-
-       // private void hideUnConnectedItem() {
-       // if (isUnknownChart == true && isAddressChart == true) {
-       // int parentSize = board.getItemList().getItemSize();
-       // for (int i = 0; i < parentSize; i++) {
-       // DAChartBoardItem parentItem = board.getItemList().get(i);
-       // NetworkChartData itme = (NetworkChartData) parentItem.getData();
-       // if (itme.getChartKeyName().equals(
-       // NetworkPageLabels.NETWORK_CHART_NOTCONNECT)) {
-       // board.hideItem(i);
-       // }
-       //
-       // }
-       // isUnknownChart = false;
-       // }
-       // }
-
-       public void checkUpdate() {
-
-               // createTransmissionSizeBoardItem();
-
-               if (!AnalyzerManager.isRunning()) {
-                       int size = unknownDataList.size();
-                       NetworkChartData data;
-                       for (int i = 0; i < size; i++) {
-                               data = unknownDataList.get(i);
-                               data.checkUpdate();
-                       }
-
-                       size = connectedDataList.size();
-                       for (int i = 0; i < size; i++) {
-                               data = connectedDataList.get(i);
-                               data.checkUpdate();
-                       }
-               }
-
-               chartFilteringByPId();
-
-               int size = networkEventQueue.size();
-               if (size > 0) {
-                       // hideUnConnectedItem();
-                       NetworkChartData parentChart = null;
-                       NetworkChartData childChart = null;
-                       NetworkChartDataEvent event = null;
-                       for (int i = 0; i < size; i++) {
-                               event = networkEventQueue.get(0);
-                               int apiType = event.getApiType();
-
-                               parentChart = findAddressChart(event);
-                               if (parentChart == null) {
-                                       if (unknownDataList.size() > 0) {
-                                               parentChart = unknownDataList.get(0);
-                                       }
-                                       if (event.getAddress().equals("0.0.0.0\n0")) {//$NON-NLS-1$
-                                               event.setAddress(NetworkPageLabels.NETWORK_CHART_NOTCONNECT);
-                                               unConnectedEventQueue.add(event);
-                                               // isUnknownChart = true;
-                                       } else {
-                                               parentChart = null;
-                                       }
-                               } else {
-                                       event.setAddress(parentChart.getAddress());
-                               }
-
-                               if (null == parentChart) {
-                                       parentChart = new NetworkChartData(event, true);
-                                       childChart = new NetworkChartData(event, false);
-
-                                       parentChart.pushChild(childChart);
-                                       createNetworkBoardItem(null, parentChart, event);
-                                       createNetworkBoardItem(parentChart, childChart, event);
-
-                                       if (!event.isFailedAPI()) {
-                                               parentChart.setClosed(false);
-                                               childChart.setClosed(false);
-                                               childChart.setFDConnected(false);
-                                               parentChart.setFDConnected(false);
-                                               parentChart.setSocketOpendTime((long) event
-                                                               .getLogTime());
-                                               childChart
-                                                               .setSocketOpendTime((long) event.getLogTime());
-                                       }
-
-                                       parentChart.pushEvent(event);
-                                       childChart.pushEvent(event);
-
-                                       if (event.getAddress().equals(
-                                                       NetworkPageLabels.NETWORK_CHART_NOTCONNECT)) {
-                                               unknownDataList.add(parentChart);
-                                               unknownDataList.add(childChart);
-                                       } else {
-                                               connectedDataList.add(parentChart);
-                                               connectedDataList.add(childChart);
-                                       }
-                               } else {
-                                       childChart = parentChart.findChildData(event);
-                                       if (null == childChart) {
-                                               childChart = new NetworkChartData(event, false);
-
-                                               if (event.getAddress().equals(
-                                                               NetworkPageLabels.NETWORK_CHART_NOTCONNECT)) {
-                                                       unknownDataList.add(childChart);
-                                               } else {
-                                                       connectedDataList.add(childChart);
-                                               }
-                                               createNetworkBoardItem(parentChart, childChart, event);
-                                               if (!event.isFailedAPI()) {
-                                                       childChart.setClosed(false);
-                                                       childChart.setFDConnected(false);
-                                                       childChart.setSocketOpendTime((long) event
-                                                                       .getLogTime());
-                                               }
-                                               childChart.pushEvent(event);
-                                               parentChart.pushChild(childChart);
-                                       } else {
-                                               if (apiType == LogCenterConstants.SOCKET_API_FD_CLOSE) {
-                                                       if (!event.isFailedAPI()) {
-                                                               childChart.setClosed(true);
-                                                               childChart.setSocketClosedTime((long) event
-                                                                               .getLogTime());
-                                                               childChart.setFDConnected(false);
-                                                               parentChart.setFDConnected(false);
-                                                       }
-                                               }
-                                               childChart.pushEvent(event);
-                                       }
-                                       parentChart.pushEvent(event);
-                                       parentChart.setSocketUsedTime(event.getLogTime());
-                                       childChart.setSocketUsedTime(event.getLogTime());
-                               }
-
-                               networkEventQueue.remove(0);
-                               parentChart.checkUpdate();
-                               childChart.checkUpdate();
-                       }
-               }
-       }
-
-       private String getHexString(String input) {
-               String retStr = null;
-               long lInput = Long.parseLong(input);
-               if (lInput < 0x10000000) {
-                       retStr = Long.toString(lInput);
-               } else {
-                       retStr = AnalyzerUtil.toHexdecimal(lInput);
-               }
-               return retStr;
-       }
-
-}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDetailInfoView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDetailInfoView.java
deleted file mode 100644 (file)
index 5590a24..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- *  Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: 
- * Hyunjong Park <phjwithyou.park@samsung.com>
- * yeongtaik byeon <yeongtaik.byeon@samsung.com>
- * Juyoung Kim <j0.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * 
- * Contributors:
- * - S-Core Co., Ltd
- * 
- */
-
-package org.tizen.dynamicanalyzer.ui.network;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Text;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
-import org.tizen.dynamicanalyzer.common.DASelectionData;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.resources.FontResources;
-import org.tizen.dynamicanalyzer.utils.Formatter;
-import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
-import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
-
-public class NetworkDetailInfoView extends DAViewComposite {
-       private Composite contents = null;
-       private Text detailText = null;
-       private Label labelMessage = null;
-       private int indexScrolledTop = 0;
-
-       private final static String leftFormAttachment = CommonConstants.SPACE
-                       + CommonConstants.SPACE;
-       private final static String heightFormAttachment = CommonConstants.NEW_LINE
-                       + CommonConstants.NEW_LINE;
-
-       private void init() {
-               detailText.setText(CommonConstants.EMPTY);
-       }
-
-       public NetworkDetailInfoView(Composite parent, int style) {
-               super(parent, style, true);
-               this.setLayout(new FillLayout());
-
-               setTitle(NetworkPageLabels.NETWORK_DETAILS_TITLE);
-
-               Composite detailCom = getContentArea();
-               detailCom.setBackground(ColorResources.VIEW_BG_COLOR);
-               detailCom.setLayout(new FormLayout());
-               FormData labelData = new FormData();
-               labelData.top = new FormAttachment(0, 0);
-               labelData.left = new FormAttachment(0, 0);
-               labelData.right = new FormAttachment(100, 0);
-               labelData.bottom = new FormAttachment(100, 0);
-               detailCom.setLayoutData(labelData);
-
-               Composite contents = detailCom;
-               contents.setBackground(ColorResources.VIEW_BG_COLOR);
-               contents.setLayout(new FormLayout());
-
-               detailText = new Text(contents, SWT.BORDER | SWT.V_SCROLL
-                               | SWT.H_SCROLL);
-               detailText.setBackground(ColorResources.VIEW_BG_COLOR);
-               detailText.setForeground(ColorResources.TABLE_CONTENTS_FONT_COLOR);
-               detailText.setFont(FontResources.DETAIL_INFO_FONT);
-
-               FormData buttonData = new FormData();
-               buttonData.top = new FormAttachment(labelMessage, 0);
-               buttonData.left = new FormAttachment(0, 0);
-               buttonData.right = new FormAttachment(100, 0);
-               buttonData.bottom = new FormAttachment(100, 0);
-               detailText.setLayoutData(buttonData);
-               detailText.getVerticalBar().setVisible(false);
-               detailText.getHorizontalBar().setVisible(false);
-
-               Listener listener = new Listener() {
-                       public void handleEvent(Event e) {
-                               indexScrolledTop = detailText.getTopIndex();
-                       }
-               };
-               ScrollBar hBar = detailText.getHorizontalBar();
-               if (hBar != null) {
-                       hBar.addListener(SWT.Selection, listener);
-               }
-               ScrollBar vBar = detailText.getVerticalBar();
-               if (vBar != null) {
-                       vBar.addListener(SWT.Selection, listener);
-               }
-
-               StringBuffer strDetailView = new StringBuffer();
-               strDetailView.append(CommonConstants.NEW_LINE);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_ADDRESS
-                               + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_RECV_SIZE
-                               + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_SEND_SIZE
-                               + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_TOTAL_USE_TIME
-                               + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_API_COUNT
-                               + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_FAILED_API_COUNT
-                               + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_ASCII
-                               + heightFormAttachment);
-               if (!NetworkChartManager.getInstance().getSendAckTime()
-                               .equals(CommonConstants.EMPTY)) {
-                       strDetailView.append(leftFormAttachment
-                                       + NetworkPageLabels.NETWORK_DETAILS_SEND_ACK_TIME
-                                       + NetworkChartManager.getInstance().getSendAckTime()
-                                       + heightFormAttachment);
-               }
-               strDetailView.append(NetworkChartManager.getInstance()
-                               .getPacketMessage());
-               detailText.setText(strDetailView.toString());
-       }
-
-       @Override
-       public void updateView(DAViewData data) {
-               if (data instanceof DASelectionData) {
-                       updateData();
-                       indexScrolledTop = 0;
-               }
-       }
-
-       @Override
-       public void updateView() {
-               updateData();
-       }
-
-       private void updateData() {
-               NetworkApiListView view = (NetworkApiListView) AnalyzerManager
-                               .getCurrentPage().getView(NetworkPage.listViewID);
-               NetworkChartData selectData = view.getPageData();
-
-               if (null == selectData) {
-                       return;
-               }
-
-               String detailAddress = selectData.getAddress();
-               detailAddress = detailAddress.replace(CommonConstants.NEW_LINE,
-                               CommonConstants.COLON);
-
-               StringBuffer strDetailView = new StringBuffer();
-               strDetailView.append(heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_ADDRESS + detailAddress
-                               + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_RECV_SIZE
-                               + selectData.getRecvSize() + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_SEND_SIZE
-                               + selectData.getSendSize() + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_TOTAL_USE_TIME
-                               + Formatter.toTimeFormat(Long.toString((long) selectData
-                                               .getTotalUseTime())) + NetworkPageLabels.TIME_MS
-                               + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_API_COUNT
-                               + selectData.getApiCount() + heightFormAttachment);
-               strDetailView.append(leftFormAttachment
-                               + NetworkPageLabels.NETWORK_DETAILS_FAILED_API_COUNT
-                               + selectData.getFailedApiCount() + heightFormAttachment);
-               if (!NetworkChartManager.getInstance().getSendAckTime()
-                               .equals(CommonConstants.EMPTY)) {
-                       strDetailView.append(leftFormAttachment
-                                       + NetworkPageLabels.NETWORK_DETAILS_SEND_ACK_TIME
-                                       + NetworkChartManager.getInstance().getSendAckTime()
-                                       + NetworkPageLabels.TIME_MS + heightFormAttachment);
-               }
-
-               strDetailView.append(NetworkChartManager.getInstance()
-                               .getPacketMessage());
-               if (indexScrolledTop == 0) {
-                       detailText.setText(strDetailView.toString());
-               }
-
-       }
-
-       public void setTetailViewData() {
-
-       }
-
-       @Override
-       public Control getControl() {
-               return contents;
-       }
-
-       @Override
-       public void clear() {
-               init();
-       }
-}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDetailView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDetailView.java
new file mode 100644 (file)
index 0000000..f3ec776
--- /dev/null
@@ -0,0 +1,331 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: 
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * yeongtaik byeon <yeongtaik.byeon@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+
+package org.tizen.dynamicanalyzer.ui.network;
+
+import java.util.List;
+
+import org.eclipse.nebula.widgets.grid.GridItem;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.tizen.dynamicanalyzer.common.DASelectionData;
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
+import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.resources.ColorResources;
+import org.tizen.dynamicanalyzer.resources.FontResources;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
+import org.tizen.dynamicanalyzer.utils.Formatter;
+import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
+import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
+
+public class NetworkDetailView extends DAViewComposite {
+       private Composite contents = null;
+       private Text detailText = null;
+       private Label labelMessage = null;
+
+       private final static String leftFormAttachment = CommonConstants.SPACE
+                       + CommonConstants.SPACE;
+       private final static String heightFormAttachment = CommonConstants.NEW_LINE
+                       + CommonConstants.NEW_LINE;
+
+       private void init() {
+               detailText.setText(CommonConstants.EMPTY);
+       }
+
+       public NetworkDetailView(Composite parent, int style) {
+               super(parent, style, true);
+               this.setLayout(new FillLayout());
+
+               setTitle(NetworkPageLabels.NETWORK_DETAILS_TITLE);
+
+               Composite detailCom = getContentArea();
+               detailCom.setBackground(ColorResources.VIEW_BG_COLOR);
+               detailCom.setLayout(new FormLayout());
+               FormData labelData = new FormData();
+               labelData.top = new FormAttachment(0, 0);
+               labelData.left = new FormAttachment(0, 0);
+               labelData.right = new FormAttachment(100, 0);
+               labelData.bottom = new FormAttachment(100, 0);
+               detailCom.setLayoutData(labelData);
+
+               Composite contents = detailCom;
+               contents.setBackground(ColorResources.VIEW_BG_COLOR);
+               contents.setLayout(new FormLayout());
+
+               detailText = new Text(contents, SWT.BORDER | SWT.V_SCROLL
+                               | SWT.H_SCROLL);
+               detailText.setBackground(ColorResources.VIEW_BG_COLOR);
+               detailText.setForeground(ColorResources.TABLE_CONTENTS_FONT_COLOR);
+               detailText.setFont(FontResources.DETAIL_INFO_FONT);
+
+               FormData buttonData = new FormData();
+               buttonData.top = new FormAttachment(labelMessage, 0);
+               buttonData.left = new FormAttachment(0, 0);
+               buttonData.right = new FormAttachment(100, 0);
+               buttonData.bottom = new FormAttachment(100, 0);
+               detailText.setLayoutData(buttonData);
+               detailText.getVerticalBar().setVisible(false);
+               detailText.getHorizontalBar().setVisible(false);
+
+               StringBuffer strDetailView = new StringBuffer();
+               strDetailView.append(CommonConstants.NEW_LINE);
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_ADDRESS
+                               + heightFormAttachment);
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_RECV_SIZE
+                               + heightFormAttachment);
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_SEND_SIZE
+                               + heightFormAttachment);
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_TOTAL_USE_TIME
+                               + heightFormAttachment);
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_API_COUNT
+                               + heightFormAttachment);
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_FAILED_API_COUNT
+                               + heightFormAttachment);
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_ASCII
+                               + heightFormAttachment);
+
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_SEND_ACK_TIME
+                               + heightFormAttachment);
+               strDetailView.append(CommonConstants.EMPTY);
+               detailText.setText(strDetailView.toString());
+       }
+
+       @Override
+       public void updateView(DAViewData data) {
+               if (data instanceof DASelectionData) {
+                       DASelectionData seldata = (DASelectionData) data;
+                       int seq = 0;
+                       if (seldata.getData() instanceof GridItem[]) {
+                               GridItem[] tableData = (GridItem[]) data.getData();
+                               DATableDataFormat tableFormat = (DATableDataFormat) tableData[0]
+                                               .getData();
+                               NetworkAPIType apiType = (NetworkAPIType) tableFormat
+                                               .getLogData();
+                               seq = apiType.getSeq();
+                       }
+                       updateData(seq);
+               }
+       }
+
+       @Override
+       public void updateView() {
+       }
+
+       private void updateData(int seq) {
+               List<NetworkAPIType> contentList = NetworkDataManager.getInstance()
+                               .getSelectedTableAPIList();
+               if (null == contentList) {
+                       return;
+               }
+
+               int sendSize = 0;
+               int recvSize = 0;
+               int apiCount = 0;
+               int failedAPICount = 0;
+               long usedTime = contentList.get(contentList.size() - 1).getTime()
+                               - contentList.get(0).getTime();
+               String payload = CommonConstants.EMPTY;
+
+               // ackSendTime
+               String sendAckTime = CommonConstants.EMPTY;
+               long recvTime = 0;
+               long sendTime = 0;
+               boolean isSendAPICall = false;
+
+               for (int i = 0; i < contentList.size(); i++) {
+                       NetworkAPIType apiType = contentList.get(i);
+
+                       if (apiType.getFdApiType() == LogCenterConstants.SOCKET_API_SEND_END
+                                       || apiType.getFdApiType() == LogCenterConstants.HTTP_API_REQUEST) {
+                               sendSize += apiType.getPacketMessageSize();
+                               if (seq == apiType.getSeq()) {
+                                       payload = apiType.getPacketMessage();
+                                       sendTime = apiType.getTime();
+                                       isSendAPICall = true;
+                               }
+
+                       } else if (apiType.getFdApiType() == LogCenterConstants.SOCKET_API_RECV_END
+                                       || apiType.getFdApiType() == LogCenterConstants.HTTP_API_RESPONSE) {
+                               recvSize += apiType.getPacketMessageSize();
+                               if (seq == apiType.getSeq()) {
+                                       payload = apiType.getPacketMessage();
+                               }
+
+                               if (isSendAPICall) {
+                                       isSendAPICall = false;
+                                       recvTime = apiType.getTime();
+                               }
+
+                       }
+
+                       if (apiType.getErrno() > 0) {
+                               failedAPICount++;
+                       }
+
+                       if (apiType.getFdApiType() == LogCenterConstants.SOCKET_API_RECV_END
+                                       || apiType.getFdApiType() == LogCenterConstants.SOCKET_API_SEND_END
+                                       || apiType.getFdApiType() == LogCenterConstants.SOCKET_API_ACCEPT_END
+                                       || apiType.getFdApiType() == LogCenterConstants.SOCKET_API_EVENT_END) {
+                               continue;
+                       } else {
+                               apiCount++;
+                       }
+               }
+               if (sendTime > 0 && recvTime > 0) {
+                       long ackTime = recvTime - sendTime;
+                       String timeFormat = Formatter.toTimeFormat(ackTime);
+                       sendAckTime = timeFormat.replace("00:", CommonConstants.EMPTY);//$NON-NLS-1$
+               }
+
+               String detailAddress = contentList.get(0).getDestinationAddress();
+               detailAddress = detailAddress.replace(CommonConstants.NEW_LINE,
+                               CommonConstants.COLON);
+
+               StringBuffer strDetailView = new StringBuffer();
+               strDetailView.append(heightFormAttachment);
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_ADDRESS + detailAddress
+                               + heightFormAttachment);
+
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_RECV_SIZE + recvSize
+                               + heightFormAttachment);
+
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_SEND_SIZE + sendSize
+                               + heightFormAttachment);
+
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_TOTAL_USE_TIME
+                               + Formatter.toTimeFormat(usedTime) + heightFormAttachment);
+
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_API_COUNT + apiCount
+                               + heightFormAttachment);
+
+               strDetailView.append(leftFormAttachment
+                               + NetworkPageLabels.NETWORK_DETAILS_FAILED_API_COUNT
+                               + failedAPICount + heightFormAttachment);
+
+               if (!sendAckTime.equals(CommonConstants.EMPTY)) {
+                       strDetailView.append(leftFormAttachment
+                                       + NetworkPageLabels.NETWORK_DETAILS_SEND_ACK_TIME
+                                       + sendAckTime + NetworkPageLabels.TIME_MS
+                                       + heightFormAttachment);
+               }
+
+               if (!payload.equals(CommonConstants.EMPTY)) {
+                       detailText.getVerticalBar().setVisible(true);
+                       detailText.getHorizontalBar().setVisible(true);
+                       strDetailView.append(setPacketMessage(payload));
+               } else {
+                       detailText.getVerticalBar().setVisible(true);
+                       detailText.getHorizontalBar().setVisible(true);
+               }
+
+               detailText.setText(strDetailView.toString());
+
+       }
+
+       public String setPacketMessage(String packetMessage) {
+               StringBuffer out = new StringBuffer();
+               StringBuffer strHex = new StringBuffer();
+               StringBuffer strAscii = new StringBuffer();
+               int index = 0;
+               long hexAddress = 0;
+               for (int nIndex = 0; nIndex < packetMessage.length(); nIndex++) {
+
+                       strAscii.append(packetMessage.charAt(nIndex));
+
+                       if (index % 8 == 0) {
+                               hexAddress++;
+                               String strHexCode = Long.toHexString((Long) hexAddress)
+                                               .toUpperCase();
+                               String strhexCodeFormat = CommonConstants.EMPTY;
+                               if (strHexCode.length() == 1) {
+                                       strhexCodeFormat += CommonConstants.ZERO
+                                                       + CommonConstants.ZERO + strHexCode
+                                                       + CommonConstants.ZERO;
+                               } else if (strHexCode.length() == 2) {
+                                       strhexCodeFormat += CommonConstants.ZERO + strHexCode
+                                                       + CommonConstants.ZERO;
+                               } else if (strHexCode.length() == 3) {
+                                       strhexCodeFormat += strHexCode + CommonConstants.ZERO;
+                               }
+                               strHex.append(CommonConstants.NEW_LINE)
+                                               .append(strhexCodeFormat).append(CommonConstants.TAB);
+
+                       }
+                       strHex.append(String.format("%02X ",//$NON-NLS-1$
+                                       (int) packetMessage.charAt(nIndex)));
+
+                       index++;
+               }
+
+               out.append(CommonConstants.SPACE).append(CommonConstants.SPACE);
+               out.append(NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_ASCII)
+                               .append(CommonConstants.NEW_LINE)
+                               .append(CommonConstants.NEW_LINE);
+               out.append(strAscii.toString());
+
+               out.append(CommonConstants.NEW_LINE).append(CommonConstants.NEW_LINE);
+               out.append(CommonConstants.SPACE).append(CommonConstants.SPACE);
+
+               out.append(NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_HEXCODE).append(
+                               CommonConstants.NEW_LINE);
+               out.append(strHex.toString());
+               return out.toString();
+       }
+
+       @Override
+       public Control getControl() {
+               return contents;
+       }
+
+       @Override
+       public void clear() {
+               init();
+       }
+}
index b2560f2..1044d48 100644 (file)
@@ -34,16 +34,15 @@ import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
 import org.tizen.dynamicanalyzer.shortcut.ShortCutManager;
 import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry;
-import org.tizen.dynamicanalyzer.ui.network.NetworkApiListView;
-import org.tizen.dynamicanalyzer.ui.network.NetworkDetailInfoView;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
 import org.tizen.dynamicanalyzer.ui.page.ScreenshotTabComposite;
 import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite;
 
 public class NetworkPage extends DAPageComposite {
        public static final String pageID = NetworkPage.class.getName();
        public static final String chartViewID = NetworkChartView.class.getName();
-       public static final String listViewID = NetworkApiListView.class.getName();
-       public static final String detailViewID = NetworkDetailInfoView.class
+       public static final String listViewID = NetworkTableView.class.getName();
+       public static final String detailViewID = NetworkDetailView.class
                        .getName();
 
        SashForm baseForm;
@@ -64,7 +63,7 @@ public class NetworkPage extends DAPageComposite {
                NetworkChartView networkChartView = new NetworkChartView(leftForm,
                                SWT.NONE);
                addView(networkChartView);
-               NetworkApiListView networkApiListView = new NetworkApiListView(
+               NetworkTableView networkApiListView = new NetworkTableView(
                                leftForm, SWT.NONE);
                addView(networkApiListView);
 
@@ -79,7 +78,7 @@ public class NetworkPage extends DAPageComposite {
                                new String[] { NetworkPage.listViewID });
                addView(tabView);
 
-               NetworkDetailInfoView detailInfo = new NetworkDetailInfoView(rightForm,
+               NetworkDetailView detailInfo = new NetworkDetailView(rightForm,
                                SWT.NONE);
                addView(detailInfo);
 
@@ -90,7 +89,8 @@ public class NetworkPage extends DAPageComposite {
                leftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
                rightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
                
-               DataManagerRegistry.registerPageDataManager(NetworkChartManager.getInstance());
+               DataManagerRegistry.registerPageDataManager(NetworkDataManager.getInstance());
+               
        }
 
        @Override
@@ -41,19 +41,18 @@ import org.tizen.dynamicanalyzer.constant.CommonConstants;
 import org.tizen.dynamicanalyzer.error.ErrorCodeManager;
 import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
 import org.tizen.dynamicanalyzer.model.TableInput;
+import org.tizen.dynamicanalyzer.swap.channel.data.ApiNameManager;
 import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
 import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
 import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
 import org.tizen.dynamicanalyzer.ui.widgets.table.DAApiListTableComposite;
 import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
 import org.tizen.dynamicanalyzer.utils.Formatter;
 
-public class NetworkApiListTable extends DAApiListTableComposite {
-       private final int tableTimeColumn = 1;
-       private final int tableElapsedTimeColumn = 2;
-       private final int tableApiNameColumn = 5;
-
-       public NetworkApiListTable(Composite parent, int compStyle, int tableStyle) {
+public class NetworkTable extends DAApiListTableComposite {
+       public NetworkTable(Composite parent, int compStyle, int tableStyle) {
                super(parent, compStyle, tableStyle);
                table.addSelectionListener(new SelectionListener() {
 
@@ -82,105 +81,37 @@ public class NetworkApiListTable extends DAApiListTableComposite {
                                                endTime = itemTime;
                                        }
                                }
-
                                DASelectionData selData = new DASelectionData(
-                                               NetworkPage.listViewID, startTime, endTime, items,
-                                               table);
+                                               NetworkTableView.ID, startTime, endTime, items, table);
                                AnalyzerManager.getCurrentPage().updateView(selData);
-
-                               DATableDataFormat dataFormats = (DATableDataFormat) items[0]
-                                               .getData();
-                               NetworkData networkData = (NetworkData) dataFormats
-                                               .getLogData();
-
-                               NetworkChartManager.getInstance().setPacketMessage(
-                                               networkData.getPacketMessage());
-
-                               int sendAckTime = getSendAckTime();
-                               if (sendAckTime != -1) {
-                                       String timeFormat = Formatter
-                                                       .toTimeFormat((long) sendAckTime);
-                                       NetworkChartManager.getInstance()
-                                                       .setSendAckTime(timeFormat);
-                               } else {
-                                       NetworkChartManager.getInstance().setSendAckTime(
-                                                       CommonConstants.EMPTY);
-                               }
-
-                               AnalyzerManager.getCurrentPage().updateView();
                        }
 
                        @Override
                        public void widgetDefaultSelected(SelectionEvent e) {
+                               // TODO Auto-generated method stub
                        }
                });
        }
 
-       private int getSendAckTime() {
-               int sendAckTime = -1;
-               int selectedIndex = table.getSelectionIndex();
-               String apiName = table.getItem(selectedIndex).getText(
-                               tableApiNameColumn);
-               if (apiName.contains("send") || apiName.contains("Submit")) {//$NON-NLS-1$
-                       String strSendTime = table.getItem(selectedIndex).getText(
-                                       tableTimeColumn);
-                       String strRecvTime = CommonConstants.EMPTY;
-                       String strElapsedTime = CommonConstants.EMPTY;
-                       for (int i = selectedIndex; i < table.getItemCount(); i++) {
-                               apiName = table.getItem(i).getText(tableApiNameColumn);
-                               if (apiName.contains("recv") || apiName.contains("GetResponse")) {//$NON-NLS-1$
-                                       strRecvTime = table.getItem(i).getText(tableTimeColumn);
-                                       strElapsedTime = table.getItem(i).getText(
-                                                       tableElapsedTimeColumn);
-                                       break;
-                               }
-                       }
-                       int sendTime = getIntegerTime(strSendTime);
-                       int recvTime = getIntegerTime(strRecvTime);
-                       int elapsedTime = getIntegerElaspsedTime(strElapsedTime);
-                       sendAckTime = (recvTime + elapsedTime) - sendTime;
-                       return sendAckTime * 1000;
-               }
-               return -1;
-
-       }
-
-       private int getIntegerTime(String strTime) {
-               String time = strTime.replace(CommonConstants.COLON,
-                               CommonConstants.EMPTY);
-               time = time.replace(CommonConstants.DOT, CommonConstants.EMPTY);
-               int intTime = Integer.parseInt(time);
-               return intTime;
-       }
-
-       private int getIntegerElaspsedTime(String strTime) {
-               String time = strTime.replace(CommonConstants.DOT,
-                               CommonConstants.EMPTY);
-               int intTime = Integer.parseInt(time);
-               return intTime;
-       }
-
        @Override
        protected List<TableInput> makeTableInput() {
-               NetworkApiListView view = (NetworkApiListView) AnalyzerManager
-                               .getCurrentPage().getView(NetworkPage.listViewID);
 
-               NetworkChartData data = view.getPageData();
-               if (null == data) {
-                       return null;
-               }
+               NetworkTableView view = (NetworkTableView) AnalyzerManager
+                               .getCurrentPage().getView(NetworkTableView.ID);
 
                long rangeStartTime = view.getRangeStartTime();
                long rangeEndTime = view.getRangeEndTime();
 
                List<TableInput> input = new ArrayList<TableInput>();
-               List<NetworkChartDataEvent> contents = data.getContents();
-               NetworkChartDataEvent content;
+               List<NetworkAPIType> contentList = NetworkDataManager.getInstance()
+                               .getSelectedTableAPIList();
+               if (null == contentList) {
+                       return null;
+               }
                HashMap<String, Integer> findStartAPITableIndexHashMap = new HashMap<String, Integer>();
                List<Integer> removeTableIndex = new ArrayList<Integer>();
-               for (int i = 0; i < contents.size(); i++) {
-                       content = contents.get(i);
-                       NetworkData contentTemp = content.getContents();
+               for (int i = 0; i < contentList.size(); i++) {
+                       NetworkAPIType contentTemp = contentList.get(i);
                        int selectedPid = ToolbarArea.getInstance().getSelectedPid();
                        if (selectedPid != 0) {
                                if (selectedPid != contentTemp.getPid()) {
@@ -209,14 +140,16 @@ public class NetworkApiListTable extends DAApiListTableComposite {
                                                        .equals(Integer
                                                                        .toString(LogCenterConstants.SOCKET_API_EVENT_START))) {
 
-                               String keString = contentTemp.getApiName()
-                                               + contentTemp.getPid() + contentTemp.getTid();
+                               String keString = ApiNameManager.getApiName(contentTemp
+                                               .getApiNameID())
+                                               + contentTemp.getPid()
+                                               + contentTemp.getTid();
                                findStartAPITableIndexHashMap.put(keString, i);
 
                                contentText.add(Formatter.toTimeFormat(contentTemp.getTime())); // start//
-                               contentData.add(Long.toString(contentTemp.getTime()));
+                               contentData.add(Formatter.toTimeFormat(contentTemp.getTime()));
                                contentText.add("00.000");//$NON-NLS-1$
-                               contentData.add("00.000");//$NON-NLS-1$                                 
+                               contentData.add("0");//$NON-NLS-1$                              
 
                        } else if (fdApiType.equals(Integer
                                        .toString(LogCenterConstants.SOCKET_API_RECV_END))
@@ -227,8 +160,10 @@ public class NetworkApiListTable extends DAApiListTableComposite {
                                                                        .toString(LogCenterConstants.SOCKET_API_ACCEPT_END))
                                        || fdApiType.equals(Integer
                                                        .toString(LogCenterConstants.SOCKET_API_EVENT_END))) {
-                               String keString = contentTemp.getApiName()
-                                               + contentTemp.getPid() + contentTemp.getTid();
+                               String keString = ApiNameManager.getApiName(contentTemp
+                                               .getApiNameID())
+                                               + contentTemp.getPid()
+                                               + contentTemp.getTid();
                                startLogIndex = findStartAPITableIndexHashMap.get(keString);
                                if (null != startLogIndex) {
                                        contentText.add(input.get(startLogIndex.intValue())
@@ -236,8 +171,8 @@ public class NetworkApiListTable extends DAApiListTableComposite {
                                        contentData.add(input.get(startLogIndex.intValue())
                                                        .getText().get(1));
 
-                                       long startTime = contents.get(startLogIndex.intValue())
-                                                       .getContents().getTime();
+                                       long startTime = contentList.get(startLogIndex.intValue())
+                                                       .getTime();
                                        String timeFormat = Formatter.toTimeFormat(contentTemp
                                                        .getTime() - startTime);
                                        String removeTimeFormat = timeFormat.replace(
@@ -252,14 +187,14 @@ public class NetworkApiListTable extends DAApiListTableComposite {
                                                        .getTime())); // start//
                                        contentData.add(Long.toString(contentTemp.getTime()));
                                        contentText.add("00.000");//$NON-NLS-1$
-                                       contentData.add("00.000");//$NON-NLS-1$
+                                       contentData.add("0");//$NON-NLS-1$
                                }
                        } else {
                                contentText.add(Formatter.toTimeFormat(contentTemp.getTime())); // start//
                                                                                                                                                                // time
                                contentData.add(Long.toString(contentTemp.getTime()));
                                contentText.add("00.000");//$NON-NLS-1$                                                 //elapsed time
-                               contentData.add("00.000");//$NON-NLS-1$                                 
+                               contentData.add("0");//$NON-NLS-1$                              
                        }
 
                        contentText.add(Integer.toString(contentTemp.getPid()));
@@ -280,7 +215,6 @@ public class NetworkApiListTable extends DAApiListTableComposite {
                        int apiType = contentTemp.getFdApiType();
                        if (apiType == LogCenterConstants.SOCKET_API_SEND_END
                                        || apiType == LogCenterConstants.SOCKET_API_RECV_END
-                                       || apiType == LogCenterConstants.SOCKET_API_ACCEPT_END
                                        || apiType == LogCenterConstants.HTTP_API_REQUEST
                                        || apiType == LogCenterConstants.HTTP_API_RESPONSE) {
                                contentText.add(Integer.toString(contentTemp
@@ -292,8 +226,15 @@ public class NetworkApiListTable extends DAApiListTableComposite {
                                contentData.add(CommonConstants.EMPTY);
                        }
 
-                       contentText.add(contentTemp.getPacketMessage());
-                       contentData.add(contentTemp.getPacketMessage());
+                       StringBuffer payloadInfo = new StringBuffer(
+                                       contentTemp.getPacketMessage());
+                       if (payloadInfo.length() > 20) {
+                               payloadInfo.replace(10, payloadInfo.length(),
+                                               CommonConstants.EMPTY);
+                               payloadInfo.insert(payloadInfo.length(), "...");//$NON-NLS-1$
+                       }
+                       contentText.add(payloadInfo.toString());
+                       contentData.add(payloadInfo.toString());
 
                        String errMsg = ErrorCodeManager.getInatance().getErrorCode(
                                        Long.toString(contentTemp.getErrno()));
@@ -336,6 +277,7 @@ public class NetworkApiListTable extends DAApiListTableComposite {
        }
 
        protected void actionSetStartEnd(int type) {
+
                GridItem item = table.getItem(mousePoint);
                if (null != item) {
                        NetworkData data = (NetworkData) ((DATableDataFormat) item
 
 package org.tizen.dynamicanalyzer.ui.network;
 
-import org.eclipse.nebula.widgets.grid.Grid;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
 import org.tizen.dynamicanalyzer.common.DASelectionData;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
 import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
 import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.swap.model.data.LogData;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSelectionType;
 import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
 import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
 import org.tizen.dynamicanalyzer.ui.widgets.table.TableColumnSizePackListener;
 import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
 import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
 
-public class NetworkApiListView extends DAViewComposite {
-       private NetworkChartData data;
-       private long analysisStartTime = 0;
-       private long analysisEndTime = 0;
-       private long selectionStartTime = 0;
-       private long selectionEndTime = 0;
+public class NetworkTableView extends DAViewComposite {
+
+       public static final String ID = NetworkTableView.class.getName();
+       private long preAnalysisStartTime = 0;
+       private long preAnalysisEndTime = 0;
+       private boolean isChangedSelected = true;
        private int preSelectionPId = 1;
 
        private String[] columnNames = {
@@ -73,8 +71,9 @@ public class NetworkApiListView extends DAViewComposite {
                        SWT.RIGHT, SWT.LEFT };
 
        int[] sortTypes = { AnalyzerConstants.SORT_TYPE_NUM,
+                       AnalyzerConstants.SORT_TYPE_STRING,
                        AnalyzerConstants.SORT_TYPE_NUM, AnalyzerConstants.SORT_TYPE_NUM,
-                       AnalyzerConstants.SORT_TYPE_NUM, AnalyzerConstants.SORT_TYPE_NUM,
+                       AnalyzerConstants.SORT_TYPE_NUM,
                        AnalyzerConstants.SORT_TYPE_STRING,
                        AnalyzerConstants.SORT_TYPE_STRING,
                        AnalyzerConstants.SORT_TYPE_STRING,
@@ -82,9 +81,9 @@ public class NetworkApiListView extends DAViewComposite {
                        AnalyzerConstants.SORT_TYPE_STRING,
                        AnalyzerConstants.SORT_TYPE_STRING };
 
-       NetworkApiListTable tableComp = null;
+       NetworkTable tableComp = null;
 
-       public NetworkApiListView(Composite parent, int style) {
+       public NetworkTableView(Composite parent, int style) {
                super(parent, style, true);
                this.setLayout(new FillLayout());
 
@@ -93,8 +92,8 @@ public class NetworkApiListView extends DAViewComposite {
                Composite contents = getContentArea();
                contents.setBackground(ColorResources.WINDOW_BG_COLOR);
                contents.setLayout(new FillLayout());
-               tableComp = new NetworkApiListTable(contents, SWT.NONE, SWT.MULTI
-                               | SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
+               tableComp = new NetworkTable(contents, SWT.NONE, SWT.MULTI | SWT.BORDER
+                               | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
                tableComp.setSortTypes(sortTypes);
                tableComp.setColumnAlignment(columnAlignment);
                tableComp.setColumns(columnNames);
@@ -106,13 +105,27 @@ public class NetworkApiListView extends DAViewComposite {
 
        @Override
        public void updateView() {
-               if (null == data) {
+               if (null == tableComp) {
                        return;
                }
 
+               if (isUpdateTable()) {
+                       tableComp.updateTable();
+               }
+       }
+
+       private boolean isUpdateTable() {
+               boolean isUpdate = false;
+               // Change PID
+               int selectedPid = ToolbarArea.getInstance().getSelectedPid();
+               if (preSelectionPId != -1 && preSelectionPId != selectedPid) {
+                       isUpdate = true;
+               }
+               preSelectionPId = selectedPid;
+
+               // Change Analyzer
                long newAnalysisStartTime = 0;
                long newAnalysisEndTime = 0;
-
                if (RangeDataManager.getInstance().isBeingAnalyzed()) {
                        newAnalysisStartTime = RangeDataManager.getInstance()
                                        .getAnalysisStartTime();
@@ -122,90 +135,47 @@ public class NetworkApiListView extends DAViewComposite {
                        newAnalysisStartTime = 0;
                        newAnalysisEndTime = 0;
                }
-
-               if (newAnalysisStartTime != analysisStartTime
-                               || newAnalysisEndTime != analysisEndTime) {
-                       analysisStartTime = newAnalysisStartTime;
-                       analysisEndTime = newAnalysisEndTime;
-                       tableComp.updateTable();
-                       return;
-               }
-
-               int selectedPid = ToolbarArea.getInstance().getSelectedPid();
-               if (preSelectionPId != -1 && preSelectionPId != selectedPid) {
-                       tableComp.updateTable();
+               if (newAnalysisStartTime != preAnalysisStartTime
+                               || newAnalysisEndTime != preAnalysisEndTime) {
+                       preAnalysisStartTime = newAnalysisStartTime;
+                       preAnalysisEndTime = newAnalysisEndTime;
+                       isUpdate = true;
                }
-               preSelectionPId = selectedPid;
-
-               if (tableComp.getTable().getItemCount() > 0
-                               && data.getContents().size() != tableComp.getTable()
-                                               .getItemCount()) {
-                       tableComp.updateTable();
+               // Change Selection
+               if (isChangedSelected) {
+                       isChangedSelected = false;
+                       isUpdate = true;
                }
-
+               return isUpdate;
        }
 
        @Override
        public void updateView(DAViewData data) {
                if (data instanceof DASelectionData) {
                        DASelectionData selData = (DASelectionData) data;
-
-                       if (selData.isLogData()) {
-                               Object odata = selData.getData();
-                               if (odata != null && (odata instanceof LogData)) {
-                                       LogData ldata = (LogData) odata;
-                                       int seq = ldata.getSeq();
-                                       tableComp.updateTable();
-                                       int nSize = tableComp.getTable().getItemCount();
-                                       for (int ii = 0; ii < nSize; ii++) {
-                                               if (tableComp.getTable().getItem(ii).getText(0)
-                                                               .equals(Integer.toString(seq))) {
-                                                       tableComp.getTable().setSelection(ii);
-                                                       tableComp
-                                                                       .getTable()
-                                                                       .getVerticalBar()
-                                                                       .setSelection(
-                                                                                       getScrollSelectionIndex(
-                                                                                                       tableComp.getTable(), ii));
-                                                       tableComp.updateTable();
-                                               }
-                                       }
-                                       long selectedTime = ldata.getTime();
-                                       DASelectionData sdata = new DASelectionData(
-                                                       NetworkPage.listViewID, selectedTime, selectedTime,
-                                                       tableComp.getTable().getSelection(),
-                                                       tableComp.getTable());
-                                       AnalyzerManager.getCurrentPage().updateView(sdata);
-                               }
-                       } else {
-                               NetworkChartManager.getInstance().setPacketMessage(
-                                               CommonConstants.EMPTY);
-                               NetworkChartManager.getInstance().setSendAckTime(
-                                               CommonConstants.EMPTY);
-                               NetworkChartData pageData = (NetworkChartData) selData
+                       long selectionStartTime = selData.getStartTime();
+                       long selectionEndTime = selData.getEndTime();
+                       if (selData.getData() instanceof NetworkSelectionType) {
+                               NetworkSelectionType netSelection = (NetworkSelectionType) selData
                                                .getData();
-
-                               if (!(pageData instanceof NetworkChartData)) {
-                                       selectionStartTime = selData.getStartTime();
-                                       selectionEndTime = selData.getEndTime();
-                               } else {
-                                       this.data = pageData;
+                               if (null == netSelection) {
+                                       return;
                                }
-                               tableComp.getTable().removeAll();
+                               NetworkDataManager.getInstance().setSelectedTableAPIList(
+                                               NetworkDataManager
+                                                               .getInstance()
+                                                               .getAPIDBManger()
+                                                               .selectAPITable(netSelection.getAddress(),
+                                                                               netSelection.getFd(),
+                                                                               netSelection.isParentChart()));
                                tableComp.updateTable();
                                tableComp.setSelectionByTime(selectionStartTime,
                                                selectionEndTime);
+                               isChangedSelected = true;
                        }
                }
        }
 
-       private int getScrollSelectionIndex(Grid table, int selection) {
-               int size = table.getVerticalBar().getThumb() / 2;
-               int output = selection - size;
-               output = (output < 0) ? 0 : output;
-               return output;
-       }
-
        @Override
        public Control getControl() {
                return tableComp;
@@ -214,18 +184,13 @@ public class NetworkApiListView extends DAViewComposite {
        @Override
        public void clear() {
                tableComp.getTable().removeAll();
-               data = null;
-       }
-
-       public NetworkChartData getPageData() {
-               return data;
        }
 
        public long getRangeStartTime() {
-               return analysisStartTime;
+               return preAnalysisStartTime;
        }
 
        public long getRangeEndTime() {
-               return analysisEndTime;
+               return preAnalysisEndTime;
        }
 }
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTrafficChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTrafficChart.java
deleted file mode 100644 (file)
index 255fa5d..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- *  Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: 
- * Sanghyun Lee <sanghyunnim.lee@samsung.com>
- * Juyoung Kim <j0.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * 
- * Contributors:
- * - S-Core Co., Ltd
- * 
- */
-
-package org.tizen.dynamicanalyzer.ui.network;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.swt.graphics.Image;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.resources.ImageResources;
-import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
-import org.tizen.dynamicanalyzer.util.DALogger;
-import org.tizen.dynamicanalyzer.utils.Formatter;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
-
-public class NetworkTrafficChart {
-       private static final DALogger DA_LOG = DALogger.getInstance();
-
-       private static class FDCountData {
-               private int type;
-               private String time;
-               private long data;
-
-               private FDCountData(int type, String time, long data) {
-                       this.type = type;
-                       this.time = time;
-                       this.data = data;
-               }
-       }
-
-       protected DAChart chart;
-       protected int chartStyle = DAChart.CHART_STYLE_NORMAL;
-       protected String chartName;
-       protected Image chartIcon = ImageResources.CHART_NETWORK;
-       private static NetworkTrafficChart instance = null;
-
-       private Map<String, Integer> recvTimeIndexMap = new HashMap<String, Integer>();
-       private Map<String, Integer> sendTimeIndexMap = new HashMap<String, Integer>();
-       private List<FDCountData> trafficDataList = new ArrayList<FDCountData>();
-
-       private DAChartSeries recvSeries;
-       private DAChartSeries sendSeries;
-
-       static final int TYPE_FDCOUNT = 0;
-       static final int TYPE_RECV = 1;
-       static final int TYPE_SEND = 2;
-
-       private double maxTraffic = 0;
-
-       public static NetworkTrafficChart getInstance() {
-               if (instance == null) {
-                       instance = new NetworkTrafficChart();
-               }
-
-               return instance;
-       }
-
-       public void clear() {
-
-               maxTraffic = 0;
-               recvTimeIndexMap.clear();
-               sendTimeIndexMap.clear();
-               trafficDataList.clear();
-
-               chartName = NetworkPageLabels.NETWORK_CHART_TRAFFIC_TITLE;
-               recvSeries = new DAChartSeries(
-                               NetworkPageLabels.NETWORK_CHART_TRAFFIC_RECV,
-                               DAChartSeries.SERIES_STYLE_BAR,
-                               ColorResources.NETWORK_ACCESS_RECV);
-               recvSeries.setBarAlign(DAChartSeries.SERIES_BAR_ALIGN_CENTER);
-
-               sendSeries = new DAChartSeries(
-                               NetworkPageLabels.NETWORK_CHART_TRAFFIC_SEND,
-                               DAChartSeries.SERIES_STYLE_BAR,
-                               ColorResources.NETWORK_ACCESS_SEND);
-               sendSeries.setBarAlign(DAChartSeries.SERIES_BAR_ALIGN_CENTER);
-
-       }
-
-       private NetworkTrafficChart() {
-
-       }
-
-       public DAChartBoardItem createBoardItem(DAChartBoard board) {
-
-               DAChartBoardItem item = new DAChartBoardItem(board, chartName,
-                               chartIcon, chartStyle);
-               chart = item.getChart();
-
-               chart.addSeries(recvSeries);
-               chart.addSeries(sendSeries);
-
-               // chart.getPlot().setAutoHeightRange(AutoRangeType.MANUAL);
-               chart.getPlot().setSeriesHeightRange(true);
-
-               chart.getPlot().setAxisUnit(CommonConstants.EMPTY);
-               chart.getPlot().setSecondAxisUnit(CommonConstants.EMPTY);
-
-               chart.getPlot().setAxisUnitType(DAChartPlot.UnitType.BINARY);
-               chart.getPlot().setShowAxis(true);
-
-               recvSeries.setEndY(maxTraffic);
-               sendSeries.setEndY(maxTraffic);
-
-               return item;
-       }
-
-       private void sumTrafficDataList() {
-               if (trafficDataList.size() == 0) {
-                       return;
-               }
-               FDCountData recvData = new FDCountData(TYPE_RECV,
-                               CommonConstants.EMPTY, 0);
-               FDCountData sendData = new FDCountData(TYPE_SEND,
-                               CommonConstants.EMPTY, 0);
-               for (FDCountData trafficData : trafficDataList) {
-                       switch (trafficData.type) {
-                       case TYPE_RECV: {
-                               recvData.time = trafficData.time;
-                               recvData.data += trafficData.data;
-                               break;
-                       }
-                       case TYPE_SEND: {
-                               sendData.time = trafficData.time;
-                               sendData.data += trafficData.data;
-                               break;
-                       }
-                       default:
-                               DA_LOG.debug("wrong file api type");//$NON-NLS-1$
-                       }
-               }
-               trafficDataList.clear();
-               if (recvData.data != 0) {
-                       trafficDataList.add(recvData);
-               }
-               if (sendData.data != 0) {
-                       trafficDataList.add(sendData);
-               }
-       }
-
-       public void updateTrafficChart() {
-
-               sumTrafficDataList();
-
-               int size = trafficDataList.size();
-               if (size > 0) {
-                       for (int i = 0; i < size; i++) {
-                               FDCountData trafficData = trafficDataList.get(0);
-
-                               double doubleTime = Double.parseDouble(trafficData.time)
-                                               / TimelineConstants.MEGA_DOUBLE;
-                               switch (trafficData.type) {
-                               case TYPE_RECV: {
-                                       DAChartSeriesItem item = new DAChartSeriesItem(doubleTime,
-                                                       0, Formatter.toByteFormat(0));
-                                       double readSum = item.getY() + trafficData.data;
-                                       item.setY(readSum);
-                                       item.setTooltipText(Formatter.toByteFormat(readSum));
-                                       if (readSum > maxTraffic) {
-                                               maxTraffic = readSum;
-                                               recvSeries.setEndY(maxTraffic * 1.1);
-                                               sendSeries.setEndY(maxTraffic * 1.1);
-                                       }
-                                       recvSeries.addSeriesItem(item);
-                                       break;
-                               }
-                               case TYPE_SEND: {
-                                       DAChartSeriesItem item = new DAChartSeriesItem(doubleTime,
-                                                       0, Formatter.toByteFormat(0));
-                                       double writeSum = item.getY() + trafficData.data;
-                                       item.setY(writeSum);
-                                       item.setTooltipText(Formatter.toByteFormat(writeSum));
-                                       if (writeSum > maxTraffic) {
-                                               maxTraffic = writeSum;
-                                               recvSeries.setEndY(maxTraffic * 1.1);
-                                               sendSeries.setEndY(maxTraffic * 1.1);
-                                       }
-                                       sendSeries.addSeriesItem(item);
-                                       break;
-                               }
-                               default:
-                                       DA_LOG.debug("wrong file api type");//$NON-NLS-1$
-                               }
-                               trafficDataList.remove(0);
-                       }
-               }
-       }
-
-       public void setRecvSize(long size, String time) {
-               Integer dataInputIndex = recvTimeIndexMap.get(Formatter
-                               .toTimeFormat(time));
-               if (null == dataInputIndex) {
-                       trafficDataList.add(new FDCountData(TYPE_RECV, time, size));
-                       recvTimeIndexMap.put(Formatter.toTimeFormat(time),
-                                       trafficDataList.size() - 1);
-               } else {
-                       if (dataInputIndex < trafficDataList.size()) {
-                               trafficDataList.get(dataInputIndex).data += size;
-                       }
-               }
-       }
-
-       public void setSendSize(int size, String time) {
-               Integer dataInputIndex = sendTimeIndexMap.get(Formatter
-                               .toTimeFormat(time));
-               if (null == dataInputIndex) {
-                       trafficDataList.add(new FDCountData(TYPE_SEND, time, size));
-                       sendTimeIndexMap.put(Formatter.toTimeFormat(time),
-                                       trafficDataList.size() - 1);
-               } else {
-                       if (dataInputIndex < trafficDataList.size()) {
-                               trafficDataList.get(dataInputIndex).data += size;
-                       }
-
-               }
-       }
-}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkAPIDBManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkAPIDBManager.java
new file mode 100644 (file)
index 0000000..016fbb3
--- /dev/null
@@ -0,0 +1,126 @@
+package org.tizen.dynamicanalyzer.ui.network.data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.database.DBColumn;
+import org.tizen.dynamicanalyzer.database.DBConstants;
+import org.tizen.dynamicanalyzer.database.DBTable;
+import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
+import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
+
+public class NetworkAPIDBManager extends DBTable {
+       private static final String TABLENAME = NetworkPageLabels.NETWORK_API_DB_TABLENAME;
+
+       public static final String SEQ = DBConstants.COMMON_COLUMN_SEQ;
+       public static final String DESTINATION_ADDRESS = NetworkPageLabels.NETWORK_DB_DESTINATION_ADDRESS;
+       public static final String FD_VALUE = NetworkPageLabels.NETWORK_DB_FD_VALUE;
+       public static final String API_TIME = NetworkPageLabels.NETWORK_API_DB_API_TIME;
+       public static final String API_NAME_ID = NetworkPageLabels.NETWORK_DB_API_ID;
+       public static final String ERRNO = NetworkPageLabels.NETWORK_API_DB_ERRNO;
+       public static final String PID = DBConstants.COMMON_COLUMN_PID;
+       public static final String TID = DBConstants.COMMON_COLUMN_TID;
+       public static final String ARGUMENT = NetworkPageLabels.NETWORK_API_DB_ARGUMENT;
+       public static final String RETURN = NetworkPageLabels.NETWORK_API_DB_RETURN;
+       public static final String BYTE_SIZE = NetworkPageLabels.NETWORK_API_DB_BYTE_SIZE;
+       public static final String PAYLOAD = NetworkPageLabels.NETWORK_API_DB_PAYLOAD;
+       public static final String API_TYPE = NetworkPageLabels.NETWORK_API_DB_API_TYPE;
+       public static final String CALLER_PC_ADDRESS = NetworkPageLabels.NETWORK_API_DB_CALLER_PC_ADDRESS;
+       public static final String LIB_NAME = NetworkPageLabels.NETWORK_API_DB_LIB_NAME;
+
+       private static final String SELECT_API_SERIES_QUERY = "select " + SEQ //$NON-NLS-1$
+                       + CommonConstants.COMMA + CommonConstants.SPACE
+                       + DESTINATION_ADDRESS + CommonConstants.COMMA
+                       + CommonConstants.SPACE + FD_VALUE + CommonConstants.COMMA
+                       + CommonConstants.SPACE + API_TIME + CommonConstants.COMMA
+                       + CommonConstants.SPACE + API_NAME_ID + CommonConstants.COMMA
+                       + CommonConstants.SPACE + ERRNO
+                       + " from " //$NON-NLS-1$
+                       + TABLENAME + " where %s <= " + API_TIME + " and " + API_TIME
+                       + " <= %s";//$NON-NLS-1$
+
+       private static final String SELECT_API_TABLE_CHILD_QUERY = "select * from "//$NON-NLS-1$
+                       + TABLENAME + " where " + DESTINATION_ADDRESS + " = '%s' and "//$NON-NLS-1$
+                       + FD_VALUE + " = '%s'";//$NON-NLS-1$
+
+       private static final String SELECT_API_TABLE_PARENT_QUERY = "select * from "//$NON-NLS-1$
+                       + TABLENAME + " where " + DESTINATION_ADDRESS + " = '%s'";//$NON-NLS-1$ //$NON-NLS-2$
+
+       @Override
+       public String getTableName() {
+               return TABLENAME;
+       }
+
+       public NetworkAPIDBManager() {
+               addColumn(new DBColumn(SEQ, DBConstants.PRIMARY_KEY,
+                               DBConstants.INTEGER));
+               addColumn(new DBColumn(DESTINATION_ADDRESS, DBConstants.NOT_NULL,
+                               DBConstants.BIG_TEXT));
+               addColumn(new DBColumn(FD_VALUE, DBConstants.NOT_NULL, DBConstants.TEXT));
+               addColumn(new DBColumn(API_TIME, DBConstants.NOT_NULL, DBConstants.LONG));
+               addColumn(new DBColumn(API_NAME_ID, DBConstants.NOT_NULL,
+                               DBConstants.INTEGER));
+               addColumn(new DBColumn(ERRNO, DBConstants.NOT_NULL, DBConstants.LONG));
+               addColumn(new DBColumn(PID, DBConstants.NOT_NULL, DBConstants.INTEGER));
+               addColumn(new DBColumn(TID, DBConstants.NOT_NULL, DBConstants.INTEGER));
+               addColumn(new DBColumn(ARGUMENT, DBConstants.NOT_NULL,
+                               DBConstants.BIG_TEXT));
+               addColumn(new DBColumn(RETURN, DBConstants.NOT_NULL,
+                               DBConstants.BIG_TEXT));
+               addColumn(new DBColumn(BYTE_SIZE, DBConstants.NOT_NULL,
+                               DBConstants.INTEGER));
+               addColumn(new DBColumn(PAYLOAD, DBConstants.NOT_NULL,
+                               DBConstants.BIG_TEXT));
+               addColumn(new DBColumn(API_TYPE, DBConstants.NOT_NULL,
+                               DBConstants.INTEGER));
+               addColumn(new DBColumn(CALLER_PC_ADDRESS, DBConstants.NOT_NULL,
+                               DBConstants.LONG));
+               addColumn(new DBColumn(LIB_NAME, DBConstants.NOT_NULL, DBConstants.TEXT));
+       }
+
+       public void insert(List<List<Object>> insetData) {
+               insertData(insetData);
+       }
+
+       public List<NetworkAPIType> selectAPISeries(double visibleStartTime,
+                       double visibleEndTime) {
+               double selectStartTime = visibleStartTime
+                               * TimelineConstants.MEGA_DOUBLE;
+               double selectEndTime = visibleEndTime * TimelineConstants.MEGA_DOUBLE;
+               String query = String.format(SELECT_API_SERIES_QUERY, selectStartTime,
+                               selectEndTime);
+               List<List<Object>> result = SqlConnectionManager.executeQuery(query);
+               if (null == result || result.size() == 0 || result.get(0).size() == 0) {
+                       return null;
+               }
+               List<NetworkAPIType> statusSeriesList = new ArrayList<NetworkAPIType>();
+               for (List<Object> data : result) {
+                       statusSeriesList.add(new NetworkAPIType(data));
+               }
+               return statusSeriesList;
+       }
+
+       public List<NetworkAPIType> selectAPITable(String address, String fd,
+                       boolean isParentChart) {
+               String query = String.format(SELECT_API_TABLE_CHILD_QUERY,
+                               address.trim(), fd.trim());
+               if (isParentChart) {
+                       query = String
+                                       .format(SELECT_API_TABLE_PARENT_QUERY, address.trim());
+               }
+
+               List<List<Object>> result = SqlConnectionManager.executeQuery(query);
+               if (null == result || result.size() == 0 || result.get(0).size() == 0) {
+                       return null;
+               }
+               List<NetworkAPIType> statusSeriesList = new ArrayList<NetworkAPIType>();
+               for (List<Object> data : result) {
+                       statusSeriesList.add(new NetworkAPIType(data));
+               }
+               return statusSeriesList;
+       }
+
+}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataMaker.java
new file mode 100644 (file)
index 0000000..a607de8
--- /dev/null
@@ -0,0 +1,401 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: 
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * Jooyoul Lee <jy.exe.lee@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+
+package org.tizen.dynamicanalyzer.ui.network.data;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.common.AnalyzerManager;
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
+import org.tizen.dynamicanalyzer.nl.ConfigureLabels;
+import org.tizen.dynamicanalyzer.swap.model.data.LogData;
+import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.summary.failed.FailedChecker;
+import org.tizen.dynamicanalyzer.ui.summary.failed.FailedData;
+import org.tizen.dynamicanalyzer.ui.summary.leaks.LeakDetector;
+import org.tizen.dynamicanalyzer.ui.summary.warning.WarningChecker;
+import org.tizen.dynamicanalyzer.ui.toolbar.configuration.ConfigurationDialogDataManager;
+import org.tizen.dynamicanalyzer.util.DALogger;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+
+public class NetworkDataMaker {
+
+       private HashMap<String, String> addressByFdHashMap = new HashMap<String, String>();
+       private HashMap<String, String> parentFDByFdHashMap = new HashMap<String, String>();
+
+       private FailedChecker failedChecker = null;
+
+       List<NetworkAPIType> noDestinationApiSeriesList = new ArrayList<NetworkAPIType>();
+       List<NetworkAPIType> destinationApiSeriesList = new ArrayList<NetworkAPIType>();
+
+       public NetworkDataMaker(FailedChecker failedChecker,
+                       LeakDetector leakDetector, WarningChecker warningChecker) {
+               this.failedChecker = failedChecker;
+       }
+
+       public void clear() {
+               addressByFdHashMap.clear();
+               parentFDByFdHashMap.clear();
+       }
+
+       public void makeData(List<LogData> inputs) {
+               if (!AnalyzerManager.isRunning()) {
+                       return;
+               }
+               int size = inputs.size();
+               for (int i = 0; i < size; i++) {
+                       NetworkData input = (NetworkData) inputs.get(i);
+
+                       if (ConfigurationDialogDataManager.getInstance().getfeatureValue(
+                                       ConfigureLabels.INCLUDE_INSIDE_CALL_NETWORK) == 0) {
+                               if (input.isInternal()) {
+                                       continue;
+                               }
+                       }
+
+                       makeEventData(input);
+
+                       long errno = input.getErrno();
+
+                       if (errno != 0) {
+                               FailedData ffd = new FailedData(input);
+                               this.failedChecker.getFailedList().add(ffd);
+                       }
+               }
+
+               if (destinationApiSeriesList.size() > 0) {
+                       List<List<Object>> insetApiSeriesData = new ArrayList<List<Object>>();
+                       List<NetworkAPIType> removeEventQueue = new ArrayList<NetworkAPIType>();
+                       for (NetworkAPIType data : destinationApiSeriesList) {
+                               insetApiSeriesData.add(data.getDBInsertData());
+                               removeEventQueue.add(data);
+                       }
+                       NetworkDataManager.getInstance().getAPIDBManger()
+                                       .insert(insetApiSeriesData);
+                       destinationApiSeriesList.removeAll(removeEventQueue);
+               }
+
+       }
+
+       private void makeEventData(NetworkData input) {
+
+               String apiName = input.getApiName();
+               String ipAddress = input.getdestinationIPAddress().trim();
+               String portAddress = input.getDestinationPortAddress().trim();
+
+               String apiAddress = CommonConstants.EMPTY;
+               if (!portAddress.equals(CommonConstants.ZERO)) {
+                       apiAddress = ipAddress + CommonConstants.NEW_LINE + portAddress;
+               }
+
+               String apiFD = Long.toString(input.getFdValue()).trim();
+               apiFD = getHexString(apiFD);
+               int apiId = input.getApiId();
+
+               int apiType = input.getFdApiType();
+               long time = input.getTime();
+               long errno = input.getErrno();
+               int seq = input.getSeq();
+               int pId = input.getPid();
+               int tId = input.getTid();
+               String parameter = input.getArgs();
+               String returnValue = input.getReturn();
+               int byteSize = input.getPacketMessageSize();
+               String payloadInfo = input.getPacketMessage();
+
+               String parentAddress = addressByFdHashMap.get(apiFD);
+               if (null != parentAddress) { // get Address by FD
+                       apiAddress = parentAddress;
+               }
+
+               if (filteringFileSocket(apiType, apiAddress)) {
+                       return;
+               }
+
+               switch (apiType) {
+               // Socket
+               case LogCenterConstants.SOCKET_API_FD_OPEN:
+                       break;
+               case LogCenterConstants.SOCKET_API_CONNECT: {
+                       String[] strInput = parameter.split(CommonConstants.COMMA);
+                       if (strInput.length <= 0) {
+                               return;
+                       }
+                       apiAddress = strInput[1].trim();
+                       addressByFdHashMap.put(apiFD, apiAddress);
+                       break;
+               }
+               case LogCenterConstants.SOCKET_API_ACCEPT_START:
+                       setStartSeries(apiAddress, apiFD, time, -1,
+                                       NetworkSeriesType.ACCESS_TYPE_WAIT, apiId);
+                       break;
+               case LogCenterConstants.SOCKET_API_ACCEPT_END: {
+                       String clientFD = returnValue;
+                       addressByFdHashMap.put(clientFD, parentAddress);
+                       setEndSeries(apiAddress, apiFD, time,
+                                       NetworkSeriesType.ACCESS_TYPE_WAIT);
+                       break;
+               }
+               case LogCenterConstants.SOCKET_API_FD_CLOSE: {
+                       if (errno == 0) {
+                               addressByFdHashMap.remove(apiFD);
+                               setEndSeries(apiAddress, apiFD, time,
+                                               NetworkSeriesType.STATUS_TYPE_OPEN);
+                       }
+                       break;
+               }
+               case LogCenterConstants.SOCKET_API_RECV_START:
+                       setStartSeries(apiAddress, apiFD, time, -1,
+                                       NetworkSeriesType.ACCESS_TYPE_READ, apiId);
+                       break;
+               case LogCenterConstants.SOCKET_API_RECV_END:
+                       setEndSeries(apiAddress, apiFD, time,
+                                       NetworkSeriesType.ACCESS_TYPE_READ);
+                       break;
+               case LogCenterConstants.SOCKET_API_SEND_START:
+                       setStartSeries(apiAddress, apiFD, time, -1,
+                                       NetworkSeriesType.ACCESS_TYPE_WRITE, apiId);
+                       break;
+               case LogCenterConstants.SOCKET_API_SEND_END:
+                       setEndSeries(apiAddress, apiFD, time,
+                                       NetworkSeriesType.ACCESS_TYPE_WRITE);
+                       break;
+               case LogCenterConstants.SOCKET_API_EVENT_START:
+                       setStartSeries(apiAddress, apiFD, time, -1,
+                                       NetworkSeriesType.ACCESS_TYPE_WAIT, apiId);
+                       break;
+               case LogCenterConstants.SOCKET_API_EVENT_END:
+                       setEndSeries(apiAddress, apiFD, time,
+                                       NetworkSeriesType.ACCESS_TYPE_WAIT);
+                       break;
+               case LogCenterConstants.SOCKET_API_BIND: {
+                       String[] strInput = parameter.split(CommonConstants.COMMA);
+                       if (strInput.length <= 0) {
+                               return;
+                       }
+                       apiAddress = strInput[1].trim();
+                       addressByFdHashMap.put(apiFD, apiAddress);
+                       break;
+               }
+               case LogCenterConstants.SOCKET_API_LISTEN:
+                       break;
+               case LogCenterConstants.SOCKET_API_OTHER: {
+                       if (apiName.contains("epoll_ctl")) { //$NON-NLS-1$
+                               String[] strInput = parameter.split(CommonConstants.COMMA);
+                               if (strInput.length <= 0) {
+                                       return;
+                               }
+                               String clientFD = strInput[0].trim();
+                               addressByFdHashMap.put(clientFD, parentAddress);
+                               apiFD = clientFD;
+                               addressByFdHashMap.put(apiFD, apiAddress);
+                       }
+                       break;
+               }
+               // HTTP
+               case LogCenterConstants.HTTP_API_SESSION_CONSTRUCT:
+                       String[] strInput = parameter.split(CommonConstants.COMMA);
+                       if (strInput.length <= 0) {
+                       }
+                       String clientAddress = strInput[2].trim();
+
+                       addressByFdHashMap.put(apiFD, clientAddress);
+                       parentFDByFdHashMap.put(apiFD, apiFD);
+                       break;
+               case LogCenterConstants.HTTP_API_TRANSACTION_OPEN: {
+                       String clientFD = returnValue;
+                       String parrentAddress = addressByFdHashMap.get(apiFD);
+                       if (null != parrentAddress) {
+                               apiAddress = parrentAddress.trim();
+                       }
+                       addressByFdHashMap.put(clientFD, apiAddress);
+                       apiFD = clientFD;
+                       break;
+               }
+               case LogCenterConstants.HTTP_API_TRANSACTION_CLOSE: {
+                       String clientFD = parameter;
+                       if (!clientFD.contains(CommonConstants.EMPTY)) {
+                               apiFD = clientFD;
+                       }
+                       break;
+               }
+               case LogCenterConstants.HTTP_API_ALLOCATION: {
+                       String clientFD = returnValue;
+                       String parretnFD = parentFDByFdHashMap.get(apiFD);
+                       if (null != parretnFD) {
+                               apiFD = parretnFD;
+                       }
+                       String parrentAddress = addressByFdHashMap.get(apiFD);
+                       if (null != parrentAddress) {
+                               apiAddress = parrentAddress;
+                       }
+
+                       addressByFdHashMap.put(clientFD, apiAddress);
+                       parentFDByFdHashMap.put(clientFD, apiFD);
+                       break;
+               }
+               case LogCenterConstants.HTTP_API_SUBMIT: {
+                       String parretnFD = parentFDByFdHashMap.get(apiFD);
+                       if (null != parretnFD) {
+                               apiFD = parretnFD;
+                       }
+                       String parrentAddress = addressByFdHashMap.get(apiFD);
+                       if (null != parrentAddress) {
+                               apiAddress = parrentAddress;
+                       }
+                       break;
+               }
+               case LogCenterConstants.HTTP_API_REQUEST: {
+                       String parretnFD = parentFDByFdHashMap.get(apiFD);
+                       if (null != parretnFD) {
+                               apiFD = parretnFD;
+                       }
+                       String parrentAddress = addressByFdHashMap.get(apiFD);
+                       if (null != parrentAddress) {
+                               apiAddress = parrentAddress;
+                       }
+                       break;
+               }
+               case LogCenterConstants.HTTP_API_RESPONSE: {
+                       String clientFD = returnValue;
+                       String parretnFD = parentFDByFdHashMap.get(apiFD);
+                       if (null != parretnFD) {
+                               apiFD = parretnFD;
+                       }
+                       String parrentAddress = addressByFdHashMap.get(apiFD);
+                       if (null != parrentAddress) {
+                               apiAddress = parrentAddress;
+                       }
+
+                       addressByFdHashMap.put(clientFD, apiAddress);
+                       parentFDByFdHashMap.put(clientFD, apiFD);
+                       break;
+               }
+               case LogCenterConstants.HTTP_API_OTHER: {
+                       String parretnFD = parentFDByFdHashMap.get(apiFD);
+                       if (null != parretnFD) {
+                               apiFD = parretnFD;
+                       }
+                       String parrentAddress = addressByFdHashMap.get(apiFD);
+                       if (null != parrentAddress) {
+                               apiAddress = parrentAddress;
+                       }
+                       break;
+               }
+               case LogCenterConstants.HTTP_API_CLOSE: {
+                       if (errno == 0) {
+                               addressByFdHashMap.remove(apiFD);
+                       }
+
+                       break;
+               }
+               default:
+                       DALogger.getInstance().error(
+                                       "makeEventData : no case NetworkChartDataEvent : "
+                                                       + apiType);
+                       return;
+               }
+
+               NetworkAPIType seriesType = new NetworkAPIType(seq, apiAddress, apiFD,
+                               time, apiId, errno, pId, tId, parameter, returnValue, byteSize,
+                               payloadInfo, apiType, input.getCallerPcAddr(),
+                               input.getLibName());
+
+               if (apiAddress.equals(CommonConstants.EMPTY)) {
+                       noDestinationApiSeriesList.add(seriesType);
+               } else {
+                       updateUnDestinationApiSeriesList(seriesType);
+                       destinationApiSeriesList.add(seriesType);
+                       if (null == NetworkDataManager.getInstance().getCheckStatusSeries()
+                                       .get(apiFD)) {
+                               NetworkDataManager.getInstance().getCheckStatusSeries()
+                                               .put(apiFD.trim(), apiAddress.trim());
+                               setStartSeries(apiAddress, apiFD, time, -1,
+                                               NetworkSeriesType.STATUS_TYPE_OPEN, apiId);
+                       }
+               }
+       }
+
+       private boolean filteringFileSocket(int apiType, String ipAddress) {
+               if (apiType >= LogCenterConstants.HTTP_API_SESSION_CONSTRUCT) {
+                       return false;
+               }
+               if (null == ipAddress) {
+                       return true;
+               }
+               String address = ipAddress.trim();
+               if (address.equals(CommonConstants.EMPTY)
+                               || address.startsWith(CommonConstants.SLASH)
+                               || address.startsWith(CommonConstants.HEX_PREFIX)) {
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+
+       private void setStartSeries(String apiAddress, String apiFD, long time,
+                       int eventType, int apiType, int apiId) {
+
+               NetworkSeriesType statusType = new NetworkSeriesType(apiAddress, apiFD,
+                               time, -1, apiType, apiId);
+               NetworkDataManager.getInstance().setStartSeriesData(statusType);
+       }
+
+       private void setEndSeries(String apiAddress, String apiFD, long time,
+                       int apiType) {
+               NetworkDataManager.getInstance().setEndSeriesData(apiAddress, apiFD,
+                               time, apiType);
+       }
+
+       private void updateUnDestinationApiSeriesList(NetworkAPIType seriesType) {
+               List<NetworkAPIType> removeEventQueue = new ArrayList<NetworkAPIType>();
+               for (NetworkAPIType event : noDestinationApiSeriesList) {
+                       if (event.getFdStr().equals(seriesType.getFdStr())) {
+                               event.setDestinationAddress(seriesType.getDestinationAddress());
+                               destinationApiSeriesList.add(event);
+                               removeEventQueue.add(event);
+                       }
+               }
+               noDestinationApiSeriesList.removeAll(removeEventQueue);
+       }
+
+       private String getHexString(String input) {
+               String retStr = null;
+               long lInput = Long.parseLong(input);
+               if (lInput < 0x10000000) {
+                       retStr = Long.toString(lInput);
+               } else {
+                       retStr = AnalyzerUtil.toHexdecimal(lInput);
+               }
+               return retStr;
+       }
+}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataManager.java
new file mode 100644 (file)
index 0000000..fcc8072
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: 
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * Jooyoul Lee <jy.exe.lee@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+
+package org.tizen.dynamicanalyzer.ui.network.data;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.tizen.dynamicanalyzer.common.AnalyzerManager;
+import org.tizen.dynamicanalyzer.common.path.PathManager;
+import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
+import org.tizen.dynamicanalyzer.resources.ImageResources;
+import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants;
+import org.tizen.dynamicanalyzer.swap.logparser.LogPackage;
+import org.tizen.dynamicanalyzer.swap.logparser.Logs;
+import org.tizen.dynamicanalyzer.swap.logparser.PageDataManager;
+import org.tizen.dynamicanalyzer.swap.model.data.LogData;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
+import org.tizen.dynamicanalyzer.util.DALogger;
+import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
+import org.tizen.dynamicanalyzer.widgets.da.base.DADialog;
+
+public class NetworkDataManager extends PageDataManager {
+       private static NetworkDataManager instance = null;
+
+       private NetworkDataMaker networkDataMaker = null;
+       private NetworkSeriesDBManager seriesDBManager = null;
+       private NetworkAPIDBManager apiDBManager = null;
+
+       private List<NetworkAPIType> selectedTableAPIList = null;
+       private LinkedHashMap<String, String> checkStatusSeries = new LinkedHashMap<String, String>();
+       private List<NetworkSeriesType> seriesList = new ArrayList<NetworkSeriesType>();
+
+       private int statusSeriesSize = 0;
+       private int accessSeriesSize = 0;
+       private boolean isStopTrace = false;
+
+       public NetworkDataManager() {
+               initDB();
+       }
+
+       public synchronized static NetworkDataManager getInstance() {
+               if (null == instance) {
+                       instance = new NetworkDataManager();
+               }
+               return instance;
+       }
+
+       /*** make network data thread ***/
+       @Override
+       public void run() {
+               while (!AnalyzerManager.isExit()) {
+                       LogPackage pack = pollPack();
+                       if (pack == null) // stop thread
+                               break;
+
+                       Logs logs = pack.getLogs(DataChannelConstants.MSG_PROBE_NETWORK);
+                       if (null != logs && logs.getRawLogs().size() != 0) {
+                               List<LogData> inputs = logs.getLogs();
+
+                               networkDataMaker.makeData(inputs);
+                       }
+               }
+
+               /* log for debug */
+               DALogger.getInstance().info(getName() + " thread end!!");
+       }
+
+       private void initDB() {
+               networkDataMaker = new NetworkDataMaker(
+                               AnalyzerManager.getFailedChecker(),
+                               AnalyzerManager.getLeakDetector(),
+                               AnalyzerManager.getWarningChecker());
+
+               apiDBManager = new NetworkAPIDBManager();
+               addDBTable(apiDBManager);
+               seriesDBManager = new NetworkSeriesDBManager();
+               addDBTable(seriesDBManager);
+       }
+
+       public void clear() {
+               instance = null;
+               seriesDBManager = null;
+               apiDBManager = null;
+               selectedTableAPIList = null;
+               seriesList = new ArrayList<NetworkSeriesType>();
+               checkStatusSeries = new LinkedHashMap<String, String>();
+               statusSeriesSize = 0;
+               accessSeriesSize = 0;
+               isStopTrace = false;
+       }
+
+       public LinkedHashMap<String, String> getCheckStatusSeries() {
+               return checkStatusSeries;
+       }
+
+       public NetworkAPIDBManager getAPIDBManger() {
+               return apiDBManager;
+       }
+
+       public void setStartSeriesData(NetworkSeriesType seriesType) {
+               if (seriesType.getAPIType() == NetworkSeriesType.STATUS_TYPE_OPEN) {
+                       statusSeriesSize++;
+               } else {
+                       accessSeriesSize++;
+               }
+               checkHeapMemory();
+               seriesList.add(seriesType);
+       }
+
+       public void setEndSeriesData(String address, String fd, long endTime,
+                       int apiType) {
+               for (int i = 0; i < seriesList.size(); i++) {
+                       NetworkSeriesType seriesType = seriesList.get(i);
+                       if (seriesType.getDestinationAddress().equals(address)
+                                       && seriesType.getFdValue().equals(fd)
+                                       && seriesType.getAPIType() == apiType
+                                       && seriesType.getEndTime() < 0) {
+                               seriesList.get(i).setEndTime(endTime);
+                               seriesDBManager.insert(seriesType);
+                               break;
+                       }
+               }
+       }
+
+       public void openProcess() {
+               setSeriesListFromDB();
+       }
+
+       public void stopProcess() {
+               insertNotEndTimeSeries();
+       }
+
+       private void insertNotEndTimeSeries() {
+               for (int i = 0; i < seriesList.size(); i++) {
+                       NetworkSeriesType seriesType = seriesList.get(i);
+                       if (seriesType.getEndTime() < 0) {
+                               seriesDBManager.insert(seriesType);
+                       }
+               }
+       }
+
+       private void setSeriesListFromDB() {
+               if (seriesList.size() == 0) {
+                       seriesList = seriesDBManager.select(0, 999999999);
+               }
+       }
+
+       public List<NetworkSeriesType> getSeriesList() {
+               return seriesList;
+       }
+
+       public void setSeriesList(List<NetworkSeriesType> seriesList) {
+               this.seriesList = seriesList;
+       }
+
+       public List<NetworkAPIType> getSelectedTableAPIList() {
+               return selectedTableAPIList;
+       }
+
+       public void setSelectedTableAPIList(
+                       List<NetworkAPIType> selectedTableAPIList) {
+               this.selectedTableAPIList = selectedTableAPIList;
+       }
+
+       private void checkHeapMemory() {
+               if (isStopTrace == false
+                               && (statusSeriesSize > 1000 || accessSeriesSize > 10000)) {
+                       isStopTrace = true;
+                       ToolbarArea.getInstance().stopTrace();
+                       Display.getDefault().asyncExec(new Runnable() {
+                               @Override
+                               public void run() {
+                                       final Shell shell = WorkbenchUtil.getWorkbenchWindow()
+                                                       .getShell();
+                                       DADialog dialog = new DADialog(shell, SWT.NONE, 550, 153);
+                                       dialog.setIcon(ImageResources.DIALOG_WARNING_ICON);
+                                       dialog.setMessage(AnalyzerLabels.HEAP_MEMORY_WARNING_PRE
+                                                       + PathManager.DA_INSTALL_PATH
+                                                       + AnalyzerLabels.HEAP_MEMORY_WARNING_POST);
+                                       dialog.open();
+                               }
+                       });
+               }
+       }
+
+}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkSeriesDBManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkSeriesDBManager.java
new file mode 100644 (file)
index 0000000..92afb0a
--- /dev/null
@@ -0,0 +1,75 @@
+package org.tizen.dynamicanalyzer.ui.network.data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.database.DBColumn;
+import org.tizen.dynamicanalyzer.database.DBConstants;
+import org.tizen.dynamicanalyzer.database.DBTable;
+import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
+import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
+
+public class NetworkSeriesDBManager extends DBTable {
+
+       private static final String TABLENAME = NetworkPageLabels.NETWORK_SERIES_DB_TABLENAME;
+       public static final String RID = NetworkPageLabels.NETWORK_DB_RID;
+       public static final String DESTINATION_ADDRESS = NetworkPageLabels.NETWORK_DB_DESTINATION_ADDRESS;
+       public static final String FD_VALUE = NetworkPageLabels.NETWORK_DB_FD_VALUE;
+       public static final String START_TIME = NetworkPageLabels.NETWORK_SERIES_DB_START_TIME;
+       public static final String END_TIME = NetworkPageLabels.NETWORK_SERIES_DB_END_TIME;
+       public static final String STATUS_TYPE = NetworkPageLabels.NETWORK_SERIES_DB_STATUS_TYPE;
+       public static final String API_ID = NetworkPageLabels.NETWORK_DB_API_ID;
+
+       private static final String SELECT_QUERY = "select * from " + TABLENAME; //$NON-NLS-1$
+
+       private static int rid = 0;
+
+       @Override
+       public String getTableName() {
+               return TABLENAME;
+       }
+
+       public NetworkSeriesDBManager() {
+               addColumn(new DBColumn(RID, DBConstants.PRIMARY_KEY,
+                               DBConstants.INTEGER));
+               addColumn(new DBColumn(DESTINATION_ADDRESS, DBConstants.NOT_NULL,
+                               DBConstants.TEXT));
+               addColumn(new DBColumn(FD_VALUE, DBConstants.NOT_NULL, DBConstants.TEXT));
+               addColumn(new DBColumn(START_TIME, DBConstants.NOT_NULL,
+                               DBConstants.LONG));
+               addColumn(new DBColumn(END_TIME, DBConstants.NOT_NULL, DBConstants.LONG));
+               addColumn(new DBColumn(STATUS_TYPE, DBConstants.NOT_NULL,
+                               DBConstants.INTEGER));
+               addColumn(new DBColumn(API_ID, DBConstants.NOT_NULL,
+                               DBConstants.INTEGER));
+               rid = 0;
+       }
+
+       public void insert(NetworkSeriesType insertData) {
+               List<List<Object>> insertDataList = new ArrayList<List<Object>>();
+               insertData.setRid(rid++);
+               insertDataList.add(insertData.getDBInsertData());
+               insertData(insertDataList);
+       }
+
+       public List<NetworkSeriesType> select(double visibleStartTime,
+                       double visibleEndTime) {
+               double selectStartTime = visibleStartTime
+                               * TimelineConstants.MEGA_DOUBLE;
+               double selectEndTime = visibleEndTime * TimelineConstants.MEGA_DOUBLE;
+               String query = String.format(SELECT_QUERY, selectStartTime,
+                               selectEndTime);
+               List<List<Object>> result = SqlConnectionManager.executeQuery(query);
+               if (null == result || result.size() == 0 || result.get(0).size() == 0) {
+                       return null;
+               }
+               List<NetworkSeriesType> statusSeriesList = new ArrayList<NetworkSeriesType>();
+               for (List<Object> data : result) {
+                       statusSeriesList.add(new NetworkSeriesType(data));
+               }
+               return statusSeriesList;
+       }
+
+}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/StatusSeriesListSortComparator.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/StatusSeriesListSortComparator.java
new file mode 100644 (file)
index 0000000..551997d
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: 
+ * Jooyoul Lee <jy.exe.lee@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+
+package org.tizen.dynamicanalyzer.ui.network.data;
+
+import java.io.Serializable;
+import java.util.Comparator;
+
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+
+public class StatusSeriesListSortComparator implements
+               Comparator<NetworkSeriesType>, Serializable {
+
+       private static final long serialVersionUID = 1L;
+
+       @Override
+       public int compare(NetworkSeriesType one, NetworkSeriesType two) {
+               long time1 = one.getStartTime();
+               long time2 = two.getStartTime();
+
+               if (time1 > time2) {
+                       return 1;
+               } else if (time1 < time2) {
+                       return -1;
+               }
+
+               return 0;
+       }
+
+}
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/type/NetworkAPIType.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/type/NetworkAPIType.java
new file mode 100644 (file)
index 0000000..f4c8cb0
--- /dev/null
@@ -0,0 +1,226 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com> 
+ * yeongtaik byeon <yeongtaik.byeon@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+
+package org.tizen.dynamicanalyzer.ui.network.data.type;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
+
+public class NetworkAPIType extends NetworkData {
+       private final int apiSeriesColumnSize = 6;
+       private int seq = -1;
+       private long time = -1;
+       private String destinationAddress = CommonConstants.EMPTY;
+       private String fdStr = CommonConstants.EMPTY;
+
+       public NetworkAPIType(int sequenceNumber, String destinationAddress,
+                       String fdValue, long apiTime, int apiNameID, long errno, int pID,
+                       int tID, String arg, String returnValue, int byteSize,
+                       String payLoad, int apiType, long callerAddress, String libName) {
+               setSeq(sequenceNumber);
+               setDestinationAddress(destinationAddress);
+               setFdStr(fdValue);
+               setTime(apiTime);
+               setApiNameID(apiNameID);
+               setErrno(errno);
+               setPid(pID);
+               setTid(tID);
+               setArgs(arg);
+               setReturn(returnValue);
+               setPacketMessageSize(byteSize);
+               setPacketMessage(payLoad);
+               setFdApiType(apiType);
+               setCallerAddress(callerAddress);
+               setLibName(libName);
+
+       }
+
+       public NetworkAPIType(List<Object> data) {
+               setSeq((Integer) data.get(0));
+               setDestinationAddress((String) data.get(1));
+               setFdStr((String) data.get(2));
+               setTime((Long) data.get(3));
+               setApiNameID((Integer) data.get(4));
+               setErrno((Long) data.get(5));
+               if (data.size() <= apiSeriesColumnSize) {
+                       return;
+               }
+               setPid((Integer) data.get(6));
+               setTid((Integer) data.get(7));
+               setArgs((String) data.get(8));
+               setReturn((String) data.get(9));
+               setPacketMessageSize((Integer) data.get(10));
+               setPacketMessage((String) data.get(11));
+               setFdApiType((Integer) data.get(12));
+               setCallerAddress((Long) data.get(13));
+               setLibName((String) data.get(14));
+       }
+
+       public int getSeq() {
+               return seq;
+       }
+
+       public void setSeq(int sequenceNumber) {
+               this.seq = sequenceNumber;
+       }
+
+       public String getDestinationAddress() {
+               return destinationAddress.trim();
+       }
+
+       public void setDestinationAddress(String destinationAddress) {
+               this.destinationAddress = destinationAddress;
+       }
+
+       public String getFdStr() {
+               return fdStr.trim();
+       }
+
+       public void setFdStr(String fdValue) {
+               this.fdStr = fdValue;
+       }
+
+       public long getTime() {
+               return Math.round(time);
+       }
+
+       public void setTime(long apiTime) {
+               this.time = apiTime;
+       }
+
+       public int getApiNameID() {
+               return apiId;
+       }
+
+       public void setApiNameID(int apiNameID) {
+               this.apiId = apiNameID;
+       }
+
+       public long getErrno() {
+               return errno;
+       }
+
+       public void setErrno(long errno) {
+               this.errno = errno;
+       }
+
+       public int getPid() {
+               return pid;
+       }
+
+       public void setPid(int pID) {
+               this.pid = pID;
+       }
+
+       public int getTid() {
+               return tid;
+       }
+
+       public void setTid(int tID) {
+               this.tid = tID;
+       }
+
+       public String getArgs() {
+               return args.trim();
+       }
+
+       public void setArgs(String argument) {
+               this.args = argument;
+       }
+
+       public String getReturn() {
+               return ret.trim();
+       }
+
+       public void setReturn(String returnValue) {
+               this.ret = returnValue;
+       }
+
+       public int getPacketMessageSize() {
+               return messageSize;
+       }
+
+       public void setPacketMessageSize(int byteSize) {
+               this.messageSize = byteSize;
+       }
+
+       public String getPacketMessage() {
+               return packetMessage;
+       }
+
+       public void setPacketMessage(String payload) {
+               this.packetMessage = payload;
+       }
+
+       public int getFdApiType() {
+               return fdApiType;
+       }
+
+       public void setFdApiType(int apiType) {
+               this.fdApiType = apiType;
+       }
+
+       public long getCallerPcAddr() {
+               return callerAddress;
+       }
+
+       public void setCallerAddress(long callerAddress) {
+               this.callerAddress = callerAddress;
+       }
+
+       public String getLibName() {
+               return libName;
+       }
+
+       public void setLibName(String libName) {
+               this.libName = libName;
+       }
+
+       public List<Object> getDBInsertData() {
+               List<Object> data = new ArrayList<Object>();
+               data.add(getSeq());
+               data.add(getDestinationAddress());
+               data.add(getFdStr());
+               data.add(getTime());
+               data.add(getApiNameID());
+               data.add(getErrno());
+               data.add(getPid());
+               data.add(getTid());
+               data.add(getArgs());
+               data.add(getReturn());
+               data.add(getPacketMessageSize());
+               data.add(getPacketMessage());
+               data.add(getFdApiType());
+               data.add(getCallerPcAddr());
+               data.add(getLibName());
+               return data;
+       }
+
+}
\ No newline at end of file
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/type/NetworkSelectionType.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/type/NetworkSelectionType.java
new file mode 100644 (file)
index 0000000..cb29ad6
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com> 
+ * yeongtaik byeon <yeongtaik.byeon@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+
+package org.tizen.dynamicanalyzer.ui.network.data.type;
+
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+
+public class NetworkSelectionType {
+       private String address = CommonConstants.EMPTY;
+       private String fd = CommonConstants.EMPTY;
+       private boolean isParentChart = false;
+
+       public NetworkSelectionType(String address, String fd, boolean isParentChart) {
+               setAddress(address);
+               setFd(fd);
+               setParentChart(isParentChart);
+       }
+
+       public String getAddress() {
+               return address;
+       }
+
+       public void setAddress(String address) {
+               this.address = address;
+       }
+
+       public String getFd() {
+               return fd;
+       }
+
+       public void setFd(String fd) {
+               this.fd = fd;
+       }
+
+       public boolean isParentChart() {
+               return isParentChart;
+       }
+
+       public void setParentChart(boolean isParentChart) {
+               this.isParentChart = isParentChart;
+       }
+}
\ No newline at end of file
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/type/NetworkSeriesType.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/type/NetworkSeriesType.java
new file mode 100644 (file)
index 0000000..20d44f4
--- /dev/null
@@ -0,0 +1,140 @@
+/*
+ *  Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com> 
+ * yeongtaik byeon <yeongtaik.byeon@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ * Contributors:
+ * - S-Core Co., Ltd
+ * 
+ */
+
+package org.tizen.dynamicanalyzer.ui.network.data.type;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+
+public class NetworkSeriesType {
+       public static final int HEAP_MEMORY = 128;
+       public static int STATUS_TYPE_OPEN = 0;
+       public static int ACCESS_TYPE_WAIT = 1;
+       public static int ACCESS_TYPE_READ = 2;
+       public static int ACCESS_TYPE_WRITE = 3;
+
+       private int rid = 0;
+       private String destinationAddress = CommonConstants.EMPTY;
+       private String fdValue = CommonConstants.EMPTY;
+       private long startTime = -1;
+       private long endTime = -1;
+
+       private int apiType = -1;
+       private int apiID = -1;
+
+       public NetworkSeriesType(String destinationAddress, String fdValue,
+                       long startTime, long endTime, int statusType, int apiId) {
+               setRid(0);
+               setDestinationAddress(destinationAddress);
+               setFdValue(fdValue);
+               setStartTime(startTime);
+               setEndTime(endTime);
+               setAPIType(statusType);
+               setApiID(apiId);
+       }
+
+       public NetworkSeriesType(List<Object> data) {
+               setRid((Integer) data.get(0));
+               setDestinationAddress((String) data.get(1));
+               setFdValue((String) data.get(2));
+               setStartTime((Long) data.get(3));
+               setEndTime((Long) data.get(4));
+               setAPIType((Integer) data.get(5));
+               setApiID((Integer) data.get(6));
+       }
+
+       public int getRid() {
+               return rid;
+       }
+
+       public void setRid(int apiID) {
+               this.rid = apiID;
+       }
+
+       public String getDestinationAddress() {
+               return destinationAddress.trim();
+       }
+
+       public void setDestinationAddress(String destinationAddress) {
+               this.destinationAddress = destinationAddress;
+       }
+
+       public String getFdValue() {
+               return fdValue.trim();
+       }
+
+       public void setFdValue(String fdValue) {
+               this.fdValue = fdValue;
+       }
+
+       public long getStartTime() {
+               return Math.round(startTime);
+       }
+
+       public void setStartTime(long startTime) {
+               this.startTime = startTime;
+       }
+
+       public long getEndTime() {
+               return Math.round(endTime);
+       }
+
+       public void setEndTime(long endTime) {
+               this.endTime = endTime;
+       }
+
+       public int getAPIType() {
+               return apiType;
+       }
+
+       public void setAPIType(int statusType) {
+               this.apiType = statusType;
+       }
+
+       public int getApiID() {
+               return apiID;
+       }
+
+       public void setApiID(int apiID) {
+               this.apiID = apiID;
+       }
+
+       public List<Object> getDBInsertData() {
+               List<Object> data = new ArrayList<Object>();
+               data.add(getRid());
+               data.add(getDestinationAddress());
+               data.add(getFdValue());
+               data.add(getStartTime());
+               data.add(getEndTime());
+               data.add(getAPIType());
+               data.add(getApiID());
+               return data;
+       }
+
+}
\ No newline at end of file
index 89994a9..8d7f1b9 100644 (file)
@@ -307,12 +307,10 @@ public class ConfigureManager {
                                        ConfigureLabels.SYSTEM_INFOMATION_SAMPLING_PERIODIC,
                                        Long.toString(AnalyzerConstants.SYSTEM_INFOMATION_SAMPLING_PERIODIC));
                }
-               if (null == data
-                               .get(ConfigureLabels.INTERNAL_LOG_LEVEL)) {
-                       data.put(
-                                       ConfigureLabels.INTERNAL_LOG_LEVEL, 
+               if (null == data.get(ConfigureLabels.INTERNAL_LOG_LEVEL)) {
+                       data.put(ConfigureLabels.INTERNAL_LOG_LEVEL,
                                        Long.toString(DALogger.DEBUG));
-               }
+               }
        }
 
        private void initConfigDataFromFile() {
@@ -355,7 +353,7 @@ public class ConfigureManager {
                setCheckDefaultConfigData();
                setConfigDataToFile();
                // set log level
-//             DA_LOG.setLogLevel(getValueInt(ConfigureLabels.INTERNAL_LOG_LEVEL));
+               // DA_LOG.setLogLevel(getValueInt(ConfigureLabels.INTERNAL_LOG_LEVEL));
        }
 
        private void setConfigDataToFile() {
@@ -409,6 +407,10 @@ public class ConfigureManager {
                try {
                        if (null == valueStr) {
                                ret = 0;
+                       } else if (valueStr.equals(CommonConstants.ON)) {
+                               ret = AnalyzerConstants.FEATURE_ON;
+                       } else if (valueStr.equals(CommonConstants.OFF)) {
+                               ret = AnalyzerConstants.FEATURE_OFF;
                        } else {
                                ret = Long.parseLong(valueStr);
                        }
index c74e741..102cd3e 100644 (file)
@@ -36,6 +36,7 @@ import org.tizen.dynamicanalyzer.logparser.LogParser;
 import org.tizen.dynamicanalyzer.project.Project;
 import org.tizen.dynamicanalyzer.sql.SqlManager;
 import org.tizen.dynamicanalyzer.swap.logparser.SWAPLogParser;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
 import org.tizen.dynamicanalyzer.ui.page.UpdateViewTimer;
 import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool;
 import org.tizen.dynamicanalyzer.util.DALogger;
@@ -126,13 +127,11 @@ public class StopLogProcessor implements Runnable {
                        SqlManager.getInstance().saveApiNames();
                        SqlManager.getInstance().closeConnection();
                        SqlConnectionManager.closeConnection();
-
+                       NetworkDataManager.getInstance().stopProcess();
                        DA_LOG.debug("insert to db complete..."); //$NON-NLS-1$
                        percent += 10;
                        StopProcessManager.getInstance().setValue(percent);
-                       
                        project.saveProjectInfoFile();
-                       
                }
 
                Display.getDefault().syncExec(new Runnable() {
index 9b43ffe..ebdff18 100644 (file)
@@ -55,7 +55,6 @@ import org.tizen.dynamicanalyzer.constant.CommonConstants;
 import org.tizen.dynamicanalyzer.listeners.TableTooltipListener;
 import org.tizen.dynamicanalyzer.model.FindProperty;
 import org.tizen.dynamicanalyzer.model.TableInput;
-import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
 import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;
 import org.tizen.dynamicanalyzer.resources.ColorResources;
 import org.tizen.dynamicanalyzer.resources.FontResources;
@@ -65,8 +64,8 @@ import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener;
 import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
 import org.tizen.dynamicanalyzer.ui.widgets.DAGrid;
 import org.tizen.dynamicanalyzer.ui.widgets.FindDialog;
-import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
 import org.tizen.dynamicanalyzer.util.DALogger;
+import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
 import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu;
 import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuItem;
 import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuListener;
index ce271c3..194d7d8 100644 (file)
@@ -37,7 +37,6 @@ import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.KeyListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
 import org.eclipse.swt.layout.FormLayout;
@@ -55,11 +54,8 @@ import org.tizen.dynamicanalyzer.ui.widgets.DAGrid;
 import org.tizen.dynamicanalyzer.ui.widgets.FindDialog;
 import org.tizen.dynamicanalyzer.util.CommonUtil;
 import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
-import org.tizen.dynamicanalyzer.util.DALogger;
 
 public abstract class DAWindowingTableComposite extends DATableComposite {
-       private static final DALogger DA_LOG = DALogger.getInstance();  
-
        private static final String queryto_GetItemCount = "select count(*) from %s where %s";
        private static final String queryto_GetLimitedItem = "select limit %s %s %s from %s where %s";
 
@@ -72,11 +68,11 @@ public abstract class DAWindowingTableComposite extends DATableComposite {
        protected boolean isLogData = true;
        protected int timeColumnIndex = 0;
 
-       private int tableLength = -1;
        private int totalItemCount = 0;
        private int previousSelectionScrollIndex = -1;
        private int previousItemCount = -1;
        private int previousTableLength = 0;
+       private int tableAreaHeigth = 0;
 
        private List<LogData> queriedLogData = null;
        private List<List<Object>> queriedObjectData = null;
@@ -278,22 +274,17 @@ public abstract class DAWindowingTableComposite extends DATableComposite {
                updateTable();
        }
 
-       protected int getTableLength() {
-               if (this.tableLength < 0) {
-                       updateTableLength();
-               }
-               return this.tableLength;
+       public void updateTableArea(int clientAreaHeight) {
+               this.tableAreaHeigth = clientAreaHeight;
        }
 
-       public void updateTableLength() {
-               Rectangle rect = table.getClientArea();
-               int itemHeight = table.getItemHeight();
-               this.tableLength = (rect.height - table.getHeaderHeight())
-                               / (itemHeight + 1);
+       protected int getTableLength() {
+               return (this.tableAreaHeigth - table.getHeaderHeight())
+                               / (table.getItemHeight() + 1);
        }
 
        public void updateHScrollBar(int tableWidth) {
-               DA_LOG.debug("width : " + tableWidth);
+               System.out.println("width : " + tableWidth);
                hScrollbar.setMaximum(totalColumnSize);
                hScrollbar.setThumb(tableWidth);
                hScrollbar.setVisible(true);
@@ -407,7 +398,8 @@ public abstract class DAWindowingTableComposite extends DATableComposite {
                                                } else if (object instanceof Long) {
                                                        totalItemCount = ((Long) object).intValue();
                                                } else {
-                                                       DA_LOG.error("result of item count query is not expected!!");
+                                                       System.out
+                                                                       .println("[ERR] result of item count query is not expected!!");
                                                        totalItemCount = 0;
                                                }
                                        }
index f1f40b3..bb0660a 100644 (file)
@@ -101,8 +101,8 @@ public class WindowingTableColumnSizePackListener implements ControlListener {
                                columnSizes[index] = columnSize;
                        }
                }
+               tableComp.updateTableArea(contents.getClientArea().height);
                tableComp.setColumnSize(columnSizes);
-               tableComp.updateTableLength();
                tableComp.updateHScrollBar(rect.width);
                tableComp.updateTable();
        }