package com.jqyd.newprocess;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.jqyd.manager.R;
import com.jqyd.model.EmpsModule;
import com.jqyd.model.PositionInfo;
import com.jqyd.shareInterface.UpdataToServer;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class TakePosition extends Activity implements OnClickListener {
private EditText name;
private EditText start_date;
private EditText end_date;
private Button sure;
private Button textDesc;
private Button leftOpt;
private Button righOpt;
private TextView title;
private Calendar c;
private ArrayList<PositionInfo> locList = null;
private ArrayList<PositionInfo> hisLocList = null;
private EmpsModule emp = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.takeposition);
name = (EditText) this.findViewById(R.id.name);
start_date = (EditText) this.findViewById(R.id.start_date);
end_date = (EditText) this.findViewById(R.id.end_date);
sure = (Button) this.findViewById(R.id.sure);
textDesc = (Button) this.findViewById(R.id.textDesc);
title = (TextView) this.findViewById(R.id.title);
title.setText("轨迹回放");
leftOpt = (Button) this.findViewById(R.id.leftOpt);
leftOpt.setVisibility(Button.INVISIBLE);
righOpt = (Button) this.findViewById(R.id.rightOpt);
righOpt.setVisibility(Button.INVISIBLE);
sure.setOnClickListener(this);
textDesc.setOnClickListener(this);
start_date.setOnClickListener(this);
end_date.setOnClickListener(this);
start_date.setOnFocusChangeListener(new TouchDateFocusListener());
end_date.setOnFocusChangeListener(new TouchDateFocusListener());
emp = (EmpsModule) this.getIntent().getSerializableExtra("emp");
name.setText(emp.getXm());
name.setClickable(false);
c = Calendar.getInstance();
//时间默认当天
SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd");
String rq = formate.format(new Date());
start_date.setText(rq);
end_date.setText(rq);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v == sure){
new NowSearchThread(1).start();
}else if(v == textDesc){
new NowSearchThread(2).start();
}else if(v == start_date){
getDate(1);
}else if(v == end_date){
getDate(2);
}
}
Handler myHander = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch(msg.what){
case 1:
showDialog(1);
break;
case 2:
removeDialog(1);
showResult();
break;
case 3:
removeDialog(1);
Toast.makeText(TakePosition.this, msg.getData().getString("msg"), Toast.LENGTH_SHORT).show();
break;
case 4:
removeDialog(1);
showDesc();
break;
}
}
};
//弹出日期框
public void getDate(final int num) {
new DatePickerDialog(TakePosition.this,
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker arg0, int year, int month,
int dat) {
// TODO Auto-generated method stub
String m = "";
String d = "";
if ((month + 1) < 10) {
m = "0" + (month + 1);
} else {
m = (month + 1) + "";
}
if (dat < 10) {
d = "0" + dat;
} else {
d = dat + "";
}
String time = year + "-" + m + "-" + d;
if(num == 1){
start_date.setText(time);
}else{
end_date.setText(time);
}
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH),
c.get(Calendar.DAY_OF_MONTH)).show();
}
/**
* 获得焦点事件监听器
* @author Administrator
*
*/
class TouchDateFocusListener implements OnFocusChangeListener{
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus && v == start_date){
getDate(1);
}else if(hasFocus && v == end_date){
getDate(2);
}
}
};
/**
* 轨迹回放线程
* @author Administrator
*
*/
class NowSearchThread extends Thread{
private int opt = 1;
public NowSearchThread(int opt){
this.opt = opt;
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
Looper.prepare();
Message msg =new Message();
msg.what = 1;
myHander.sendMessage(msg);
Message msg2 =new Message();
String result = "";
JSONObject obj = new JSONObject();
try {
obj.put("startDate", start_date.getText().toString());
obj.put("endDate", end_date.getText().toString());
obj.put("zguid", emp.getGuid());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Bundle bunlde = new Bundle();
String errMsg = "";
locList = new ArrayList<PositionInfo>();
hisLocList = new ArrayList<PositionInfo>();
result = new UpdataToServer(TakePosition.this).dataToServer("GJHF", obj);
if (result != null && !result.equals("-1") && !result.equals("500")) {
try {
JSONObject return_obj = new JSONObject(result);
String res = return_obj.getString("result");
if (res.equals("0")) {
JSONArray arr = return_obj.getJSONArray("locinfo");
for(int i=0;i<arr.length();i++){
JSONObject pObject = arr.getJSONObject(i);
PositionInfo gjhf = new PositionInfo();
gjhf.setAddTime(pObject.getString("dwtime"));
gjhf.setContent(pObject.getString("content"));
gjhf.setLon(pObject.getDouble("lon"));
gjhf.setLat(pObject.getDouble("lat"));
gjhf.setZdmc(pObject.getString("zdmc"));
gjhf.setSjhm(pObject.getString("sjhm"));
gjhf.setSucess(pObject.getInt("success"));
gjhf.setProvince(pObject.getString("province"));
gjhf.setCity(pObject.getString("city"));
gjhf.setCountry(pObject.getString("country"));
if(gjhf.getSucess() == 0){
locList.add(gjhf);
}
hisLocList.add(gjhf);
}
if(opt == 1){
msg2.what = 2;
}else{
msg2.what = 4;
}
}else{
msg2.what = 3;
errMsg = return_obj.getString("detail");
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
msg2.what = 3;
errMsg = "获取历史轨迹记录失败!";
}
bunlde.putString("msg", errMsg);
msg2.setData(bunlde);
myHander.sendMessage(msg2);
Looper.loop();
}
}
/**
* 地图显示位置
*/
public void showResult(){
Intent intent = new Intent();
intent.putExtra("locList", locList);
intent.setClass(TakePosition.this, Gzgj_new.class);
startActivity(intent);
}
/**
* 文字详情显示
*/
public void showDesc(){
Intent intent = new Intent();
intent.putExtra("locList", hisLocList);
intent.setClass(TakePosition.this, LocDesc.class);
startActivity(intent);
}
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
ProgressDialog dialog = new ProgressDialog(this);
dialog.setIndeterminate(true);
dialog.setCancelable(false);
switch(id){
case 1:
dialog.setMessage("正在查询,请稍候……");
break;
}
return dialog;
}
}