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.PortsinfoService;
import com.ps.visualization.service.RegnameProgressService;

@SuppressWarnings("serial")
@ParentPackage("json-default")
@Results({ @Result(name = BaseListAction.SUCCESS, type = "json"),
		@Result(name = BaseListAction.ERROR, type = "json") })
public class RegnameProgressAction extends BaseListAction {

	@Resource(name = "regnameProgressService")
	private RegnameProgressService regnameProgressService;
	@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 List<Object> getReturnList() {
		return returnList;
	}

	public void setReturnList(List<Object> returnList) {
		this.returnList = returnList;
	}

	public Map<String, Object> getReturnMap() {
		return returnMap;
	}

	public void setReturnMap(Map<String, Object> returnMap) {
		this.returnMap = returnMap;
	}

	@Action(value = "getRegnameTopKey", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getRegnameTopKey() {
		String regname = "All";
		returnList = regnameProgressService.getRegnameTopKey(regname);

		return SUCCESS;
	}

	// @Action(value = "getRegNameScanProgress", results = { @Result(name =
	// SUCCESS, type = "json", params = {
	// "root", "returnList" }) })
	// public String getRegNameScanProgress() {
	// String regname = "All";
	// returnList = regnameProgressService.getScanProgress(regname);
	//
	// return SUCCESS;
	// }

	@Action(value = "getRegNameScanProgress", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getRegNameScanProgress() {
		String countryName = "All";
		List<Object> latlonInfo = new ArrayList<Object>();

		// while(latlonInfo==null||latlonInfo.isEmpty()){
		// latlonInfo = portsinfoService.getLatlongInfo();
		// }

		if (isIndustrialProtocol) {
			returnList.add(regnameProgressService.getScanProgress(countryName));
			returnList.add(portsinfoService.realTimeScanInfoChina(this
					.getNotIndustrialProtocol()));
		} else {
			returnList.add(regnameProgressService.getScanProgress(countryName));
			returnList.add(portsinfoService.realTimeScanInfoChina(this
					.getNotIndustrialProtocolNull()));
		}

		latlonInfo = portsinfoService.getLatlongInfoChina();
		returnList.add(latlonInfo);
		return SUCCESS;
	}

}
