aboutsummaryrefslogtreecommitdiff
path: root/old_native_project/src/com/example/surgerylog/NewEntryFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'old_native_project/src/com/example/surgerylog/NewEntryFragment.java')
-rwxr-xr-xold_native_project/src/com/example/surgerylog/NewEntryFragment.java437
1 files changed, 437 insertions, 0 deletions
diff --git a/old_native_project/src/com/example/surgerylog/NewEntryFragment.java b/old_native_project/src/com/example/surgerylog/NewEntryFragment.java
new file mode 100755
index 0000000..522d76b
--- /dev/null
+++ b/old_native_project/src/com/example/surgerylog/NewEntryFragment.java
@@ -0,0 +1,437 @@
+package com.example.surgerylog;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.SortedSet;
+import net.redroid.medlog.R;
+
+import android.R.color;
+import android.app.Activity;
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.content.Context;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.sax.TextElementListener;
+import android.support.v4.app.Fragment;
+import android.text.method.DateTimeKeyListener;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewDebug.FlagToString;
+import android.webkit.WebView.FindListener;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.DatePicker;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.AdapterView.OnItemSelectedListener;
+
+public class NewEntryFragment extends Fragment {
+ /**
+ * The fragment argument representing the section number for this fragment.
+ */
+ public static final String ARG_SECTION_NUMBER = "section_number";
+
+ private MainActivity _activity;
+
+ public NewEntryFragment() {
+ }
+
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+
+ // This makes sure that the container activity has implemented
+ // the callback interface. If not, it throws an exception
+ try {
+ _activity = (MainActivity) activity;
+ } catch (ClassCastException e) {
+ throw new ClassCastException(activity.toString()
+ + " must implement OnHeadlineSelectedListener");
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // get root view
+ View rootView = inflater.inflate(R.layout.fragment_new_entry,
+ container, false);
+
+ return rootView;
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ // get view
+ View view = getView();
+
+ // set TYPE spinner listener
+ Spinner typeSpinner = (Spinner) view.findViewById(R.id.medTypeSpinner);
+ typeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
+ // An item was selected. You can retrieve the selected item using
+ // parent.getItemAtPosition(pos)
+ @Override
+ public void onItemSelected(AdapterView<?> parent, View view,
+ int pos, long id) {
+ // get TYPE
+ MedLogType medType = _activity.Root.GetMedLogType(parent
+ .getSelectedItem().toString());
+
+ // set TYPE child spinner
+ SetSpinnerData(R.id.medSubTypeSpinner, medType.GetSubTypeList());
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView<?> arg0) {
+ // TODO Auto-generated method stub
+ }
+ });
+
+ // set SUBTYPE spinner listener
+ Spinner subTypeSpinner = (Spinner) view
+ .findViewById(R.id.medSubTypeSpinner);
+ subTypeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
+ // An item was selected. You can retrieve the selected item using
+ // parent.getItemAtPosition(pos)
+ @Override
+ public void onItemSelected(AdapterView<?> parent, View view,
+ int pos, long id) {
+ // get selected TYPE
+ Spinner typeSpinner = (Spinner) getView().findViewById(
+ R.id.medTypeSpinner);
+ String selectedType = typeSpinner.getSelectedItem().toString();
+ MedLogType medType = _activity.Root.GetMedLogType(selectedType);
+
+ // get selected SUBTYPE item
+ MedLogSubType medSubtype = medType.GetMedLogSubType(parent
+ .getSelectedItem().toString());
+
+ // set SUBTYPE children spinners
+ SetSpinnerData(R.id.medSubSubTypeSpinner,
+ medSubtype.GetSubSubTypeList());
+ SetSpinnerData(R.id.pathologySpinner,
+ medSubtype.GetPathologyList());
+ SetSpinnerData(R.id.interventionSpinner,
+ medSubtype.GetInterventionList());
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView<?> arg0) {
+ // TODO Auto-generated method stub
+ }
+ });
+
+ // set save entry button
+ Button saveBtn = (Button) getView().findViewById(R.id.saveButton);
+ saveBtn.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+
+ // if process number is missing... do not accept
+ if (((EditText) getView().findViewById(R.id.nProcess)).getText()
+ .toString().trim().isEmpty() == true) {
+ _activity.ShowMessage(R.string.errorMissingProcessNumber_str);
+ return;
+ }
+
+ // gather med log info
+ GatherMedLogInfo();
+
+ // apply overriden fields
+ if (OverrideIsActivate()) {
+ ApplyOverride();
+ }
+
+ // Log.e("Trace NewEntry", "All info collected");
+
+ _activity.AddNewEntry();
+
+ _activity.ShowMessage(R.string.successSavingEntry_str);
+
+ // reset all entries to the initial state
+ ResetAllEntries();
+
+ // Log.e("Trace NewEntry", "Entry saved");
+ }
+ });
+
+ // set override check box
+ CheckBox overrideCheck = (CheckBox) getView().findViewById(
+ R.id.overrideCheckBox);
+ overrideCheck.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View arg0) {
+ if (OverrideIsActivate()) {
+ ShowOverrideFields();
+ } else {
+ HideOverrideFields();
+ }
+ }
+ });
+
+ // set fill override text button
+ Button fillOverrideBtn = (Button) getView().findViewById(
+ R.id.fillOverrideButton);
+ fillOverrideBtn.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View arg0) {
+ FillOverrideFromSpinners();
+ }
+ });
+
+ // hide override fields
+ HideOverrideFields();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ // update type spinner based on current activity root
+ SetSpinnerData(R.id.medTypeSpinner, _activity.Root.GetTypeList());
+
+ // update first aider spinner
+ SetSpinnerData(R.id.firstAiderSpinner,
+ _activity.Root.GetFirstAiderList());
+
+ // update anesthesia spinner
+ SetSpinnerData(R.id.anesthesiaSpinner,
+ _activity.Root.GetAnesthesiaList());
+
+ // update place spinner
+ SetSpinnerData(R.id.placeSpinner, _activity.Root.GetPlaceList());
+ }
+
+ private void SetSpinnerData(int spinnerId, List<String> spinnerValues) {
+ // create array adapter
+ ArrayAdapter<String> adapter = new ArrayAdapter<String>(getView()
+ .getContext(),
+ // android.R.layout.simple_spinner_dropdown_item,
+ R.layout.multiline_spinner_dropdown_item, spinnerValues);
+
+ // sort spinner values
+ adapter.sort(new Comparator<String>() {
+ public int compare(String object1, String object2) {
+ return object1.compareTo(object2);
+ }
+ });
+
+ // get spinner
+ Spinner spinner = (Spinner) getView().findViewById(spinnerId);
+
+ // set adapter
+ spinner.setAdapter(adapter);
+ }
+
+ private Spinner GetSpinner(int spinnerId) {
+ return (Spinner) getView().findViewById(spinnerId);
+ }
+
+ private EditText GetEditText(int editTextId) {
+ return (EditText) getView().findViewById(editTextId);
+ }
+
+ private CheckBox GetCheckBox(int checkBoxId){
+ return (CheckBox) getView().findViewById(checkBoxId);
+ }
+
+ private String GetTextFromEditText(int editTextId) {
+ return ((EditText) getView().findViewById(editTextId)).getText().toString();
+ }
+
+ private Boolean OverrideIsActivate() {
+ return ((CheckBox) getView().findViewById(R.id.overrideCheckBox))
+ .isChecked();
+ }
+
+ private String GetTextFromSpinner(int spinnerId) {
+ Object item = ((Spinner) getView().findViewById(spinnerId)).getSelectedItem();
+ if (item != null)
+ return item.toString();
+ else
+ return "";
+ }
+
+ private void GatherMedLogInfo() {
+ // Log.e("Trace NewEntry", "Save requested...");
+
+ // collect med log info
+ _activity.CurrentInfo.ProcessNumber = Long
+ .parseLong(((EditText) getView().findViewById(R.id.nProcess))
+ .getText().toString());
+
+ // check if surgery number is empty
+ if (((EditText) getView().findViewById(R.id.nSurgery)).getText()
+ .toString().trim().isEmpty() == true) {
+ _activity.CurrentInfo.SurgeryNumber = (long) 0;
+ } else {
+ _activity.CurrentInfo.SurgeryNumber = Long
+ .parseLong(((EditText) getView()
+ .findViewById(R.id.nSurgery)).getText().toString());
+ }
+
+ // Log.e("Trace NewEntry", "Collected numbers");
+
+ DatePicker date = ((DatePicker) getView().findViewById(R.id.datePicker));
+ _activity.CurrentInfo.Date.set(date.getYear(), date.getMonth(),
+ date.getDayOfMonth());
+
+ // Log.e("Trace NewEntry", "Collected date");
+
+ // get spinners (avoid empty ones)
+ _activity.CurrentInfo.Type = GetTextFromSpinner(R.id.medTypeSpinner);
+ _activity.CurrentInfo.SubType = GetTextFromSpinner(R.id.medSubTypeSpinner);
+
+ _activity.CurrentInfo.SubSubType = GetTextFromSpinner(R.id.medSubSubTypeSpinner);
+ _activity.CurrentInfo.Pathology = GetTextFromSpinner(R.id.pathologySpinner);
+ _activity.CurrentInfo.Intervention = GetTextFromSpinner(R.id.interventionSpinner);
+ _activity.CurrentInfo.FirstAider = GetTextFromSpinner(R.id.firstAiderSpinner);
+ _activity.CurrentInfo.Anesthesia = GetTextFromSpinner(R.id.anesthesiaSpinner);
+ _activity.CurrentInfo.Place = GetTextFromSpinner(R.id.placeSpinner);
+ _activity.CurrentInfo.Urgency = ((CheckBox) getView().findViewById(
+ R.id.urgencyCheckBox)).isChecked();
+
+ _activity.CurrentInfo.Notes = GetTextFromEditText(R.id.notesText);
+ }
+
+ private void ResetAllEntries()
+ {
+ GetEditText(R.id.nProcess).setText("");
+ GetEditText(R.id.nSurgery).setText("");
+ GetEditText(R.id.placeOverride).setText("");
+ GetEditText(R.id.firstAiderOverride).setText("");
+ GetEditText(R.id.anesthesiaOverride).setText("");
+ GetEditText(R.id.medTypeOverride).setText("");
+ GetEditText(R.id.medSubTypeOverride).setText("");
+ GetEditText(R.id.medSubSubTypeOverride).setText("");
+ GetEditText(R.id.pathologyOverride).setText("");
+ GetEditText(R.id.interventionOverride).setText("");
+ GetCheckBox(R.id.urgencyCheckBox).setChecked(false);
+ GetCheckBox(R.id.overrideCheckBox).setChecked(false);
+ GetEditText(R.id.notesText).setText("");
+
+ // set default spinners
+ GetSpinner(R.id.medTypeSpinner).setSelection(0);
+ GetSpinner(R.id.firstAiderSpinner).setSelection(0);
+ GetSpinner(R.id.anesthesiaSpinner).setSelection(0);
+ GetSpinner(R.id.placeSpinner).setSelection(0);
+
+ // hide override
+ HideOverrideFields();
+ }
+
+ private void ApplyOverride() {
+ String value;
+
+ value = GetTextFromEditText(R.id.medTypeOverride);
+ if(value.isEmpty() == false)
+ {
+ _activity.CurrentInfo.Type = value;
+ }
+
+ value = GetTextFromEditText(R.id.medSubTypeOverride);
+ if(value.isEmpty() == false)
+ {
+ _activity.CurrentInfo.SubType = value;
+ }
+
+ value = GetTextFromEditText(R.id.medSubSubTypeOverride);
+ if(value.isEmpty() == false)
+ {
+ _activity.CurrentInfo.SubSubType = value;
+ }
+
+ value = GetTextFromEditText(R.id.pathologyOverride);
+ if(value.isEmpty() == false)
+ {
+ _activity.CurrentInfo.Pathology = value;
+ }
+
+ value = GetTextFromEditText(R.id.interventionOverride);
+ if(value.isEmpty() == false)
+ {
+ _activity.CurrentInfo.Intervention = value;
+ }
+
+ value = GetTextFromEditText(R.id.firstAiderOverride);
+ if(value.isEmpty() == false)
+ {
+ _activity.CurrentInfo.FirstAider = value;
+ }
+
+ value = GetTextFromEditText(R.id.anesthesiaOverride);
+ if(value.isEmpty() == false)
+ {
+ _activity.CurrentInfo.Anesthesia = value;
+ }
+
+ value = GetTextFromEditText(R.id.placeOverride);
+ if(value.isEmpty() == false)
+ {
+ _activity.CurrentInfo.Place = value;
+ }
+ }
+
+ private void HideOverrideFields() {
+ GetEditText(R.id.firstAiderOverride).setVisibility(View.GONE);
+ GetEditText(R.id.anesthesiaOverride).setVisibility(View.GONE);
+ GetEditText(R.id.placeOverride).setVisibility(View.GONE);
+ GetEditText(R.id.medTypeOverride).setVisibility(View.GONE);
+ GetEditText(R.id.medSubTypeOverride).setVisibility(View.GONE);
+ GetEditText(R.id.medSubSubTypeOverride).setVisibility(View.GONE);
+ GetEditText(R.id.pathologyOverride).setVisibility(View.GONE);
+ GetEditText(R.id.interventionOverride).setVisibility(View.GONE);
+
+ ((Button) getView().findViewById(R.id.fillOverrideButton)).setVisibility(View.GONE);
+ }
+
+ private void ShowOverrideFields()
+ {
+ SetOverrideProperties(R.id.firstAiderOverride);
+ SetOverrideProperties(R.id.anesthesiaOverride);
+ SetOverrideProperties(R.id.placeOverride);
+ SetOverrideProperties(R.id.medTypeOverride);
+ SetOverrideProperties(R.id.medSubTypeOverride);
+ SetOverrideProperties(R.id.medSubSubTypeOverride);
+ SetOverrideProperties(R.id.pathologyOverride);
+ SetOverrideProperties(R.id.interventionOverride);
+
+ ((Button) getView().findViewById(R.id.fillOverrideButton)).setVisibility(View.VISIBLE);
+ }
+
+ private void SetOverrideProperties(int exitTextId)
+ {
+ int overrideColor = Color.argb(128, 51, 181, 229);
+ EditText override;
+ override = GetEditText(exitTextId);
+ override.setVisibility(View.VISIBLE);
+ override.setBackgroundColor(overrideColor);
+ }
+
+ private void FillOverrideFromSpinners()
+ {
+ GetEditText(R.id.firstAiderOverride).setText(GetTextFromSpinner(R.id.firstAiderSpinner));
+ GetEditText(R.id.anesthesiaOverride).setText(GetTextFromSpinner(R.id.anesthesiaSpinner));
+ GetEditText(R.id.placeOverride).setText(GetTextFromSpinner(R.id.placeSpinner));
+ GetEditText(R.id.medTypeOverride).setText(GetTextFromSpinner(R.id.medTypeSpinner));
+ GetEditText(R.id.medSubTypeOverride).setText(GetTextFromSpinner(R.id.medSubTypeSpinner));
+ GetEditText(R.id.medSubSubTypeOverride).setText(GetTextFromSpinner(R.id.medSubSubTypeSpinner));
+ GetEditText(R.id.pathologyOverride).setText(GetTextFromSpinner(R.id.pathologySpinner));
+ GetEditText(R.id.interventionOverride).setText(GetTextFromSpinner(R.id.interventionSpinner));
+ }
+
+}