From 2e5c0de21b0f35531e3d42e63c27df80cf3fad02 Mon Sep 17 00:00:00 2001 From: dam Date: Wed, 1 Dec 2021 02:26:44 +0000 Subject: Convert from native to godot --- .../example/surgerylog/FileOperationsFragment.java | 185 +++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100755 old_native_project/src/com/example/surgerylog/FileOperationsFragment.java (limited to 'old_native_project/src/com/example/surgerylog/FileOperationsFragment.java') diff --git a/old_native_project/src/com/example/surgerylog/FileOperationsFragment.java b/old_native_project/src/com/example/surgerylog/FileOperationsFragment.java new file mode 100755 index 0000000..512f02b --- /dev/null +++ b/old_native_project/src/com/example/surgerylog/FileOperationsFragment.java @@ -0,0 +1,185 @@ +package com.example.surgerylog; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Calendar; +import java.util.List; +import net.redroid.medlog.R; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; + +import com.csvreader.CsvReader; +import com.csvreader.CsvWriter; + +public class FileOperationsFragment extends Fragment { + /** + * The fragment argument representing the section number for this fragment. + */ + public static final String ARG_SECTION_NUMBER = "section_number"; + + MainActivity _activity; + + public FileOperationsFragment() { + } + + @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_file_operations, + container, false); + + return rootView; + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + // set import MedLog config button + Button importFile = (Button) getView().findViewById(R.id.importButton); + importFile.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + try { + // create csv values + CsvReader reader = new CsvReader( + _activity.TemplateDescriptionFile); + + // read headers + if (reader.readHeaders() == false) { + // could not read headers + //Log.e("Error", "Headers could not be read."); + } + + // copy back headers + String headers[] = reader.getHeaders(); + + // check number of headers + if (headers.length != _activity.ProcessDescriptionFileNumColumns) { + // number of headers is incorrect + //Log.e("Error", "CSV has incorrect number of headers."); + } else { + // everything seems nice.... lets rebuild the tree + _activity.Root = new MedLogRoot(); + } + + // read records + while (reader.readRecord() == true) { + // get record info into + MedLogInfo surgeryInfo = new MedLogInfo(reader + .get(headers[0]), // med type + reader.get(headers[1]), // med subtype + reader.get(headers[2]), // med sub-subtype + reader.get(headers[3]), // pathology + reader.get(headers[4]) // intervention + ); + + surgeryInfo.FirstAider = reader.get(headers[5]); // first + // aider + surgeryInfo.Anesthesia = reader.get(headers[6]); // anesthesia + surgeryInfo.Place = reader.get(headers[7]); // place + + // add info to grow tree + _activity.Root.GrowTreeWithInfo(surgeryInfo); + } + + // close csv reading file + reader.close(); + } catch (FileNotFoundException e) { + //Log.e("Error", "Config file not found."); + } catch (IOException e) { + //Log.e("Error", "Config file IO error."); + } + + _activity.SaveMedLogConfig(); + } + }); + + // set export data base button + Button exportDbBtn = (Button) getView().findViewById( + R.id.exportDataBase); + exportDbBtn.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + + //Log.e("Trace Export", "Exporting data"); + + CsvWriter writer = null; + boolean success = false; + try { + + //Log.e("Trace Export", "Trying to open file"); + + writer = new CsvWriter(_activity.ExportFile); + + //Log.e("Trace Export", "Writing headers"); + + // Write descriptive headers. + String[] headers = { "process number", "surgery number", + "date", "type", "subtype", "subsubtype", + "pathology", "intervention", "first aider", + "anesthesia", "place", "urgency", "notes" }; + writer.writeRecord(headers); + + //Log.e("Trace Export", "Writing records..."); + + // write all the records to CSV + String[] record = new String[headers.length]; + for (MedLogInfo log : _activity.DataBase) { + record[0] = log.ProcessNumber.toString(); + record[1] = log.SurgeryNumber.toString(); + record[2] = log.GetFormatedDate(); + record[3] = log.Type; + record[4] = log.SubType; + record[5] = log.SubSubType; + record[6] = log.Pathology; + record[7] = log.Intervention; + record[8] = log.FirstAider; + record[9] = log.Anesthesia; + record[10] = log.Place; + record[11] = _activity.getString(log.Urgency == true ? R.string.yes_str : R.string.no_str); + record[12] = log.Notes; + writer.writeRecord(record); + } + + String message = _activity.getString(R.string.exportMessage_str) + + "'" + + _activity.ExportFile + "'"; + _activity.ShowMessage(message); + + //Log.e("Trace Export", "Done"); + + success = true; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + writer.close(); + if (success == false) { + _activity.ShowMessage(R.string.exportMessageError_str); + } + } + } + }); + + super.onActivityCreated(savedInstanceState); + } +} -- cgit v1.2.3