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;
}
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;
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,
}
}
+ 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;
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();
}