package com.jiuqi.njt.ui.staffmanagement;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.jqyd.android.module.lbs.util.CheckState_interface;
import com.jiuqi.mobile.nigo.comeclose.bean.app.coop.CooperativeGroupBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.InnerManagementBean;
import com.jiuqi.mobile.nigo.comeclose.manager.master.SelectInnerManagermentKey;
import com.jiuqi.njt.R;
import com.jiuqi.njt.data.OptsharepreInterface;
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 com.jiuqi.njt.widget.XListView.ListFooteState;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.LinearLayout.LayoutParams;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
/**
*员工管理 主要是对角色下员工列表的查询
* @author
*
*/
public class StaffManagement extends Activity implements IXListViewListener, OnClickListener, OnScrollListener
{
private Button backLeft ;
private Button actionRight ;
private EditText etSearch ;
private ImageView ivDeleteText ;
private int tvAction = 0;
private Button addButton;
private XListView listView;
private OptsharepreInterface sharePre;
private CModuleBean moduleBean; // 区别模块定制标示
private SelectInnerManagermentKey selectInnerManagermentKey = new SelectInnerManagermentKey();//查询条件
private String name; // 关键字
private AdminAreaBean xzqh; // 所在地
private boolean isFirst = true; // 信息查询是不是第一次(需要显示进度条)
private long startIndex = 0;
private int totalCount = 0;
private List<InnerManagementBean> dataList;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
doinit();
}
@Override
protected void onResume()
{
// TODO Auto-generated method stub
super.onResume();
if(new CheckState_interface(StaffManagement.this)
.checkConnection())
{
startIndex = 0;
// toQuery();
}
}
private void doinit()
{
initParam();
initWidgets();
initListeners();
initUI();
}
private void initParam()
{
// TODO Auto-generated method stub
sharePre = new OptsharepreInterface(StaffManagement.this);
moduleBean = (CModuleBean) getIntent().getSerializableExtra(
Constants.PARAM_MODULEBEAN);
Serializable serializableExtra = getIntent().getSerializableExtra(
Constants.PARAM_XZQH);
if (null != serializableExtra)
{
if (serializableExtra instanceof AdminAreaBean)
{
AdminAreaBean new_name = (AdminAreaBean) serializableExtra;
xzqh = new_name;
}
}
dataList = new ArrayList<InnerManagementBean>();
}
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);
addButton = (Button) findViewById(R.id.add_bottom);
listView = (XListView) findViewById(R.id.listView);
ivDeleteText = (ImageView) findViewById(R.id.ivDeleteText);
addBtnLayout(addButton);
}
private void initListeners()
{
// TODO Auto-generated method stub
listView.setXListViewListener(this);
listView.setPullLoadEnable(true);
listView.setOnScrollListener(this);
backLeft.setOnClickListener(this);
actionRight.setOnClickListener(this);
ivDeleteText.setOnClickListener(this);
erSearchListener();
// setFootHintText() ;
}
private void initUI()
{
// TODO Auto-generated method stub
actionRight.setText("增加");
if(new CheckState_interface(StaffManagement.this)
.checkConnection())
{
toQuery();
}
else
{
UIUtil.showMsg(StaffManagement.this,
Constants.NETWORK_STATE_ERROR);
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount)
{
// TODO Auto-generated method stub
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState)
{
// TODO Auto-generated method stub
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_FLING:// 滚动状态
addButton.setVisibility(View.GONE);
break;
case OnScrollListener.SCROLL_STATE_IDLE:// 空闲状态
addButton.setVisibility(View.GONE);
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:// 触摸后滚动
addButton.setVisibility(View.GONE);
break;
default:
break;
}
}
@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)
{
Intent intent = new Intent();
intent.setClass(StaffManagement.this, AddStaffActivity.class);
startActivity(intent);
}
else
{
isFirst = true;
startIndex = 0;
name = etSearch.getText().toString().trim();
tvAction = 0;
actionRight.setText("增加");
toQuery();
}
break;
case R.id.ivDeleteText:
etSearch.setText("");
break;
default:
break;
}
}
/**
* 查询方法
*/
private void toQuery()
{
// TODO Auto-generated method stub
selectInnerManagermentKey.setStartIndex(startIndex);
selectInnerManagermentKey.setSize(Constants.PAGE_SIZE);
selectInnerManagermentKey.setOrgGuid(sharePre.getPres("guid"));
selectInnerManagermentKey.setFastFind(name);
selectInnerManagermentKey.setEmployeeType(-1);
new QueryStaffAsyncTask(StaffManagement.this, isFirst, selectInnerManagermentKey, new TaskFinish()).execute();
isFirst = false;
}
/**
* 异步类数据返回方法
* 返回数据后绑定列表适配器
* @author
*
*/
private class TaskFinish implements TaskExcute
{
@Override
public void getData(List<InnerManagementBean> result)
{
// TODO Auto-generated method stub
if(null!=result&&result.size()>0)
{
dataList.addAll(result);
startIndex += result.size();
totalCount = result.size();
}
else
{
totalCount = 0;
}
inItListView(dataList);
}
}
private void inItListView(List<InnerManagementBean> dataList)
{
// TODO Auto-generated method stub
setFootHintText();
BaseAdapter adapter = new StaffAdapter(StaffManagement.this, dataList);
listView.setAdapter(adapter);
onLoad();
}
/**
* 更新列表底部信息
*/
public void setFootHintText()
{
if (totalCount == 0 ) {
listView.setListFooteState(ListFooteState.noData);
} else if(totalCount % Constants.PAGE_SIZE != 0){
listView.setListFooteState(ListFooteState.noMoreData);
}else {
listView.setListFooteState(ListFooteState.nomal);
}
listView.showNoData();
}
private void onLoad()
{
listView.setSelection(((int)(startIndex))-totalCount);
listView.stopRefresh();
listView.stopLoadMore();
listView.setRefreshTime(DateUtil.getTimeStamp(new Date(),
DateUtil.MM_DD_HH_MM_SS));
}
@Override
public void onRefresh()
{
// TODO Auto-generated method stub
startIndex = 0;
dataList = new ArrayList<InnerManagementBean>();
toQuery() ;
}
@Override
public void onLoadMore()
{
// TODO Auto-generated method stub
if (startIndex%Constants.PAGE_SIZE == 0)
{
toQuery();
} else {
UIUtil.showMsg(StaffManagement.this, "没有更多");
onLoad();
}
}
private void erSearchListener()
{
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;
}
}
});
}
@SuppressLint("NewApi")
private void addBtnLayout(Button btn)
{
DisplayMetrics dmMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dmMetrics);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.height = dmMetrics.widthPixels / 10;
params.width = dmMetrics.heightPixels / 11;
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
params.addRule(RelativeLayout.CENTER_VERTICAL);
addButton.setLayoutParams(params);
}
/**
* listView适配器
* @author
*
*/
private class StaffAdapter extends BaseAdapter{
private Context context;
private List<InnerManagementBean> dataList;
private LayoutInflater mInflater;
private InnerManagementBean bean ;
public StaffAdapter(Context context,
List<InnerManagementBean> dataList) {
super();
this.context = context;
this.dataList = dataList;
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return dataList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return dataList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
// convertView为null的时候初始化convertView。
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.news_result_list, null);
TextView textTop = (TextView) convertView
.findViewById(R.id.text_top);
TextView textBottomLeft = (TextView) convertView
.findViewById(R.id.phoneRe);
TextView textBottomRight = (TextView) convertView
.findViewById(R.id.dataRe);
holder.setTvTitleTop(textTop);
holder.setTvTitleBootomLeft(textBottomLeft);
holder.setTvTitleBootomRight(textBottomRight);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tvTitleTop.setText(dataList.get(position).getUserName());
holder.tvTitleBootomLeft.setText(dataList.get(position).getContactNumber());
CooperativeGroupBean froupBean = dataList.get(position).getGroupBean();
holder.tvTitleBootomRight.setVisibility(View.GONE);
if(null!=froupBean)
{
holder.tvTitleBootomRight.setText(null==froupBean.getName()?"":froupBean.getName());
}
final int index = position;
convertView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
bean = dataList.get(index);
Intent intent = new Intent();
intent.setClass(context, AddStaffActivity.class);
intent.putExtra("InnerManagementBean", bean);
startActivity(intent);
}
});
return convertView;
}
public final class ViewHolder {
private TextView tvTitleTop;
private TextView tvTitleBootomLeft;
private TextView tvTitleBootomRight;
public void setTvTitleTop(TextView tvTitleTop) {
this.tvTitleTop = tvTitleTop;
}
public void setTvTitleBootomLeft(TextView tvTitleBootomLeft) {
this.tvTitleBootomLeft = tvTitleBootomLeft;
}
public void setTvTitleBootomRight(TextView tvTitleBootomRight) {
this.tvTitleBootomRight = tvTitleBootomRight;
}
}
}
}