package com.yeetou.xinyongkaguanjia.component;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.achartengine.GraphicalView;
import com.yeetou.xinyongkaguanjia.R;
import com.yeetou.xinyongkaguanjia.adapter.AdapterForLinearLayout;
import com.yeetou.xinyongkaguanjia.constants.AppConstant;
import com.yeetou.xinyongkaguanjia.db.service.DbStreamService;
import com.yeetou.xinyongkaguanjia.info.MonthPayments;
import com.yeetou.xinyongkaguanjia.util.AchartUtil;
import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MyLinearLayoutForListAdapter extends LinearLayout {
public AdapterForLinearLayout adapter;
public OnClickListener mOnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
int i = (Integer) v.getTag();
setItemOnClick(i);
}
};
public OnLongClickListener mOnLongClickListener = null;
private Context context;
private List<MonthPayments> monthPayments;
private Map<String, Float> expends;
private DbStreamService dbStreamService;
private LinearLayout linearLayout;
private String bankname;
private String number;
public MyLinearLayoutForListAdapter(Context context) {
super(context);
this.context = context;
}
public void setInputDatas(Context context, List<MonthPayments> monthPayments, LinearLayout pie, String bankname, String number) {
this.context = context;
this.linearLayout = pie;
this.monthPayments = monthPayments;
this.bankname = bankname;
this.number = number;
dbStreamService = new DbStreamService(context);
}
public MyLinearLayoutForListAdapter(Context context, AttributeSet attrs) {
super(context, attrs);
dbStreamService = new DbStreamService(context);
}
public void bindLinearLayout() {
int count = adapter.getCount();
for (int i = 0; i < count; i++) {
View v = adapter.getDropDownView(i, null, null);
v.setTag(i);
v.setOnClickListener(this.mOnClickListener);
// v.setOnLongClickListener(this.mOnLongClickListener);
this.addView(v, i);
}
setItemOnClick(0);
}
public void setItemOnClick(int j) {
int count = adapter.getCount();
for (int i = 0; i < count; i++) {
View v = this.getChildAt(i);
TextView card_info_bar_item_amount = (TextView) v.findViewById(R.id.card_info_bar_item_amount);
ImageView c_color_expend = (ImageView) v.findViewById(R.id.a_bar_item_expend);
TextView card_info_bar_item_date = (TextView) v.findViewById(R.id.card_info_bar_item_date);
if (i == j) {
card_info_bar_item_amount.setTextColor(Color.BLUE);
card_info_bar_item_date.setTextColor(Color.BLUE);
c_color_expend.setBackgroundColor(Color.BLUE);
} else {
card_info_bar_item_amount.setTextColor(Color.GRAY);
card_info_bar_item_date.setTextColor(Color.GRAY);
c_color_expend.setBackgroundColor(Color.GRAY);
}
}
MonthPayments mpm = monthPayments.get(j);
String thedate = mpm.getYear() + "-" + mpm.getMonth();
TextView card_info_pie_date = (TextView) linearLayout.findViewById(R.id.card_info_pie_date);
RelativeLayout card_info_pie = (RelativeLayout) linearLayout.findViewById(R.id.card_info_pie);
LinearLayout card_info_pie_item_item = (LinearLayout) linearLayout.findViewById(R.id.card_info_pie_item_item);
card_info_pie_date.setText(thedate + "月消费分类图");
setupPie(card_info_pie_item_item, card_info_pie, mpm.getYear(), mpm.getMonth());
}
public AdapterForLinearLayout getAdapter() {
return adapter;
}
public void setAdapter(AdapterForLinearLayout adapter) {
this.adapter = adapter;
bindLinearLayout();
}
@Override
public void setOnClickListener(OnClickListener mOnClickListener) {
this.mOnClickListener = mOnClickListener;
}
public OnClickListener getOnClickListener() {
return mOnClickListener;
}
@Override
public void setOnLongClickListener(OnLongClickListener mOnLongClickListener) {
this.mOnLongClickListener = mOnLongClickListener;
}
public OnLongClickListener getOnLongClickListener() {
return mOnLongClickListener;
}
public void setupPie(LinearLayout card_info_pie_item_item, RelativeLayout card_info_pie, int year,int month) {
expends = dbStreamService.getExpandByCategory(year,month,bankname,number);
Iterator iter = expends.keySet().iterator();
int i = 0;
float sum = 0;
card_info_pie_item_item.removeAllViews();
while (iter.hasNext()) {
sum += expends.get(iter.next());
}
iter = expends.keySet().iterator();
while (iter.hasNext()) {
final String key = (String) iter.next();
View view = View.inflate(context, R.layout.card_info_pie_item_item, null);
ImageView card_info_item_item_imag = (ImageView) view.findViewById(R.id.card_info_item_item_imag);
TextView card_info_item_item_text1 = (TextView) view.findViewById(R.id.card_info_item_item_text1);
TextView card_info_item_item_text2 = (TextView) view.findViewById(R.id.card_info_item_item_text2);
card_info_item_item_text1.setText(key);
card_info_item_item_text2.setText("¥" + expends.get(key) + "[" + Math.round(100 * expends.get(key) / sum) + "%" + "]");
card_info_item_item_imag.setBackgroundColor(context.getResources().getColor(AppConstant.cart_color[i]));
LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f);
view.setLayoutParams(param);
card_info_pie_item_item.addView(view);
i++;
}
GraphicalView view = AchartUtil.getPieGraphicalView(context, expends);
card_info_pie.addView(view);
}
}