package com.jiuqi.njt.management;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.jiuqi.mobile.nigo.comeclose.bean.NiGoBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.collect.ServiceCollectBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.CollectionBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean;
import com.jiuqi.mobile.nigo.comeclose.manager.app.SelectPoiKey;
import com.jiuqi.mobile.nigo.comeclose.manager.app.SelectServiceKey;
import com.jiuqi.mobile.nigo.comeclose.manager.master.SelectCollectionKey;
import com.jiuqi.njt.R;
import com.jiuqi.njt.adapter.MyFavorListAdapter;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.data.OptsharepreInterface;
import com.jiuqi.njt.management.task.GetQueryResultAsyncTask;
import com.jiuqi.njt.management.task.QueryFavorListTask;
import com.jiuqi.njt.model.CModuleBean;
import com.jiuqi.njt.util.Constants;
import com.jiuqi.njt.util.DateUtil;
import com.jiuqi.njt.util.UIUtil;
import com.jiuqi.njt.widget.XListView;
import com.jiuqi.njt.widget.XListView.IXListViewListener;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
/**
* 维修点和我的收藏选取列表页面
*
* @author Administrator
*
*/
@SuppressLint("NewApi")
public class FregmentWorkRepair extends Activity implements OnClickListener,
IXListViewListener {
private Button backLeft;
private Button actionRight;
private EditText etSearch;
private ImageView ivDeleteText;
private int tvAction;
private XListView listView;
private int startIndex;
private int totalcount;
private String flag;
private OptsharepreInterface sharePre;
private MyApp applcation;
private SelectCollectionKey selectRepairsFileKey;
private SelectServiceKey selectServiceKey;
private boolean isFirst;
private AdminAreaBean xzqh; // 所在地
private String name = ""; // 关键字
private int type;
private int idxInfoType;
private ArrayList<NiGoBean> newGetDataList = new ArrayList<NiGoBean>();
private MyFavorListAdapter adapter;
private CModuleBean moduleBean;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
doinit();
}
private void doinit() {
initParam();
initWidgets();
initListeners();
initUI();
}
private void initParam() {
// TODO Auto-generated method stub
applcation = (MyApp) getApplication();
sharePre = new OptsharepreInterface(getApplicationContext());
selectServiceKey = new SelectServiceKey();
selectServiceKey.setSearchStr(name);
selectServiceKey.setLatitude(applcation.getLat());
selectServiceKey.setLongitude(applcation.getLon());
selectServiceKey.setSize(Constants.PAGE_SIZE);
selectServiceKey.setStartIndex(startIndex);
selectServiceKey.setOrgType(type);
selectServiceKey.setSortField("range_kilometer");
Log.wtf("type", type+"");
selectRepairsFileKey = new SelectCollectionKey();
selectRepairsFileKey.setAddPersonGuid(sharePre.getPres("guid"));
// selectRepairsFileKey.setTypeOfCollection(1);
selectRepairsFileKey.setSize(Constants.PAGE_SIZE);
selectRepairsFileKey.setStartIndex(startIndex);
flag = getIntent().getStringExtra("flag");
moduleBean = (CModuleBean) getIntent().getSerializableExtra(
Constants.PARAM_MODULEBEAN);
isFirst = true;
}
private void initWidgets() {
// TODO Auto-generated method stub
setContentView(R.layout.layout_tem_xlistview);
backLeft = (Button) findViewById(R.id.backleft);
actionRight = (Button) findViewById(R.id.actionright);
etSearch = (EditText) findViewById(R.id.etSearch);
ivDeleteText = (ImageView) findViewById(R.id.ivDeleteText);
listView = (XListView) findViewById(R.id.listView);
listView.setPullLoadEnable(true);
listView.setXListViewListener(this);
toQuery();
}
private void initListeners() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
backLeft.setOnClickListener(this);
actionRight.setOnClickListener(this);
ivDeleteText.setOnClickListener(this);
erSearchListener();
}
private void erSearchListener() {
// TODO Auto-generated method stub
etSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if (s.length() == 0) {
ivDeleteText.setVisibility(View.INVISIBLE);
actionRight.setText("筛选");
tvAction = 0;
} else {
ivDeleteText.setVisibility(View.VISIBLE);
actionRight.setText("搜索");
tvAction = 1;
}
}
});
}
private void initUI() {
// TODO Auto-generated method stub
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.backleft:
this.finish();
break;
case R.id.actionright:
if (tvAction == 0) {
UIUtil.requestQuery(FregmentWorkRepair.this, xzqh,
moduleBean.getModuleFlag());
} else {
isFirst = true;
startIndex = 0;
name = etSearch.getText().toString().trim();
tvAction = 0;
actionRight.setText("筛选");
selectServiceKey .setSearchStr(name);
toQuery();
}
break;
case R.id.ivDeleteText:
etSearch.setText("");
break;
default:
break;
}
}
private void onLoad() {
listView.stopRefresh();
listView.stopLoadMore();
listView.setRefreshTime(DateUtil.getTimeStamp(new Date(),
DateUtil.MM_DD_HH_MM_SS));
}
@Override
public void onRefresh() {
startIndex = 0;
totalcount =0;
selectServiceKey.setStartIndex(startIndex);
toQuery();
}
@Override
public void onLoadMore() {
if (startIndex < totalcount) {
selectServiceKey.setStartIndex(startIndex);
toQuery();
} else {
UIUtil.showMsg(FregmentWorkRepair.this, "没有更多");
onLoad();
}
}
private void toQuery() {
if(startIndex ==0){
newGetDataList = new ArrayList<NiGoBean>();
}
if (flag.equals("service")) {
new GetQueryResultAsyncTask(
FregmentWorkRepair.this, isFirst, selectServiceKey,
xzqh, idxInfoType,new GetData()).execute();
} else {
new QueryFavorListTask(FregmentWorkRepair.this,
selectRepairsFileKey,new GetData(),isFirst).execute();
}
}
public interface WhenTaskFinish{
void taskFinished(List<ServiceCollectBean> result);
void taskFinishedNew(List<CollectionBean> result);
}
private class GetData implements WhenTaskFinish{
@Override
public void taskFinished(List<ServiceCollectBean> dataList) {
// TODO Auto-generated method stub
startIndex += dataList.size();
totalcount = dataList.size();
for (int i = 0; i < dataList.size(); i++) {
newGetDataList.add(dataList.get(i));
}
adapter = new MyFavorListAdapter(FregmentWorkRepair.this,
newGetDataList, flag);
listView.setAdapter(adapter);
onLoad();
isFirst = false;
}
@Override
public void taskFinishedNew(List<CollectionBean> result) {
// TODO Auto-generated method stub
if(null!=result){
startIndex += result.size();
totalcount = result.size();
for (int i = 0; i < result.size(); i++) {
newGetDataList.add(result.get(i));
}
adapter = new MyFavorListAdapter(FregmentWorkRepair.this,
newGetDataList, flag);
listView.setAdapter(adapter);
onLoad();
isFirst = false;
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (requestCode == Constants.REQUEST_XZQH_CODE) {
if (resultCode == RESULT_OK) {
AdminAreaBean xzqh = (AdminAreaBean) data
.getSerializableExtra(Constants.PARAM_XZQH);
this.xzqh = xzqh;
try {
SelectPoiKey selectPoiKey = (SelectPoiKey)data.getSerializableExtra("SelectPoiKey");
if(null!=selectPoiKey){
selectServiceKey .setSize(selectPoiKey.getSize());
selectServiceKey.setLatitude(selectPoiKey.getLatitude());
selectServiceKey.setLongitude(selectPoiKey.getLongitude());
selectServiceKey.setRange_kilometer(selectPoiKey.getRange_kilometer());
selectServiceKey.setStartIndex(0);
// selectServiceKey.setSort(selectPoiKey.getPoiSortType());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
newGetDataList = new ArrayList<NiGoBean>();
toQuery();
}
}
}
}