From 697e1ba3c4cb0a96c4584f1553de368d46287ab7 Mon Sep 17 00:00:00 2001 From: dam Date: Tue, 30 Nov 2021 01:06:44 +0000 Subject: Initial commit. --- src/com/example/surgerylog/NewEntryFragment.java | 437 +++++++++++++++++++++++ 1 file changed, 437 insertions(+) create mode 100755 src/com/example/surgerylog/NewEntryFragment.java (limited to 'src/com/example/surgerylog/NewEntryFragment.java') diff --git a/src/com/example/surgerylog/NewEntryFragment.java b/src/com/example/surgerylog/NewEntryFragment.java new file mode 100755 index 0000000..522d76b --- /dev/null +++ b/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 spinnerValues) { + // create array adapter + ArrayAdapter adapter = new ArrayAdapter(getView() + .getContext(), + // android.R.layout.simple_spinner_dropdown_item, + R.layout.multiline_spinner_dropdown_item, spinnerValues); + + // sort spinner values + adapter.sort(new Comparator() { + 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)); + } + +} -- cgit v1.2.3