package com.ps.visualization.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

import com.ps.base.action.BaseListAction;
import com.ps.visualization.service.CountryProgressService;
import com.ps.visualization.service.PortsinfoService;

@SuppressWarnings("serial")
@ParentPackage("json-default")
@Results({ @Result(name = BaseListAction.SUCCESS, type = "json"),
		@Result(name = BaseListAction.ERROR, type = "json") })
public class CountryProgressAction extends BaseListAction {

	@Resource(name = "countryProgressService")
	private CountryProgressService countryProgressService;
	@Resource(name = "portsinfoService")
	private PortsinfoService portsinfoService;
	private Map<String, Object> returnMap = new HashMap<String, Object>();
	private List<Object> returnList = new ArrayList<Object>();// 存储返回的数据
	public boolean isIndustrialProtocol;

	public boolean isIndustrialProtocol() {
		return isIndustrialProtocol;
	}

	public void setIndustrialProtocol(boolean isIndustrialProtocol) {
		this.isIndustrialProtocol = isIndustrialProtocol;
	}

	public PortsinfoService getPortsinfoService() {
		return portsinfoService;
	}

	public void setPortsinfoService(PortsinfoService portsinfoService) {
		this.portsinfoService = portsinfoService;
	}

	public List<Object> getReturnList() {
		return returnList;
	}

	public void setReturnList(List<Object> returnList) {
		this.returnList = returnList;
	}

	public CountryProgressService getCountryProgressService() {
		return countryProgressService;
	}

	public void setCountryProgressService(
			CountryProgressService countryProgressService) {
		this.countryProgressService = countryProgressService;
	}

	public Map<String, Object> getReturnMap() {
		return returnMap;
	}

	public void setReturnMap(Map<String, Object> returnMap) {
		this.returnMap = returnMap;
	}

	@Action(value = "getCountryScanProgress", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getCountryScanProgress() {
		String countryName = "All";
		List<Object> latlonInfo = new ArrayList<Object>();

		// while(latlonInfo==null||latlonInfo.isEmpty()){
		// latlonInfo = portsinfoService.getLatlongInfo();
		// }

		if (!isIndustrialProtocol) {
			returnList.add(countryProgressService.getScanProgress(countryName,
					this.getNotIndustrialProtocolNull()));
			returnList.add(portsinfoService.realTimeScanInfo(this
					.getNotIndustrialProtocolNull()));
		} else {
			returnList.add(countryProgressService.getScanProgress(countryName,
					this.getNotIndustrialProtocol()));
			returnList.add(portsinfoService.realTimeScanInfo(this
					.getNotIndustrialProtocol()));
		}
		// returnList.add(countryProgressService.getScanProgress(countryName,
		// this.getNotIndustrialProtocol()));
		// returnList.add(portsinfoService.realTimeScanInfo(this
		// .getNotIndustrialProtocol()));
		latlonInfo = portsinfoService.getLatlongInfo();
		returnList.add(latlonInfo);
		return SUCCESS;
	}

	@Action(value = "getCountryScanTopKey", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getCountryScanTopKey() {
		String countryName = "All";
		if (isIndustrialProtocol) {
			returnList = countryProgressService.getScanTopKey(countryName,
					this.getNotIndustrialProtocol());
		} else {
			returnList = countryProgressService.getScanTopKey(countryName,
					this.getNotIndustrialProtocolNull());
		}

		return SUCCESS;
	}

}
