package com.hyrt.cei.adapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.hyrt.cei.R;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.ui.witsea.WitSeaActivity;
import com.hyrt.cei.ui.witsea.view.FullGridView;
import com.hyrt.cei.util.AsyncImageLoader.ImageCallback;
import com.hyrt.cei.vo.ColumnEntry;
import com.hyrt.cei.vo.ImageResourse;
import com.hyrt.cei.webservice.service.Service;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.ProgressBar;
import android.widget.TextView;
public class WitSeaAdapter extends BaseAdapter {
private CeiApplication application;
private List<ColumnEntry> witSeaData;
private LayoutInflater inflater;
private WitSeaActivity context;
public List<ProgressBar> bars =new ArrayList<ProgressBar>();
private Handler handler;
private FullGridView fullGridView;
private HashMap<String, Drawable> drawables = new HashMap<String, Drawable>();
public WitSeaAdapter(WitSeaActivity context, CeiApplication application,FullGridView fullGridView,
List<ColumnEntry> data, Handler handler) {
this.application = application;
inflater = LayoutInflater.from(context);
this.witSeaData = data;
this.context = context;
this.handler = handler;
this.fullGridView = fullGridView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return witSeaData.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return witSeaData.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder = new Holder();
String imageUrl = witSeaData.get(position).getOperationImage();
if (convertView == null) {
convertView = inflater
.inflate(R.layout.toolbox_gridview_item, null);
holder.img = (ImageView) convertView.findViewById(R.id.app_icon);
holder.img.setTag(imageUrl);
holder.bg = (ImageView) convertView
.findViewById(R.id.download_icon);
holder.text = (TextView) convertView
.findViewById(R.id.toolbox_item_textview_name);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
if(!("").equals(witSeaData.get(position).getName()))
holder.text.setText(witSeaData.get(position).getName());
if (witSeaData.get(position).isSelected()) {
holder.bg.setImageResource(R.drawable.wit_sea_item_unstall);
holder.bg.setTag("0");
} else {
holder.bg.setImageResource(R.drawable.wit_sea_item_install);
holder.bg.setTag("1");
}
final ProgressBar bar=(ProgressBar) convertView
.findViewById(R.id.toolbox_item_progressbar);
bars.add(bar);
holder.bg.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
alertIsSurePop(new OnClickListener(){
public void onClick(View v1) {
popWin.dismiss();
if (v.getTag().equals("1")) {
new Thread() {
@Override
public void run() {
String returnCode = Service.upDateWitSea(application.columnEntry.getUserId(), witSeaData.get(position).getId());
handler.sendMessage(handler.obtainMessage(position,
returnCode));
}
}.start();
} else {
handler.sendMessage(handler.obtainMessage(position));
}
}
});
}
});
holder.img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
context.alertBusinessIntro(witSeaData.get(position));
}
});
if (drawables.containsKey(imageUrl) && drawables.get(imageUrl) != null) {
holder.img.setImageDrawable(drawables.get(imageUrl));
} else {
ImageResourse imageResource = new ImageResourse();
imageResource.setIconUrl(witSeaData.get(position)
.getOperationImage());
imageResource.setIconId(witSeaData.get(position).getId());
imageResource.setIconTime(witSeaData.get(position).getIssueTime());
application.asyncImageLoader.loadDrawable(imageResource,
new ImageCallback() {
@Override
public void imageLoaded(Drawable imageDrawable,
String imageUrl) {
ImageView imageView = (ImageView) fullGridView
.findViewWithTag(imageUrl);
if (imageView != null && imageDrawable != null) {
imageView.setImageDrawable(imageDrawable);
drawables.put(imageUrl, imageDrawable);
}
}
});
}
return convertView;
}
class Holder {
ImageView img;
ImageView bg;
TextView text;
}
private PopupWindow popWin;
private void alertIsSurePop(OnClickListener clickListener) {
View popView = context.getLayoutInflater().inflate(
R.layout.phone_study_issure, null);
popView.findViewById(R.id.phone_study_issure_sure_btn)
.setOnClickListener(clickListener);
popView.findViewById(R.id.phone_study_issure_cancel_btn)
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popWin.dismiss();
}
});
popWin = new PopupWindow(popView, LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
popWin.setFocusable(true);
popWin.showAtLocation(context.findViewById(R.id.full_view), Gravity.CENTER, 0,
0);
}
}