diff options
Diffstat (limited to 'old_native_project/src/com/example/surgerylog/FileOperationsFragment.java')
| -rwxr-xr-x | old_native_project/src/com/example/surgerylog/FileOperationsFragment.java | 185 |
1 files changed, 185 insertions, 0 deletions
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);
+ }
+}
|
