package org.pccpa.frage;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.pccpa.ContactActivity;
import org.pccpa.DB.Area;
import org.pccpa.DB;
import org.pccpa.DB.Dept;
import org.pccpa.api.Contact;
import org.pccpa.frage.ContactListFragment.ContactListAdapter;
import org.pccpa.R;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.GridLayout.LayoutParams;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockDialogFragment;
import com.kull.android.ContextHelper;
import com.kull.android.widget.ContextAdapter;
import com.kull.android.widget.ListItemAdapter;
public class DepartmentSelectDialog extends SherlockDialogFragment {
private ContactListFragment parent;
public void setParent(ContactListFragment parent) {
this.parent = parent;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// TODO Auto-generated method stub
Dialog dialog= super.onCreateDialog(savedInstanceState);
dialog.setTitle("�����Ų�ѯ");
return dialog;
}
public static Map<String, Area> CACHE_AREAS=new HashMap<String, DB.Area>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
if(CACHE_AREAS.isEmpty()){
try {
CACHE_AREAS=DB.local.selectArea(this.getActivity());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
View view=inflater.inflate(R.layout.dialog_department_select, container,false);
ScrollView scrollView=(ScrollView)view;
LinearLayout layout=(LinearLayout)scrollView.findViewById(R.id.layArea);//.findViewById(R.id.layArea);
// ArrayList<View> children=new ArrayList<View>();
for(final Area area: CACHE_AREAS.values()){
Button areaButton=new Button(getActivity());
//areaButton.setWidth(200);
areaButton.setText(area.getAreaName());
final String areaid=area.getAreaId();
areaButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try {
parent.loadAreaContacts(area.getAreaName(), areaid);
dismiss();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
//children.add(areaButton);
layout.addView(areaButton);
GridView gridDepts=new GridView(getActivity());
gridDepts.setNumColumns(3);
gridDepts.setColumnWidth(80);
int dsize=area.getDepts().size();
if(dsize>3){
int h=((dsize/3)+ (dsize%3==0?0:1) )*48;
LayoutParams layoutParams=new LayoutParams();
layoutParams.height=h;
gridDepts.setLayoutParams(layoutParams);
}
//gridDepts.setLayoutParams(layparam);
DeptItemAdapter deptItemAdapter=new DeptItemAdapter(getActivity());
deptItemAdapter.items=new ArrayList<DB.Dept>(area.getDepts().values());
gridDepts.setAdapter(deptItemAdapter);
layout.addView(gridDepts);
}
//view.addTouchables(children);
return scrollView;
}
//@Override
public View onCreateViewx(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
if(CACHE_AREAS.isEmpty()){
try {
CACHE_AREAS=DB.local.selectArea(this.getActivity());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
View view=inflater.inflate(R.layout.dialog_department_select2, container,false);
ScrollView scrollView=(ScrollView)view;
GridLayout layout=(GridLayout)scrollView.findViewById(R.id.layArea);//.findViewById(R.id.layArea);
// ArrayList<View> children=new ArrayList<View>();
for(final Area area: CACHE_AREAS.values()){
Button areaButton=new Button(getActivity());
//areaButton.setWidth(200);
areaButton.setText(area.getAreaName());
final String areaid=area.getAreaId();
areaButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try {
dismiss();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
//children.add(areaButton);
layout.addView(areaButton);
GridView gridDepts=new GridView(getActivity());
gridDepts.setNumColumns(3);
gridDepts.setColumnWidth(80);
int dsize=area.getDepts().size();
if(dsize>3){
int h=((dsize/3)+ (dsize%3==0?0:1) )*50;
LayoutParams layoutParams=new LayoutParams();
layoutParams.height=h;
gridDepts.setLayoutParams(layoutParams);
}
//gridDepts.setLayoutParams(layparam);
DeptItemAdapter deptItemAdapter=new DeptItemAdapter(getActivity());
deptItemAdapter.items=new ArrayList<DB.Dept>(area.getDepts().values());
gridDepts.setAdapter(deptItemAdapter);
layout.addView(gridDepts);
}
//view.addTouchables(children);
return scrollView;
}
public class DeptItemAdapter extends ListItemAdapter<Dept> {
public DeptItemAdapter(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
class Hodler{
Button btnDept;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return Long.parseLong(this.items.get(position).getDeptId());
}
@Override
public View getView(int position, View convertView, ViewGroup parentg) {
// TODO Auto-generated method stub
final Dept dept=this.getItem(position);
convertView=_inflater.inflate(R.layout.dialog_department_select_dept, parentg,false);
Button btnDept=(Button)convertView;
btnDept.setText(dept.getDeptName());
btnDept.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try {
ContactActivity.CONTACT_ALL=DB.local.selectDeptContacts(_context, dept.getDeptId());
parent.loadDeptContacts(dept.getAreaName(), dept.getDeptName(), dept.getDeptId());
dismiss();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
return btnDept;
}
}
}