AdminMemView.java :  » UnTagged » smartresearch » com » andromeda » smartresearch » Android Open Source

Android Open Source » UnTagged » smartresearch 
smartresearch » com » andromeda » smartresearch » AdminMemView.java
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;
  }


}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.