/**
*
*/
package coolbuy360.searchhealth;
import java.util.HashMap;
import java.util.Map;
import coolbuy360.adapter.NomalSelectorAdapter;
import coolbuy360.dateview.DateDialog;
import coolbuy360.service.CommandResult;
import coolbuy360.service.CommonMethod;
import coolbuy360.service.TempDataPool;
import coolbuy360.service.Util;
import coolbuy360.service.searchApp;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
/**
* @author yangxc
* ��Ա����ʷ����
*/
public class MemberDiseaseInfo extends Activity {
EditText member_disease_info_edt_remarks;
TextView member_disease_info_txv_diagnosetime;
TextView member_disease_info_txv_diseasename;
TextView member_disease_info_txv_iscontagious;
TextView member_disease_info_txv_ishereditary;
Map<String, String> diseaseInfoMap = new HashMap<String, String>();
String action = "add";
String diseaseType = "all";
int position = -1;
Bundle rootBundle;
private Dialog pBarcheck;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.member_disease_info);
// Ϊ�˳�����
searchApp.getInstance().addActivity(this);
// ���÷��ذ�ť
ImageButton actionbar_pre_btn = (ImageButton) this
.findViewById(R.id.actionbar_pre_btn);
actionbar_pre_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MemberDiseaseInfo.this.finish();
}
});
// ��ȡ����ؼ�
// ������
member_disease_info_edt_remarks = (EditText) this
.findViewById(R.id.member_disease_info_edt_remarks);
// ѡ����
member_disease_info_txv_diagnosetime = (TextView) this
.findViewById(R.id.member_disease_info_txv_diagnosetime);
member_disease_info_txv_diseasename = (TextView) this
.findViewById(R.id.member_disease_info_txv_diseasename);
member_disease_info_txv_iscontagious = (TextView) this
.findViewById(R.id.member_disease_info_txv_iscontagious);
member_disease_info_txv_ishereditary = (TextView) this
.findViewById(R.id.member_disease_info_txv_ishereditary);
// ѡ����������
LinearLayout member_disease_info_item_diagnosetime = (LinearLayout) this
.findViewById(R.id.member_disease_info_item_diagnosetime);
LinearLayout member_disease_info_item_diseasename = (LinearLayout) this
.findViewById(R.id.member_disease_info_item_diseasename);
LinearLayout member_disease_info_item_iscontagious = (LinearLayout) this
.findViewById(R.id.member_disease_info_item_iscontagious);
LinearLayout member_disease_info_item_ishereditary = (LinearLayout) this
.findViewById(R.id.member_disease_info_item_ishereditary);
Button actionbar_save_btn = (Button) this
.findViewById(R.id.actionbar_save_btn);
actionbar_save_btn.setOnClickListener(new onSaveBtnClick());
// ע����Ч��
member_disease_info_item_diagnosetime.setOnTouchListener(new CommonMethod.setOnPressed());
member_disease_info_item_diseasename.setOnTouchListener(new CommonMethod.setOnPressed());
member_disease_info_item_iscontagious.setOnTouchListener(new CommonMethod.setOnPressed());
member_disease_info_item_ishereditary.setOnTouchListener(new CommonMethod.setOnPressed());
// ��ѡ��ȷ��ʱ�䡱���
member_disease_info_item_diagnosetime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
final DateDialog datedialogtest = new DateDialog(
MemberDiseaseInfo.this);
datedialogtest.setCustomerDate(false);
// datedialogtest.setYear(true, 1911);
String diagnosetime = diseaseInfoMap.get("diagnosetime");
if(diagnosetime!=null && !diagnosetime.equals("")) {
datedialogtest.setCustomerDate(diagnosetime, "yyyy-MM-dd hh:mm:ss");
}
datedialogtest.setTitle("��ѡ��ȷ��ʱ��");
datedialogtest.show();
datedialogtest.setOkListener("ȷ��", new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String time = datedialogtest.getDateTime("yyyy-MM-dd");
CommonMethod.setSelectFieldText(
member_disease_info_txv_diagnosetime, time);
diseaseInfoMap.put("diagnosetime",
Util.getDateFormat(time,
"yyyy-MM-dd hh:mm:ss",
"yyyy-MM-dd"));
}
});
}
});
// ��ѡ�����ơ����
member_disease_info_item_diseasename.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
CommonMethod.clearFocuse(MemberDiseaseInfo.this);
Intent intent = new Intent().setClass(MemberDiseaseInfo.this,
SHInputSelector.class);
// ʵ�����б�����Դ��������
NomalSelectorAdapter adapter =
new NomalSelectorAdapter(MemberDiseaseInfo.this,
CommonMethod.getDiseaseNamesSource());
// ���������йܵ���ʱ���ݳ�
String adapterkey = TempDataPool.putAdapter(adapter);
// ������������ΨһKey��ѡ����ҳ��
intent.putExtra("adapterkey", adapterkey);
intent.putExtra("title", "ѡ������");
intent.putExtra("fieldname", "��������");
// �����ֶ���������
intent.putExtra("maxlen", 50);
// ���뵱ǰֵ
String nowValue = diseaseInfoMap.get("diseasename");
if (nowValue != null && !(nowValue.equals(""))) {
intent.putExtra("nowvalue", nowValue);
}
// ����requestCodeΪ��Ӧ���ֶ�
startActivityForResult(intent, Fields.DiseaseName);
}
});
// ��ѡ���Ƿ�Ⱦ�������
member_disease_info_item_iscontagious.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
CommonMethod.clearFocuse(MemberDiseaseInfo.this);
Intent intent = new Intent().setClass(MemberDiseaseInfo.this,
SHValueSelector.class);
// ʵ�����б�����Դ��������
NomalSelectorAdapter adapter =
new NomalSelectorAdapter(MemberDiseaseInfo.this,
CommonMethod.getYesNoSource());
// ���������йܵ���ʱ���ݳ�
String adapterkey = TempDataPool.putAdapter(adapter);
// ������������ΨһKey��ѡ����ҳ��
intent.putExtra("adapterkey", adapterkey);
intent.putExtra("title", "ѡ���Ƿ�Ⱦ��");
// ����requestCodeΪ��Ӧ���ֶ�
startActivityForResult(intent, Fields.IsContagious);
}
});
// ��ѡ���Ƿ��Ŵ��������
member_disease_info_item_ishereditary.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
CommonMethod.clearFocuse(MemberDiseaseInfo.this);
Intent intent = new Intent().setClass(MemberDiseaseInfo.this,
SHValueSelector.class);
// ʵ�����б�����Դ��������
NomalSelectorAdapter adapter =
new NomalSelectorAdapter(MemberDiseaseInfo.this,
CommonMethod.getYesNoSource());
// ���������йܵ���ʱ���ݳ�
String adapterkey = TempDataPool.putAdapter(adapter);
// ������������ΨһKey��ѡ����ҳ��
intent.putExtra("adapterkey", adapterkey);
intent.putExtra("title", "ѡ���Ƿ��Ŵ���");
// ����requestCodeΪ��Ӧ���ֶ�
startActivityForResult(intent, Fields.IsHereditary);
}
});
TextView actionbar_page_title=(TextView)this.findViewById(R.id.actionbar_page_title);
rootBundle = getIntent().getExtras();
diseaseType = rootBundle.getString("diseasetype");
if(diseaseType.equals("contagious") || diseaseType.equals("hereditary")) {
member_disease_info_item_iscontagious.setVisibility(View.GONE);
member_disease_info_item_ishereditary.setVisibility(View.GONE);
}
String titleString = "����";
if(diseaseType.equals("contagious")) {
titleString = "��Ⱦ��";
} else if (diseaseType.equals("hereditary")) {
titleString = "�Ŵ���";
}
action = rootBundle.getString("action");
if (action.equals("add")) {
actionbar_page_title.setText("����" + titleString + "��¼");
if(diseaseType.equals("contagious")) {
diseaseInfoMap.put("iscontagious", "1");
diseaseInfoMap.put("ishereditary", "0");
} else if (diseaseType.equals("hereditary")) {
diseaseInfoMap.put("iscontagious", "0");
diseaseInfoMap.put("ishereditary", "1");
} else {
diseaseInfoMap.put("iscontagious", "0");
diseaseInfoMap.put("ishereditary", "0");
CommonMethod.setSelectFieldText(member_disease_info_txv_iscontagious, "��");
CommonMethod.setSelectFieldText(member_disease_info_txv_ishereditary, "��");
}
} else {
actionbar_page_title.setText("��" + titleString + "��¼");
String diseaseid = rootBundle.getString("id");
position = rootBundle.getInt("position");
new AsyncLoadInfo().execute(diseaseid);
}
}
/**
* �����ϼ�ҳ�洫�������ݻ�ȡInfo��Ϣ
* @return
*/
private Map<String, String> getDiseaseInfo() {
Map<String, String> infoMap = new HashMap<String, String>();
infoMap.put("id", rootBundle.getString("id"));
infoMap.put("diagnosetime", Util
.getDateFormat(rootBundle.getString("diagnosetime"),
"yyyy-MM-dd hh:mm:ss",
"yyyy/MM/dd hh:mm:ss"));
infoMap.put("diseasename", rootBundle.getString("diseasename"));
infoMap.put("iscontagious", rootBundle.getString("iscontagious"));
infoMap.put("ishereditary", rootBundle.getString("ishereditary"));
infoMap.put("remarks", rootBundle.getString("remarks"));
return infoMap;
}
/**
* �������ݳ�ʼ������ֵ
* @param infoMap
*/
private void InitViewData(Map<String, String> infoMap) {
String diseasename = infoMap.get("diseasename");
String diagnosetime = infoMap.get("diagnosetime");
String iscontagious = infoMap.get("iscontagious");
String ishereditary = infoMap.get("ishereditary");
String remarks = infoMap.get("remarks");
if(diseasename!=null && !diseasename.equals("")){
CommonMethod.setSelectFieldText(member_disease_info_txv_diseasename, diseasename);
}
if(diagnosetime!=null && !diagnosetime.equals("")){
CommonMethod.setSelectFieldText(
member_disease_info_txv_diagnosetime, Util
.getDateFormat(diagnosetime,
"yyyy-MM-dd",
"yyyy-MM-dd hh:mm:ss"));
}
if(iscontagious!=null && !iscontagious.equals("")){
CommonMethod.setSelectFieldText(
member_disease_info_txv_iscontagious,
iscontagious.equals("1") ? "��" : "��");
}
if(ishereditary!=null && !ishereditary.equals("")){
CommonMethod.setSelectFieldText(
member_disease_info_txv_ishereditary,
ishereditary.equals("1") ? "��" : "��");
}
if(remarks!=null && !remarks.equals("")){
member_disease_info_edt_remarks.setText(remarks);
}
}
/**
* �첽��������
*/
private class AsyncLoadInfo extends AsyncTask<String, Void, Integer> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
pBarcheck = new Dialog(MemberDiseaseInfo.this, R.style.dialog);
pBarcheck.setContentView(R.layout.custom_progress);
pBarcheck.setCancelable(true);
pBarcheck.show();
super.onPreExecute();
}
@Override
protected Integer doInBackground(String... params) {
// TODO Auto-generated method stub
try {
diseaseInfoMap = getDiseaseInfo();
if (diseaseInfoMap != null) {
return 0;
} else {
return 2;
}
} catch (Exception e) {
return 2;
}
}
@Override
protected void onPostExecute(Integer result) {
// TODO Auto-generated method stub
if (result == 0) {
InitViewData(diseaseInfoMap);
pBarcheck.cancel();
} else {
pBarcheck.cancel();
Toast.makeText(MemberDiseaseInfo.this, "���ݼ��ش���", Toast.LENGTH_LONG).show();
}
//super.onPostExecute(result);
}
}
// ���水ť����¼�
private final class onSaveBtnClick implements OnClickListener {
@Override
public void onClick(View v) {
String remarks = member_disease_info_edt_remarks.getText().toString().trim();
diseaseInfoMap.put("remarks", remarks);
new AsyncSave().execute();
}
}
/**
* �첽�����¼
*/
private class AsyncSave extends AsyncTask<String, Void, CommandResult> {
protected void onPreExecute() {
// TODO Auto-generated method stub
pBarcheck = new Dialog(MemberDiseaseInfo.this, R.style.dialog);
pBarcheck.setContentView(R.layout.custom_progress);
pBarcheck.setCancelable(true);
pBarcheck.show();
super.onPreExecute();
}
@Override
protected CommandResult doInBackground(String... params) {
// TODO Auto-generated method stub
CommandResult result = new CommandResult(false, "δ֪������ʧ�ܡ�");
try {
if (action.equals("add")) {
result = coolbuy360.logic.MemberDisease
.insert(diseaseInfoMap);
} else {
result = coolbuy360.logic.MemberDisease
.update(diseaseInfoMap);
}
return result;
} catch (Exception e) {
// TODO Auto-generated catch block
return result;
}
}
@Override
protected void onPostExecute(CommandResult result) {
// TODO Auto-generated method stub
if (result.getResult())// �������ɹ�
{
pBarcheck.cancel();
Toast.makeText(getBaseContext(), result.getMessage(), Toast.LENGTH_SHORT).show();
Intent resultIntent = new Intent();
if (action.equals("add")) {
} else {
resultIntent.putExtra("position", position);
resultIntent.putExtra("diagnosetime", Util
.getDateFormat(diseaseInfoMap.get("diagnosetime"),
"yyyy/MM/dd hh:mm:ss",
"yyyy-MM-dd hh:mm:ss"));
resultIntent.putExtra("diseasename", diseaseInfoMap.get("diseasename"));
resultIntent.putExtra("iscontagious", diseaseInfoMap.get("iscontagious"));
resultIntent.putExtra("ishereditary", diseaseInfoMap.get("ishereditary"));
resultIntent.putExtra("remarks", diseaseInfoMap.get("remarks"));
}
MemberDiseaseInfo.this.setResult(RESULT_OK, resultIntent);
MemberDiseaseInfo.this.finish();
} else {
pBarcheck.cancel();
Toast.makeText(getBaseContext(), result.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
// ����resultCode����ͬ����·��ص�ֵ
switch (requestCode) {
case Fields.DiseaseName: {
String resultKey = data.getExtras().getString("resultkey");
// ͨ��ѡ�������ص�ΨһKey����ʱ���ݳػ�ȡ��Ӧ��������
Object resultObject = TempDataPool.getSelectorResult(resultKey);
if (resultObject != null) {
Map<String, String> resultMap = (Map<String, String>) resultObject;
String resultString = resultMap.get("text");
CommonMethod.setSelectFieldText(member_disease_info_txv_diseasename, resultString);
diseaseInfoMap.put("diseasename", resultString);
}
// ����������ʹ��������ʱ���ݳ�����
TempDataPool.destroySelectorResult(resultKey);
break;
}
case Fields.DiagnoseTime: {
break;
}
case Fields.IsContagious: {
String resultKey = data.getExtras().getString("resultkey");
// ͨ��ѡ�������ص�ΨһKey����ʱ���ݳػ�ȡ��Ӧ��������
Object resultObject = TempDataPool.getSelectorResult(resultKey);
if (resultObject != null) {
Map<String, String> resultMap = (Map<String, String>) resultObject;
String resultString = resultMap.get("text");
CommonMethod.setSelectFieldText(member_disease_info_txv_iscontagious, resultString);
diseaseInfoMap.put("iscontagious", resultMap.get("value"));
}
// ����������ʹ��������ʱ���ݳ�����
TempDataPool.destroySelectorResult(resultKey);
break;
}
case Fields.IsHereditary: {
String resultKey = data.getExtras().getString("resultkey");
// ͨ��ѡ�������ص�ΨһKey����ʱ���ݳػ�ȡ��Ӧ��������
Object resultObject = TempDataPool.getSelectorResult(resultKey);
if (resultObject != null) {
Map<String, String> resultMap = (Map<String, String>) resultObject;
String resultString = resultMap.get("text");
CommonMethod.setSelectFieldText(member_disease_info_txv_ishereditary, resultString);
diseaseInfoMap.put("ishereditary", resultMap.get("value"));
}
// ����������ʹ��������ʱ���ݳ�����
TempDataPool.destroySelectorResult(resultKey);
break;
}
default:
break;
}
} else if (resultCode == RESULT_CANCELED) { // �������ء�
}
}
/**
* ���嵱ǰҳ����ѡ�����͵��ֶα�ʶ
* @author yangxc
*
*/
private class Fields {
public static final int DiagnoseTime = 1;
public static final int DiseaseName = 2;
public static final int IsContagious = 3;
public static final int IsHereditary = 4;
}
}