package com.andromeda.smartresearch;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
import com.andromeda.smartresearch.adapter.MemViewAdapter;
import com.andromeda.smartresearch.vo.MemberVO;
public class AdminMemView extends ListActivity implements OnClickListener{
Button btHome, btSearch;
EditText etSearch;
int currentPosition;
ProgressDialog pd;
ArrayList<MemberVO> memberList;
SharedPreferences preferences;
final static int MENU_HOME=Menu.FIRST;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuItem mi;
mi=menu.add(Menu.NONE, MENU_HOME, Menu.NONE, "");
mi.setIcon(android.R.drawable.ic_menu_myplaces);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch(item.getItemId()){
case MENU_HOME :
Intent intent=new Intent(AdminMemView.this, AdminMain.class);
startActivity(intent);
break;
}
return true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.admin_mem_view);
preferences=getSharedPreferences("LoginFile", MODE_PRIVATE);
etSearch=(EditText) findViewById(R.id.et_mem_search);
btHome=(Button) findViewById(R.id.btn_meminfo_go_home);
btSearch=(Button) findViewById(R.id.btn_meminfo_search);
btHome.setOnClickListener(this);
btSearch.setOnClickListener(this);
//
Spinner spinner=(Spinner) findViewById(R.id.SpinnerMemInfoView);
ArrayAdapter<CharSequence> adapterSpinner=ArrayAdapter.createFromResource(
this, R.array.category_meminfo, android.R.layout.simple_spinner_item);
adapterSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterSpinner);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
currentPosition=position;
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_meminfo_search:
String id="", name="", gender="", birth="";
String search = etSearch.getText().toString().trim();
String type=null;
switch (currentPosition) {
case 0: //
type="0";
id=search;
name=search;
gender=search;
birth=search;
break;
case 1: //
type="1";
name=search;
break;
case 2: //
type="2";
gender=search;
break;
case 3: //ID
type="3";
id=search;
break;
case 4: //
type="4";
birth=search;
break;
}
pd=ProgressDialog.show(AdminMemView.this, "", " .\n .");
connectServer(type, id, name, gender, birth);
break;
case R.id.btn_meminfo_go_home:
Intent intent=new Intent(AdminMemView.this, AdminMain.class);
startActivity(intent);
break;
}
}
private final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
pd.dismiss();
memberList= (ArrayList<MemberVO>) msg.getData().getSerializable("memberList");
MemViewAdapter adapter;
if(memberList.size()==0){
adapter = new MemViewAdapter(AdminMemView.this, R.layout.listview_meminfo_view, new ArrayList<MemberVO>());
} else {
adapter = new MemViewAdapter(AdminMemView.this, R.layout.listview_meminfo_view, memberList);
}
setListAdapter(adapter);
}
};
private void connectServer(String type, String id, String name, String gender,String birth) {
final String sendType=type;
final String sendID=id;
final String sendName=name;
final String sendGender=gender;
final String sendBirth=birth;
final ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
@Override
public String handleResponse(HttpResponse response)
throws ClientProtocolException, IOException {
ArrayList<MemberVO> memberList=new ArrayList<MemberVO>();
Log.i("ResponseHandler" , "handleResponse()");
HttpEntity entity = response.getEntity();
memberList = parsingData(entity.getContent());
Message message =handler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putSerializable("memberList", memberList);
message.setData(bundle);
handler.sendMessage(message);
return null;
}
};
new Thread (new Runnable() {
@Override
public void run() {
try {
String url="http://172.16.1.37:8080/SmartDB/membersearch.do";
HttpClient http = new DefaultHttpClient();
HttpParams params = http.getParams();
params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 5000);
// .
ArrayList<NameValuePair> sendSearchParam = new ArrayList<NameValuePair>();
sendSearchParam.add(new BasicNameValuePair("type", sendType));
sendSearchParam.add(new BasicNameValuePair("id", preferences.getString("id", "")));
sendSearchParam.add(new BasicNameValuePair("name", sendName));
sendSearchParam.add(new BasicNameValuePair("gender", sendGender));
sendSearchParam.add(new BasicNameValuePair("birth", sendBirth));
HttpPost httpPost = new HttpPost(url);
UrlEncodedFormEntity encodedFormEntity = new UrlEncodedFormEntity(sendSearchParam,"UTF-8");
httpPost.setEntity(encodedFormEntity);
http.execute(httpPost, responseHandler);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
protected ArrayList<MemberVO> parsingData(InputStream content) {
ArrayList<MemberVO> parsedMemberList = new ArrayList<MemberVO>();
try {
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(content);
Element root= document.getDocumentElement(); //membersearchlist
NodeList memberes=root.getElementsByTagName("member");
int item_count=memberes.getLength();
Log.i("asdqwqf", ""+item_count);
for(int i=0; i<item_count; i++){
MemberVO vo = new MemberVO();
Node member=memberes.item(i); //research
Element element = (Element) member;
NodeList childList = element.getChildNodes();
final int childCount = childList.getLength();
Node child = null;
String value = null;
String nodeName = null;
for(int j=0; j<childCount; j++){
child = childList.item(j);
if(child.getNodeType()==Node.ELEMENT_NODE){
nodeName = child.getNodeName();
value = child.getFirstChild().getNodeValue();
}else{
continue;
}
if(nodeName.equals("id")){
vo.setMemberID(value);
}else if(nodeName.equals("name")){
vo.setMemberName(value);
}else if(nodeName.equals("gender")){
vo.setMemberGender(value);
}else if(nodeName.equals("birth")){
vo.setMemberBirth(value);
}
}
parsedMemberList.add(vo);
}
} catch (Exception e) {
e.printStackTrace();
}
return parsedMemberList;
}
}
|