Fixed path_edit gui export and import feature

Moved to json

Change-Id: I17adb2a2b5c8a12f0ca62df51c775ebcd610b58a
diff --git a/frc971/control_loops/python/path_edit.py b/frc971/control_loops/python/path_edit.py
index 9748a41..26b2cb2 100644
--- a/frc971/control_loops/python/path_edit.py
+++ b/frc971/control_loops/python/path_edit.py
@@ -1,6 +1,7 @@
 #!/usr/bin/python3
 from __future__ import print_function
 import os
+import sys
 import copy
 import basic_window
 from color import Color, palette
@@ -13,7 +14,7 @@
 from gi.repository import Gdk, Gtk, GLib
 import cairo
 import enum
-import csv  # For writing to csv files
+import json # For writing to json files
 
 from basic_window import OverrideMatrix, identity, quit_main_loop, set_color
 
@@ -124,6 +125,9 @@
         self.x = 0
         self.y = 0
 
+        module_path = os.path.dirname(os.path.realpath(sys.argv[0]))
+        self.path_to_export = os.path.join(module_path,
+            'points_for_pathedit.json')
         # update list of control points
         self.point_selected = False
         # self.adding_spline = False
@@ -335,40 +339,6 @@
                         cr.move_to(mToPx(point[0]), mToPx(point[1]) - 15)
                         display_text(cr, str(i), 0.5, 0.5, 2, 2)
 
-        elif self.mode == Mode.kExporting:
-            set_color(cr, palette["BLACK"])
-            cr.move_to(-300, 170)
-            display_text(cr, "VIEWING", 1, 1, 1, 1)
-            set_color(cr, palette["GREY"])
-
-            if len(self.selected_points) > 0:
-                print("SELECTED_POINTS: " + str(len(self.selected_points)))
-                print("ITEMS:")
-                # for item in self.selected_points:
-                #     print(str(item))
-                for i, point in enumerate(self.selected_points):
-                    # print("I: " + str(i))
-                    draw_px_x(cr, point[0], point[1], 10)
-                    cr.move_to(point[0], point[1] - 15)
-                    display_text(cr, str(i), 0.5, 0.5, 2, 2)
-
-        elif self.mode == Mode.kImporting:
-            set_color(cr, palette["BLACK"])
-            cr.move_to(-300, 170)
-            display_text(cr, "VIEWING", 1, 1, 1, 1)
-            set_color(cr, palette["GREY"])
-
-            if len(self.selected_points) > 0:
-                print("SELECTED_POINTS: " + str(len(self.selected_points)))
-                print("ITEMS:")
-                for item in self.selected_points:
-                    print(str(item))
-                for i, point in enumerate(self.selected_points):
-                    print("I: " + str(i))
-                    draw_px_x(cr, point[0], point[1], 10)
-                    cr.move_to(point[0], point[1] - 15)
-                    display_text(cr, str(i), 0.5, 0.5, 2, 2)
-
         elif self.mode == Mode.kConstraint:
             print("Drawn")
             set_color(cr, palette["BLACK"])
@@ -397,26 +367,22 @@
             print("Found q key and exiting.")
             quit_main_loop()
         if keyval == Gdk.KEY_e:
-            self.mode = Mode.kExporting
-            # Will export to csv file
-            with open('points_for_pathedit.csv', mode='w') as points_file:
-                writer = csv.writer(
-                    points_file,
-                    delimiter=',',
-                    quotechar='"',
-                    quoting=csv.QUOTE_MINIMAL)
-                for item in self.selected_points:
-                    writer.writerow([str(item[0]), str(item[1])])
-                    print("Wrote: " + str(item[0]) + " " + str(item[1]))
+            # Will export to json file
+            self.mode = Mode.kEditing
+            print(str(sys.argv))
+            print('out to: ', self.path_to_export)
+            exportList = [l.tolist() for l in self.splines]
+            with open(self.path_to_export, mode='w') as points_file:
+                json.dump(exportList, points_file)
+                print("Wrote: " + str(self.splines))
         if keyval == Gdk.KEY_i:
-            self.mode = Mode.kImporting
-            # import from csv file
+            # import from json file
+            self.mode = Mode.kEditing
             self.selected_points = []
-            with open('points_for_pathedit.csv') as points_file:
-                reader = csv.reader(points_file, delimiter=',')
-                for row in reader:
-                    self.add_point(float(row[0]), float(row[1]))
-                    print("Added: " + row[0] + " " + row[1])
+            self.splines = []
+            with open(self.path_to_export) as points_file:
+                self.splines = json.load(points_file)
+                print("Added: " + str(self.splines))
         if keyval == Gdk.KEY_p:
             self.mode = Mode.kPlacing
             # F0 = A1