network : fix. the status series of parent 88/28088/1
authorHyunjong.park <phjwithyou.park@samsung.com>
Fri, 26 Sep 2014 02:31:40 +0000 (11:31 +0900)
committerHyunjong.park <phjwithyou.park@samsung.com>
Fri, 26 Sep 2014 02:31:40 +0000 (11:31 +0900)
not show all children chart.
Signed-off-by: Hyunjong.park <phjwithyou.park@samsung.com>
Change-Id: I29b87a3bc9e4061a4554298beaea52dc4a58fde7

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChart.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkDetailView.java

index b68a97b..6cace58 100644 (file)
@@ -29,7 +29,11 @@ package org.tizen.dynamicanalyzer.ui.network;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.eclipse.swt.graphics.Color;
 import org.tizen.dynamicanalyzer.common.Global;
@@ -170,7 +174,11 @@ public class NetworkChart {
        }
 
        public void updateParentChartStatusSeries(List<NetworkSeriesType> statusList) {
+               if (statusList.size() == 0) {
+                       return;
+               }
                NetworkSeriesType data = null;
+               ConcurrentHashMap<Double, Double> statuesRangeHashMap = new ConcurrentHashMap<Double, Double>();
                for (int i = 0; i < statusList.size(); i++) {
                        if (!getDestinationAddress().equals(statusList.get(i).getDestinationAddress())) {
                                continue;
@@ -179,34 +187,51 @@ public class NetworkChart {
                        if (isAccessEvnet(data.getAPIType())) {
                                continue;
                        }
-                       addSeriesItemAtParentChartStatusSeries(getConvertTime(data.getStartTime()),
-                                       getConvertTime(data.getEndTime()));
+                       double startTime = getConvertTime(data.getStartTime());
+                       double endTime = getConvertTime(data.getEndTime());
+
+                       if (i == 0) {
+                               statuesRangeHashMap.put(startTime, endTime);
+                       } else {
+                               setParentStatusSeriesRangeData(statuesRangeHashMap, startTime, endTime);
+                       }
+               }
+               addSeriesItemAtParentChartStatusSeries(statuesRangeHashMap);
+       }
+
+       private void addSeriesItemAtParentChartStatusSeries(
+                       ConcurrentHashMap<Double, Double> statuesRangeHashMap) {
+               Iterator<Entry<Double, Double>> itr = statuesRangeHashMap.entrySet().iterator();
+               while (itr.hasNext()) {
+                       Map.Entry<Double, Double> e = (Map.Entry<Double, Double>) itr.next();
+                       double start = e.getKey();
+                       double end = e.getValue();
+                       addSeriesItemAtParentChartStatusSeries(start, end);
                }
                chart.redraw();
        }
 
+       private void setParentStatusSeriesRangeData(
+                       ConcurrentHashMap<Double, Double> statuesRangeHashMap, double startTime, double endTime) {
+               Iterator<Entry<Double, Double>> itr = statuesRangeHashMap.entrySet().iterator();
+               while (itr.hasNext()) {
+                       Map.Entry<Double, Double> e = (Map.Entry<Double, Double>) itr.next();
+                       double start = e.getKey();
+                       double end = e.getValue();
+                       if (start < startTime && startTime <= end) {
+                               e.setValue(endTime);
+                       }
+                       if (end < startTime) {
+                               statuesRangeHashMap.put(startTime, endTime);
+                       }
+               }
+       }
+
        private void addSeriesItemAtParentChartStatusSeries(double startTime, double endTime) {
                double openTimeOfNotClosed = NetworkDataManager.MAX_CHART_TIME;
-               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);
+               if (startTime < openTimeOfNotClosed && 0 < endTime) { // closed
+                       updateStateSeriesToClose(startTime, endTime);
                } else { // open
-                       openTimeOfNotClosed = startTime;
                        DAChartSeriesItem seriesItem = new DAChartSeriesItem(startTime,
                                        DAChartSeriesItem.SERIES_STATE_CONTINUE,
                                        ColorResources.NETWORK_AREA_FD_USED_END,
@@ -216,12 +241,30 @@ public class NetworkChart {
                }
        }
 
+       private void updateStateSeriesToClose(double startTime, double endTime) {
+               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);
+               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(endSeriesItem);
+               chart.redraw();
+       }
+
        public void updateStatusSeries(List<NetworkSeriesType> statusList) {
                if (isParentChartRow()) {
                        sortStatusSeriesByStartTime(statusList);
                        updateParentChartStatusSeries(statusList);
                        return;
                }
+               if (statusList.size() == 0) {
+                       return;
+               }
                NetworkSeriesType data = null;
                double startTime = -1;
                double endTime = -1;
@@ -246,6 +289,12 @@ public class NetworkChart {
                                NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
                statueSeries.addSeriesItem(seriesItem);
                addSeriesItemWhenCloseStatus(endTime, seriesItem);
+               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(endSeriesItem);
                chart.redraw();
        }
 
index b988c94..9cdbce5 100644 (file)
@@ -201,7 +201,7 @@ public class NetworkDetailView extends DAViewComposite {
                return Formatter.toTimeFormat(usedTime);
        }
 
-       private String getSendAckTime(long recvTime, long sendTime) {
+       private String getSendAckTime(long sendTime, long recvTime) {
                String sendAckTime = CommonConstants.EMPTY;
                if (sendTime <= 0 || recvTime <= 0) {
                        return sendAckTime;