package edu.hebtu.movingcampus.activity;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import edu.hebtu.movingcampus.AppInfo;
import edu.hebtu.movingcampus.R;
import edu.hebtu.movingcampus.activity.base.BaseActivity;
import edu.hebtu.movingcampus.biz.ExamDao;
import edu.hebtu.movingcampus.biz.RoomDao;
import edu.hebtu.movingcampus.entity.ClassRoom;
import edu.hebtu.movingcampus.entity.ExamScore;
import edu.hebtu.movingcampus.utils.LogUtil;
import edu.hebtu.movingcampus.view.CustSpinner;
public class Show_FreedRoom extends BaseActivity {
private static int buildingid = 0;
private static int schoolid = 0;
private static int lable = 0;
private LinearLayout parent;
private Button btn_rquery;
private boolean flag = false;
private GridView gv_room;
private ImageView img_show;
private List<Map<String, String>> list_room = new ArrayList<Map<String, String>>();
private String[] buildings;//教学楼的数组
private String[] schools;//校区的数组
private String[] units;//几节课的数组
private String[] weekdays;//星期几的数组
private String[] weeks;//第几周的数组
private Spinner spinner_school;//校区的spinner
private Spinner spinner_building;//教学楼的spinner
private Spinner spinner_unit;//几节课的spinner
private Spinner spinner_weekday;//星期几的spinner
private Spinner spinner_weeks;//第几周的spinner
private ArrayAdapter<String> adapter_School;//校区的adapter
private ArrayAdapter<String> adapter_building;//教学楼的adapter
private ArrayAdapter<String> adapter_unit;//几节课的adapter
private ArrayAdapter<String> adapter_weekday;//星期几的adapter
private ArrayAdapter<String> adapter_weeks;//第几周的adapter
private SimpleAdapter simpleAdapter = null;
private ArrayList<ClassRoom> roomlist = new ArrayList();
private PopupWindow selectPopupWindow = null;
private TextView tv_XnXq;
private TextView tv_id;
private TextView tv_name;
private MyAdapter adapter;
private String unit="";//选中的第几节课
private String building="";//选中的教学楼
private String school="";//选中的校区
private String week="";//选中的第几周
private String weekday="";//选中的周几
@Override
protected void onCreate(Bundle paramBundle) {
super.onCreate(paramBundle);
setContentView(LayoutInflater.from(this).inflate(R.layout.freeroom,
null));
getMessage();
InitList();//定义spinner
InitSpinnerList();//定义spinner视图
initView();//定义视图
bindButton();//绑定按钮
}
private void initView() {
// TODO Auto-generated method stub
this.img_show = ((ImageView) findViewById(R.id.img_pic));
this.img_show.setBackgroundResource(R.drawable.btn_bg);
this.tv_id = ((TextView) findViewById(R.id.tvscore_stuID));
this.tv_name = ((TextView) findViewById(R.id.tvscore_StuName));
this.tv_id.setText(AppInfo.getUser().getCid().toString().toCharArray(),
0, AppInfo.getUser().getCid().toString().length());
this.tv_name.setText(AppInfo.getUser().getUserName().toCharArray(), 0,
AppInfo.getUser().getUserName().length());
this.tv_XnXq = ((TextView) findViewById(R.id.tvpage_xnxq));
String str = AppInfo.getStudyYear() + "学年 第"+ AppInfo.getTerm()+ "学期";
this.tv_XnXq.setText(str);
this.gv_room = ((GridView) findViewById(R.id.gv_freedroom));
adapter = new MyAdapter(null);
gv_room.setAdapter(adapter);
}
private void InitList() {
this.spinner_school = ((Spinner) findViewById(R.id.spinner_school));
this.spinner_building = ((Spinner) findViewById(R.id.spinner_building));
this.spinner_weeks = ((Spinner) findViewById(R.id.spinner_weeks));
this.spinner_weekday = ((Spinner) findViewById(R.id.spinner_weekday));
this.spinner_unit = ((Spinner) findViewById(R.id.spinner_unit));
ArrayList<String> list_weekday = new ArrayList();
ArrayList<String> list_school = new ArrayList();
ArrayList<String> list_building = new ArrayList();
ArrayList<String> list_weeks = new ArrayList();
ArrayList<String> list_unit = new ArrayList();
list_school.add("新校区");
list_school.add("老校区");
if ((this.building.equalsIgnoreCase(""))
|| (this.building.equalsIgnoreCase("null"))) {
list_building.add("全部");
list_building.add("公教楼_A");
list_building.add("公教楼_B");
list_building.add("公教楼_C");
list_building.add("公教楼_D");
list_building.add("公教楼_E");
// TODO
String str1 = "3";
list_weeks.add("本周");
list_weeks.add("下一周");
String str2 = String.valueOf(1 + Integer.parseInt(str1));
list_weekday.add("星期日");
list_weekday.add("星期一");
list_weekday.add("星期二");
list_weekday.add("星期三");
list_weekday.add("星期四");
list_weekday.add("星期五");
list_weekday.add("星期六");
list_unit.add("全部");
list_unit.add("1-2节课");
list_unit.add("3-5节课");
list_unit.add("6-8节课");
list_unit.add("9-11节课");
list_unit.add("11-13节课");
this.weekdays = (String[]) list_weekday
.toArray(new String[list_weekday.size()]);
this.weeks = (String[]) list_weeks.toArray(new String[list_weeks
.size()]);
this.units = (String[]) list_unit.toArray(new String[list_unit
.size()]);
this.buildings = (String[]) list_building
.toArray(new String[list_building.size()]);
this.schools = (String[]) list_school
.toArray(new String[list_school.size()]);
return;
}
}
private void InitSpinnerList() {
this.adapter_School = new ArrayAdapter<String>(getApplicationContext(),
R.layout.item, schools);
this.spinner_school.setAdapter(adapter_School);
this.adapter_School
.setDropDownViewResource(R.layout.item);
this.spinner_school
.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
if(arg2==0){
school = "newCollege";
}else{
school = "oldCollege";
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
school = "新校区";
}
});
this.adapter_building = new ArrayAdapter<String>(getApplicationContext(),
R.layout.item, buildings);
this.spinner_building.setAdapter(adapter_building);
this.adapter_building
.setDropDownViewResource(R.layout.item);
this.spinner_building
.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
if(arg2==0){
building="all";
}else if(arg2==1){
building="A";
}else if(arg2==2){
building="B";
}else if(arg2==3){
building="C";
}else if(arg2==4){
building="D";
}else{
building="E";
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
building="all";
}
});
this.adapter_unit = new ArrayAdapter<String>(getApplicationContext(),
R.layout.item, units);
this.spinner_unit.setAdapter(adapter_unit);
this.adapter_unit
.setDropDownViewResource(R.layout.item);
this.spinner_unit
.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
if(arg2==0){
unit="all";
}else if(arg2==1){
unit="1";
}else if(arg2==2){
unit="3";
}else if(arg2==3){
unit="6";
}else if(arg2==4){
unit="9";
}else{
building="11";
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
unit="all";
}
});
this.adapter_weekday = new ArrayAdapter<String>(getApplicationContext(),
R.layout.item, weekdays);
this.spinner_weekday.setAdapter(adapter_weekday);
this.adapter_weekday
.setDropDownViewResource(R.layout.item);
this.spinner_weekday
.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
if(arg2==0){
weekday="sunday";
}else if(arg2==1){
weekday="monday";
}else if(arg2==2){
weekday="tuesday";
}else if(arg2==3){
weekday="wednsday";
}else if(arg2==4){
weekday="thursday";
}else if(arg2==5){
weekday="friday";
}else{
building="saturday";
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
weekday="sunday";
}
});
this.adapter_weeks = new ArrayAdapter<String>(getApplicationContext(),
R.layout.item, weeks);
this.spinner_weeks.setAdapter(adapter_weeks);
this.adapter_weeks
.setDropDownViewResource(R.layout.item);
this.spinner_weeks
.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
if(arg2==0){
week = "thisweek";
}else{
week = "nextweek";
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
week = "thisweek";
}
});
}
private void getMessage() {
ArrayList<ClassRoom> res = (ArrayList<ClassRoom>) new RoomDao(Show_FreedRoom.this)
.getFreeRoomMsg(false,school,building,week,weekday,unit);
LogUtil.i("从服务器请求数据", "从服务器传回数据");
if (res != null) {
LogUtil.i("从服务器传回数据", "从服务器传回数据");
ArrayList<ClassRoom> freerooms = (ArrayList<ClassRoom>) res;
for (ClassRoom c : freerooms){
ClassRoom classroom = new ClassRoom();
classroom.setBuilding(c.getBuilding());
classroom.setJc(c.getJc());
classroom.setRoomid(c.getRoomid());
classroom.setXiaoQu(c.getRoomid());
classroom.setXq(c.getXq());
classroom.setZc(c.getZc());
classroom.setRoomname(c.getRoomname());
roomlist.add(classroom);
}
} else
// TODO{
{
Toast.makeText(getApplicationContext(), "接口获取错误", Toast.LENGTH_LONG).show();
for(int i = 0 ; i < 10 ; i++){
ClassRoom classroom = new ClassRoom();
classroom.setBuilding("公教楼");
classroom.setJc("8~10节");
classroom.setRoomid("2");
classroom.setXiaoQu("新校区");
classroom.setXq("第十一周");
classroom.setZc("周三");
classroom.setRoomname("222");
roomlist.add(classroom);
}
}
}
private int getWeek() {
Calendar localCalendar = Calendar.getInstance();
localCalendar.setTime(new Date());
int i = -1 + localCalendar.get(7);
if (i < 0)
i = 0;
return i;
}
public void dismiss() {
this.selectPopupWindow.dismiss();
}
// @Override
// public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent) {
// if (paramInt == 4) {
// this.list_school.clear();
// this.list_building.clear();
// this.list_weeks.clear();
// this.list_weekday.clear();
// this.list_unit.clear();
// }
// return super.onKeyDown(paramInt, paramKeyEvent);
// }
//
// public void onWindowFocusChanged(boolean paramBoolean) {
// super.onWindowFocusChanged(paramBoolean);
// while (true) {
// if (this.flag)
// return;
// initWedget();
// this.flag = true;
// }
// }
private class MyAdapter extends BaseAdapter {
private MyAdapter(Object object) {
}
@Override
public int getCount() {
return Show_FreedRoom.this.roomlist.size();
}
@Override
public Object getItem(int paramInt) {
return Integer.valueOf(paramInt);
}
@Override
public long getItemId(int paramInt) {
return paramInt;
}
@Override
public View getView(int paramInt, View paramView,
ViewGroup paramViewGroup) {
paramView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.freeroom_item, null);
TextView mycollege = (TextView) paramView.findViewById(R.id.freeroom_college);
TextView mybuilding = (TextView) paramView.findViewById(R.id.freeroom_building);
TextView myweek = (TextView) paramView.findViewById(R.id.freeroom_week);
TextView myweekday = (TextView) paramView.findViewById(R.id.freeroom_weekday);
TextView myclass = (TextView) paramView.findViewById(R.id.freeroom_class);
TextView myroom = (TextView) paramView.findViewById(R.id.freeroom_room);
ClassRoom classroom = roomlist.get(paramInt);
System.out.print("这是输出的空闲教室"+classroom.toString());
mycollege.setText(classroom.getXiaoQu());
mybuilding.setText(classroom.getBuilding());
myweek.setText(classroom.getXq());
myweekday.setText(classroom.getZc());
myclass.setText(classroom.getJc());
myroom.setText(classroom.getRoomname());
return paramView;
}
}
private class SpinnerAdapter extends ArrayAdapter<String> {
Context context;
String[] items = new String[0];
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(-1, -2);
public SpinnerAdapter(Context paramInt, int layout, String[] arg4) {
super(paramInt, layout);
this.items = arg4;
this.context = paramInt;
}
@Override
public View getDropDownView(int paramInt, View paramView,
ViewGroup paramViewGroup) {
if (paramView == null)
paramView = LayoutInflater.from(this.context).inflate(
R.layout.option_item, paramViewGroup, false);
TextView localTextView = (TextView) paramView
.findViewById(R.id.item_text);
localTextView.setGravity(48);
localTextView.setTypeface(Typeface.DEFAULT, 0);
localTextView.setLayoutParams(this.params);
localTextView.setText(this.items[paramInt]);
localTextView.setTextColor(Color.rgb(136, 28, 237));
localTextView.setTextSize(12.0F);
return localTextView;
}
@Override
public View getView(int paramInt, View paramView,
ViewGroup paramViewGroup) {
if (paramView == null)
paramView = LayoutInflater.from(this.context).inflate(
R.layout.option_item, paramViewGroup, false);
TextView localTextView = (TextView) paramView
.findViewById(R.id.item_text);
localTextView.setGravity(48);
localTextView.setTypeface(Typeface.DEFAULT, 0);
localTextView.setLayoutParams(this.params);
localTextView.setText(this.items[paramInt]);
localTextView.setTextColor(Color.rgb(136, 28, 237));
localTextView.setTextSize(12.0F);
return localTextView;
}
}
@Override
protected void bindButton() {
findViewById(R.id.btn_back).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Show_FreedRoom.this.finish();
}
});
findViewById(R.id.btn_rquery).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Message msg = new Message();
msg.what=0;
msg.arg1 = 3;
myhandler.sendMessage(msg);
roomlist.removeAll(roomlist);
getMessage();//获得数据
adapter.notifyDataSetChanged();
LogUtil.i("请求的参数",school+"\n"+building+"\n"+week+"\n"+weekday+"\n"+unit);
}
});
}
Handler myhandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
if(msg.what==0&&msg.arg1 == 3){
initView();
}
}
};
}