package com.hyrt.cei.ui.ebook;
import java.util.ArrayList;
import java.util.List;
import com.hyrt.cei.R;
import com.hyrt.cei.adapter.GoodReportAdapter;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.dzb.ui.HomePageDZB;
import com.hyrt.cei.ui.ebook.view.MyListView;
import com.hyrt.cei.ui.ebook.view.MyListView.OnRefreshListener;
import com.hyrt.cei.util.MyTools;
import com.hyrt.cei.util.WriteOrRead;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.vo.ColumnEntry;
import com.hyrt.cei.vo.Report;
import com.hyrt.cei.webservice.service.Service;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
public class FindReportActivity extends BaseActivity implements OnClickListener {
private ImageView homePage, homeReport, goodsView, sortView, partView,
mianfeiReport, reportFind;
private EditText reportName;
private ImageButton back, bookSelf;
private ListView findList;
private ColumnEntry columnEntry;
private List<Report> reportData = new ArrayList<Report>();
private StringBuilder colIDs = null;
private GoodReportAdapter adapter;
private int pageSize = 1;
private LinearLayout loadProgressBar;
private TextView moreTextView;
private LinearLayout morelayout;
private LinearLayout prolayout;
List<Report> addReport;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 2) {
reportData.addAll(addReport);
if (adapter != null)
adapter.notifyDataSetChanged();
if (msg.arg1 < 20) {
moreTextView.setVisibility(View.GONE);
} else {
moreTextView.setVisibility(View.VISIBLE);
}
loadProgressBar.setVisibility(View.GONE);
} else if (msg.arg1 == 5) {
if (reportData.size() == 0)
MyTools.exitShow(FindReportActivity.this,
FindReportActivity.this.getWindow().getDecorView(),
"没有查到您需要的信息!");
if (reportData.size() >= 20
&& findList.getFooterViewsCount() == 0) {
addPageMore();
} else {
if(moreTextView != null)
moreTextView.setVisibility(View.VISIBLE);
}
adapter = new GoodReportAdapter(FindReportActivity.this,
reportData, findList);
findList.setAdapter(adapter);
reportFind.setEnabled(true);
} else {
loadProgressBar.setVisibility(View.GONE);
}
prolayout.setVisibility(View.GONE);
}
};
private void addPageMore() {
morelayout = (LinearLayout) LayoutInflater.from(this).inflate(
R.layout.list_page_load, null);
moreTextView = (TextView) morelayout.findViewById(R.id.more_id);
loadProgressBar = (LinearLayout) morelayout.findViewById(R.id.load_id);
moreTextView.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// 隐藏"加载更多"
moreTextView.setVisibility(View.GONE);
// 显示进度条
loadProgressBar.setVisibility(View.VISIBLE);
new Thread(new Runnable() {
@Override
public void run() {
// 加载模拟数据:下一页数据, 在正常情况下,上面的休眠是不需要,直接使用下面这句代码加载相关数据
try {
pageSize++;
String addBg = dataChange();
addReport = XmlUtil.parseReport(addBg);
// reportData.clear();
if (addReport.size() == 0) {
handler.sendEmptyMessage(1);
return;
}
Message msg = new Message();
msg.what = 2;
msg.arg1 = addReport.size();
handler.sendMessage(msg);
} catch (Exception e) {
MyTools.showPushXml(getApplicationContext());
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
});
findList.addFooterView(morelayout);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.yjbg_findreport);
overridePendingTransition(R.anim.push_in, R.anim.push_out);
columnEntry = ((CeiApplication) getApplication()).columnEntry;
initView();
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
prolayout.setVisibility(View.GONE);
}
private void initData() {
prolayout.setVisibility(View.VISIBLE);
if (((CeiApplication) getApplication()).isNet()) {
new Thread() {
@Override
public void run() {
if (!dataChange().equals("")) {
String sortBg = dataChange();
try {
reportData = XmlUtil.parseReport(sortBg);
WriteOrRead.write(sortBg, MyTools.nativeData,
"findReport.xml");
if (handler != null) {
Message msg = new Message();
msg.arg1 = 5;
msg.arg2 = XmlUtil.parseReport(sortBg).size();
handler.sendMessage(msg);
}
} catch (Exception e) {
MyTools.showPushXml(getApplicationContext());
e.printStackTrace();
}
}
}
}.start();
} else {
try {
reportData = XmlUtil.parseReport(WriteOrRead.read(
MyTools.nativeData, "findReport.xml"));
if (handler != null) {
Message msg = new Message();
msg.arg1 = 5;
msg.arg2 = reportData.size();
handler.sendMessage(msg);
}
} catch (Exception e) {
MyTools.showPushXml(getApplicationContext());
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private String dataChange() {
/*
* if(reportName.getText().toString().equals("")){ return ""; }
*/
ColumnEntry allColBg = columnEntry.getColByName(((CeiApplication) getApplication()).nowStart);
if (allColBg != null && allColBg.getId() != null
&& !allColBg.getId().equals("")) {
String allBgId = allColBg.getId();
colIDs = new StringBuilder();
List<ColumnEntry> allCol = columnEntry
.getEntryChildsForParent(allBgId);
for (ColumnEntry columnEntry : allCol) {
colIDs.append(columnEntry.getId() + ",");
}
if (colIDs != null && !colIDs.equals("")) {
SharedPreferences settings = getSharedPreferences(
"search_result", Activity.MODE_PRIVATE);
Editor editor = settings.edit();
editor.putString("history_report", reportName.getText()
.toString());
editor.commit();
String sortBg = Service.queryReportByName(colIDs.toString()
.substring(0, colIDs.toString().length() - 1), pageSize
+ "", reportName.getText().toString());
return sortBg;
}
}
return "";
}
private void initView() {
TextView title=(TextView)(findViewById(R.id.top).findViewById(R.id.title));
title.setText("报告搜索");
prolayout = (LinearLayout) findViewById(R.id.report_find_pro);
findList = (ListView) findViewById(R.id.lv_findbg);
reportFind = (ImageView) findViewById(R.id.yjbg_report_find_iv);
reportFind.setOnClickListener(this);
reportName = (EditText) findViewById(R.id.yjbg_report_find_et);
SharedPreferences settings = getSharedPreferences("search_result",
Activity.MODE_PRIVATE);
String historyStr = settings.getString("history_report", "");
reportName.setText(historyStr);
bookSelf = (ImageButton) (findViewById(R.id.top).findViewById(R.id.ib_bg_bookshelf));
bookSelf.setOnClickListener(this);
back = (ImageButton) (findViewById(R.id.top).findViewById(R.id.ib_bg_back));
back.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// if(ReadReportActivity.activitys!=null){
if (v == homeReport) {
// 阅读报告页
Intent intent = new Intent(this, ReadReportActivity.class);
startActivity(intent);
// saveActivity(ReadReportActivity.class);
} else if (v == goodsView) {
Intent intent = new Intent(this, GoodsReportActivity.class);
startActivity(intent);
// saveActivity(GoodsReportActivity.class);
// 精彩报告页
} else if (v == sortView) {
// 排序报告页
Intent intent = new Intent(this, SortReportActivity.class);
startActivity(intent);
// saveActivity(SortReportActivity.class);
} else if (v == partView) {
// 分类报告页
Intent intent = new Intent(this, PartitionReportActivity.class);
startActivity(intent);
// saveActivity(PartitionReportActivity.class);
} else if (v == mianfeiReport) {
// 免费报告
Intent intent = new Intent(this, MianfeiReportActivity.class);
startActivity(intent);
// saveActivity(MianfeiReportActivity.class);
} else if (v == homePage) {
// 首页
Intent intent = new Intent(this, HomePageDZB.class);
startActivity(intent);
// ReadReportActivity.activitys.clear();
} else if (v == back) {
// 返回键
this.finish();
} else if (v == bookSelf) {
// 右侧数据图片
Intent intent = new Intent(this, CeiShelfBookActivity.class);
startActivity(intent);
} else if (v == reportFind) {
// 查找
if (reportName.getText() == null
|| reportName.getText().toString().trim().equals(""))
return;
pageSize = 1;
reportData.clear();
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(reportName.getWindowToken(), 0);
initData();
reportFind.setEnabled(false);
}
}
@Override
protected void onRestart() {
if (adapter != null)
adapter.notifyDataSetChanged();
super.onRestart();
}
}