package com.hyrt.cei.ui.information;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.view.animation.Animation.AnimationListener;
import android.webkit.WebView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.Toast;
import com.hyrt.cei.R;
import com.hyrt.cei.adapter.CommonPopAdapter;
import com.hyrt.cei.adapter.InformationAdapter;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.ui.information.adapter.GridViewAdapter;
import com.hyrt.cei.ui.information.view.GGridView;
import com.hyrt.cei.util.MyTools;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.vo.ColumnEntry;
import com.hyrt.cei.vo.InfoNew;
import com.hyrt.cei.webservice.service.Service;
public class Information extends Activity implements OnClickListener,
OnItemClickListener {
private String loginName;
public static List<View> groupViews = new ArrayList<View>();
private String htmlHade = MyTools.newsHtml;
private ColumnEntry columnEntry;
private List<ColumnEntry> columnEntries = new ArrayList<ColumnEntry>();
private String adress;
private Intent intent;
private Boolean alreadBuy;
private Boolean canRead;
private List<funId> funIds;
private RelativeLayout rl;
private LinearLayout prolayout;
private static final int LEFT_LV = 1;
private static final int ALREADY_BUY = 2;
private String shuaxinId, shuaxinFunctionId, shuaxinNum;
// 刚进入页面默认的顶部菜单显示
private String loadCurrentParentId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.information);
SharedPreferences settings = getSharedPreferences("loginInfo",
Activity.MODE_PRIVATE);
loginName = settings.getString("LOGINNAME", "");
prolayout = (LinearLayout) findViewById(R.id.econ_data_pro);
overridePendingTransition(R.anim.push_in, R.anim.push_out);
alreadBuy = false;
canRead = false;
loadCurrentParentId = "";
// 为控件增加事件
columnEntry = ((CeiApplication) getApplication()).columnEntry;
intent = getIntent();
loadCurrentParentId = intent.getStringExtra("functionId");
shuaxinFunctionId = intent.getStringExtra("functionId");
shuaxinId = intent.getStringExtra("extra");
shuaxinNum = intent.getStringExtra("topNum");
refreshListData(columnEntry.getUserId(), ALREADY_BUY);
columnEntries.addAll(columnEntry.getEntryChildsForParent(columnEntry
.getColByName(InformationMainActivity.MODEL_NAME).getId()));
registEvent();
}
private void registEvent() {
findViewById(R.id.home).setOnClickListener(this);
findViewById(R.id.zjzx_zixun).setOnClickListener(this);
gGridView = (GGridView) findViewById(R.id.zjzx_info_gridview);
leftLv = (ListView) findViewById(R.id.list);
int num = Integer.parseInt(((Activity) this).getIntent()
.getStringExtra("topNum"));
if (num != 0) {
ColumnEntry columnEntry = columnEntries.remove(num);
columnEntries.add(0, columnEntry);
}
GridViewAdapter gridViewAdapter = new GridViewAdapter(this,
columnEntries);
gGridView.setAdapter(gridViewAdapter);
if (loadCurrentParentId != "")
for (int i = 0; i < columnEntries.size(); i++) {
if (columnEntries.get(i).getId().equals(loadCurrentParentId)) {
refreshListData(columnEntries.get(i).getId(), LEFT_LV);
}
}
gGridView.setOnItemClickListener(this);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
TranslateAnimation ta = new TranslateAnimation(0, -1000, 0, 0);
ta.setDuration(2000);
ta.setFillAfter(true);
ta.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation arg0) {
TranslateAnimation ta = new TranslateAnimation(-1000,
0, 0, 0);
ta.setDuration(2000);
ta.setFillAfter(true);
gGridView.setAnimation(ta);
ta.start();
}
});
gGridView.setAnimation(ta);
ta.start();
}
}, 500);
findViewById(R.id.zjzx_shoucang).setOnClickListener(this);
findViewById(R.id.zjzx_sousuo).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.zjzx_shoucang:
if (!loginName.equals("")) {
alertCommonListPop();
} else {
Toast.makeText(Information.this, "请登陆后查看!", Toast.LENGTH_SHORT)
.show();
}
break;
case R.id.home:
Information.this.finish();
break;
case R.id.zjzx_sousuo:
intent = new Intent(this, InfoSearchActivity.class);
startActivity(intent);
break;
case R.id.zjzx_zixun:
intent = new Intent(this, InformationMainActivity.class);
startActivity(intent);
break;
case R.id.common_listpop_edit:
prolayout.setVisibility(View.VISIBLE);
for (int i = 0; i < infoNews.size(); i++) {
infoNews.get(i).setIsCollect("0");
}
adapter.notifyDataSetChanged();
prolayout.setVisibility(View.GONE);
break;
case R.id.common_listpop_clear:
prolayout.setVisibility(View.VISIBLE);
Information.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Service.clearCollect(((CeiApplication) Information.this
.getApplication()).columnEntry.getUserId());
}
});
infoNews.clear();
adapter.notifyDataSetChanged();
prolayout.setVisibility(View.GONE);
break;
}
}
// 横向的菜单
private GGridView gGridView;
// 当前查询的业务资讯id
private String oldFunctionId = "";
// 当前查询的业务资讯id
private String currentFunctionId;
// 收藏列表弹出框
private PopupWindow popWin;
// 收藏列表listview
private ListView listView;
// 弹出框信息列表
private List<InfoNew> infoNews = new ArrayList<InfoNew>();
// 收藏列表适配器
private CommonPopAdapter adapter;
private void alertCommonListPop() {
prolayout.setVisibility(View.VISIBLE);
View popView = this.getLayoutInflater().inflate(
R.layout.common_list_pop, null);
listView = (ListView) popView
.findViewById(R.id.common_listpop_listview);
listView.setOnItemClickListener(this);
new Handler().post(new Runnable() {
@Override
public void run() {
Information.this.runOnUiThread(new Runnable() {
@Override
public void run() {
String result = Service
.queryCollect(((CeiApplication) Information.this
.getApplication()).columnEntry
.getUserId());
infoNews.clear();
XmlUtil.getNewsList(result, infoNews);
for (int i = 0; i < infoNews.size(); i++) {
infoNews.get(i).setIsCollect("1");
}
dataHandler.sendMessage(dataHandler.obtainMessage());
}
});
}
});
popView.findViewById(R.id.common_listpop_edit).setOnClickListener(this);
popView.findViewById(R.id.common_listpop_clear)
.setOnClickListener(this);
popView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
popWin.dismiss();
return false;
}
});
popWin = new PopupWindow(popView, LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
popWin.setFocusable(true);
popWin.showAtLocation(findViewById(R.id.full_view), Gravity.CENTER, 0,
0);
prolayout.setVisibility(View.GONE);
}
@Override
public void onItemClick(AdapterView<?> groupView, View arg1, int position,
long arg3) {
switch (groupView.getId()) {
case R.id.common_listpop_listview:
InfoNew new2 = infoNews.get(position);
String intentId = new2.getId();
// 跳转到详细页
intent = new Intent();
intent.putExtra("extra", intentId);
for (int i = 0; i < columnEntries.size(); i++) {
if (columnEntries.get(i).getId().equals(new2.getFunctionId())) {
intent.putExtra("topNum", i + "");
}
}
intent.putExtra("functionId", new2.getFunctionId());
intent.setClass(Information.this, Information.class);
if (infoNews.get(position).getIsfree().endsWith("1")) {
Information.this.finish();
Information.this.startActivity(intent);
} else {
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid()
.endsWith(infoNews.get(position).getFunctionId())) {
canRead = true;
break;
} else {
canRead = false;
}
}
if (canRead) {
Information.this.finish();
Information.this.startActivity(intent);
} else {
MyTools.exitShow(Information.this, getWindow()
.getDecorView(), "未购买该栏目!");
prolayout.setVisibility(View.GONE);
}
}
break;
case R.id.zjzx_info_gridview:
shuaxinNum = position + "";
shuaxinId = "";
String functionId = columnEntries.get(position).getId();
shuaxinFunctionId = columnEntries.get(position).getId();
currentFunctionId = functionId;
if (oldFunctionId.equals(currentFunctionId))
return;
prolayout.setVisibility(View.VISIBLE);
oldFunctionId = currentFunctionId;
if (funIds.size() != 0) {
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid().endsWith(oldFunctionId)) {
alreadBuy = true;
break;
} else {
alreadBuy = false;
}
}
}
for (int i = 0; i < groupView.getChildCount(); i++) {
rl = (RelativeLayout) groupView.getChildAt(i);
if (i == position)
((ImageView) rl.getChildAt(0))
.setImageResource(R.drawable.common_menubg_select);
else
((ImageView) rl.getChildAt(0)).setImageDrawable(null);
}
refreshListData(currentFunctionId, LEFT_LV);
break;
case R.id.list:
prolayout.setVisibility(View.VISIBLE);
for (View view : groupViews) {
view.setBackgroundDrawable(null);
}
arg1.setBackgroundColor(Color.WHITE);
groupViews.add(arg1);
// if (alreadBuy) {
if (((CeiApplication) getApplication()).isNet()) {
InfoNew newnow = news.get(position);
if (newnow.getIsfree().endsWith("1")) {
((WebView) findViewById(R.id.inf_web)).loadUrl(htmlHade
+ news.get(position).getId());
} else {
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid()
.endsWith(newnow.getFunctionId())) {
canRead = true;
break;
} else {
canRead = false;
}
}
if (canRead) {
((WebView) findViewById(R.id.inf_web)).loadUrl(htmlHade
+ news.get(position).getId());
} else {
MyTools.exitShow(Information.this, getWindow()
.getDecorView(), "未购买该栏目!");
}
}
} else {
((WebView) findViewById(R.id.inf_web)).loadDataWithBaseURL(
"about:blank", "现在是离线状态,请链接网络后获取数据!", "text/html",
"utf-8", null);
}
prolayout.setVisibility(View.GONE);
break;
}
}
// 资讯列表数据集合
private List<InfoNew> news = new ArrayList<InfoNew>();
// 视图通知器
private Handler dataHandler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
switch (msg.arg1) {
case LEFT_LV:
if (!((CeiApplication) getApplication()).isNet()) {
((WebView) findViewById(R.id.inf_web)).loadDataWithBaseURL(
"about:blank", "现在是离线状态,请链接网络后获取数据!", "text/html",
"utf-8", null);
prolayout.setVisibility(View.GONE);
} else {
if (news.isEmpty() || news.size() == 0) {
((WebView) findViewById(R.id.inf_web))
.loadDataWithBaseURL("about:blank",
"该栏目下没有资讯!", "text/html", "utf-8", null);
prolayout.setVisibility(View.GONE);
} else {
InformationAdapter adapter = new InformationAdapter(
Information.this, R.layout.info_left_list_item,
news, currentFunctionId, shuaxinId == null
|| shuaxinId.equals("")
|| shuaxinId.equals("more") ? news.get(
0).getId() : shuaxinId);
leftLv.setAdapter(adapter);
leftLv.setOnItemClickListener(Information.this);
prolayout.setVisibility(View.GONE);
if (intent.getStringExtra("extra").equals("more")) {
adress = htmlHade + news.get(0).getId();
shuaxinId = intent.getStringExtra("extra");
((WebView) findViewById(R.id.inf_web))
.loadUrl(adress);
} else if (intent.getStringExtra("extra").equals("")) {
adress = htmlHade + news.get(0).getId();
shuaxinId = intent.getStringExtra("extra");
((WebView) findViewById(R.id.inf_web))
.loadUrl(adress);
} else if (intent.getStringExtra("extra") == "") {
adress = htmlHade + news.get(0).getId();
shuaxinId = intent.getStringExtra("extra");
((WebView) findViewById(R.id.inf_web))
.loadUrl(adress);
} else if (shuaxinId == "") {
adress = htmlHade + news.get(0).getId();
shuaxinId = intent.getStringExtra("extra");
((WebView) findViewById(R.id.inf_web))
.loadUrl(adress);
} else {
adress = htmlHade + intent.getStringExtra("extra");
shuaxinId = intent.getStringExtra("extra");
((WebView) findViewById(R.id.inf_web))
.loadUrl(adress);
}
}
}
break;
default:
Information.this.adapter = new CommonPopAdapter(
Information.this,
R.layout.common_listpop_listview_item, infoNews);
listView.setAdapter(Information.this.adapter);
prolayout.setVisibility(View.GONE);
break;
}
}
};
// 左面的列表
private ListView leftLv;
private void refreshListData(final String functionId, final int operationId) {
news.clear();
prolayout.setVisibility(View.VISIBLE);
new Thread(new Runnable() {
@Override
public void run() {
String result = "";
switch (operationId) {
case LEFT_LV:
result = Service
.queryNewsByFunctionId(functionId, "40",
((CeiApplication) Information.this
.getApplication()).columnEntry
.getUserId());
XmlUtil.getNewsList(result, news);
Message message = dataHandler.obtainMessage();
message.arg1 = LEFT_LV;
dataHandler.sendMessage(message);
break;
case ALREADY_BUY:
result = Service.queryBuyNews(functionId);
try {
funIds = XmlUtil.queryBuyNews(result);
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
}).start();
}
}