From c91da2a76e0dee344791f44d79203fcf55ebea17 Mon Sep 17 00:00:00 2001
From: Maximilian Betz <Maximilian.Betz@awi.de>
Date: Tue, 15 Feb 2022 16:37:04 +0100
Subject: [PATCH] added lat long columns in viewevents

---
 lib/addevent.dart   | 19 ++++++++-----
 lib/viewevents.dart | 66 ++++++++++++++++++++++++++++++++++++---------
 2 files changed, 65 insertions(+), 20 deletions(-)

diff --git a/lib/addevent.dart b/lib/addevent.dart
index 9b0da63..6a2fc88 100644
--- a/lib/addevent.dart
+++ b/lib/addevent.dart
@@ -12,7 +12,7 @@ class AddEvent extends StatefulWidget {
 }
 
 class _AddEventPageState extends State<AddEvent>  {
-  bool disableGNSSEditing = true;
+  bool syncGNSSData = true;
   final List<bool> _isGNSSSelected = [true];
   late LocationPermission permission;
   late Position position;
@@ -39,7 +39,7 @@ class _AddEventPageState extends State<AddEvent>  {
       accuracy = position.accuracy;
 
 
-      if (disableGNSSEditing == true) {
+      if (syncGNSSData == true) {
         if(mounted){
         setState(() {
           //refresh UI on update
@@ -96,6 +96,7 @@ class _AddEventPageState extends State<AddEvent>  {
   void _storeCurrentEvent() {
     final EventStoreInstance storedEvents = EventStoreInstance();
     final EventCurrentInstance currentEvent = EventCurrentInstance();
+    currentEvent.store.status = "PENDING";
     storedEvents.store.add(
         Event(
           currentEvent.store.id,
@@ -104,6 +105,9 @@ class _AddEventPageState extends State<AddEvent>  {
           currentEvent.store.type,
           currentEvent.store.description,
           currentEvent.store.status,
+          currentEvent.store.latitude,
+          currentEvent.store.longitude,
+          currentEvent.store.elevation
         ));
   }
 
@@ -118,7 +122,7 @@ class _AddEventPageState extends State<AddEvent>  {
     final EventCurrentInstance currentEvent = EventCurrentInstance();
     String gnssStatusText = "";
 
-    if (true == disableGNSSEditing){
+    if (true == syncGNSSData){
       // Update current event coordinates from GNSS stream
       currentEvent.store.latitude = lat;
       currentEvent.store.longitude = long;
@@ -194,7 +198,7 @@ class _AddEventPageState extends State<AddEvent>  {
             ),
             TextField(
               readOnly: false,
-              enabled: !disableGNSSEditing,
+              enabled: !syncGNSSData,
               //controller: _controllerLat,
               controller: TextEditingController(text: currentEvent.store.latitude.toString()),
               decoration: const InputDecoration(
@@ -204,7 +208,7 @@ class _AddEventPageState extends State<AddEvent>  {
             ),
             TextField(
               readOnly: false,
-              enabled: !disableGNSSEditing,
+              enabled: !syncGNSSData,
               controller: TextEditingController(text: currentEvent.store.longitude.toString()),
               decoration: const InputDecoration(
                 labelText: 'Longitude',
@@ -213,7 +217,7 @@ class _AddEventPageState extends State<AddEvent>  {
             ),
             TextField(
               readOnly: false,
-              enabled: !disableGNSSEditing,
+              enabled: !syncGNSSData,
               controller: TextEditingController(text: currentEvent.store.elevation.toString()),
               decoration: const InputDecoration(
                 labelText: 'Elevation',
@@ -234,7 +238,8 @@ class _AddEventPageState extends State<AddEvent>  {
             onPressed: (int index) {
               setState(() {
                 _isGNSSSelected[index] = !_isGNSSSelected[index];
-                disableGNSSEditing = _isGNSSSelected[index];
+                syncGNSSData = _isGNSSSelected[index];
+                //TODO: cancel position stream if GNSS sync disabled here!
               });
             },
           ),
diff --git a/lib/viewevents.dart b/lib/viewevents.dart
index a4ab274..738a64a 100644
--- a/lib/viewevents.dart
+++ b/lib/viewevents.dart
@@ -47,6 +47,24 @@ class ViewEvents extends StatelessWidget {
                   style: TextStyle(fontStyle: FontStyle.italic),
                 ),
               ),
+              DataColumn(
+                label: Text(
+                  'Latitude',
+                  style: TextStyle(fontStyle: FontStyle.italic),
+                ),
+              ),
+              DataColumn(
+                label: Text(
+                  'Longitude',
+                  style: TextStyle(fontStyle: FontStyle.italic),
+                ),
+              ),
+              DataColumn(
+                label: Text(
+                  'Elevation',
+                  style: TextStyle(fontStyle: FontStyle.italic),
+                ),
+              ),
               DataColumn(
                 label: Text(
                   'Status',
@@ -62,6 +80,7 @@ class ViewEvents extends StatelessWidget {
                     DataCell(Text(event.urn)),
                     DataCell(
                       TextFormField(
+                        readOnly: true,
                         initialValue: event.label,
                         onFieldSubmitted: (val) {
                           event.label = val; //Update Database
@@ -71,6 +90,7 @@ class ViewEvents extends StatelessWidget {
                     DataCell(Text(event.type)),
                     DataCell(
                       TextFormField(
+                        readOnly: true,
                         initialValue: event.description,
                         onFieldSubmitted: (val) {
                           event.description = val; //Update Database
@@ -78,19 +98,39 @@ class ViewEvents extends StatelessWidget {
                       ),
                     ),
                     DataCell(
-                      DropdownButtonFormField(
-                        //value: Text('abe'),
-                        items: <DropdownMenuItem>[
-                          DropdownMenuItem(
-                            child: Text('abs'),
-                            value: Text('1'),
-                          ),
-                          DropdownMenuItem(
-                            child: Text('abc'),
-                            value: Text('1'),
-                          ),
-                        ],
-                        onChanged: null,
+                      TextFormField(
+                        readOnly: true,
+                        initialValue: event.latitude,
+                        onFieldSubmitted: (val) {
+                          event.latitude = val; //Update Database
+                        },
+                      ),
+                    ),
+                    DataCell(
+                      TextFormField(
+                        readOnly: true,
+                        initialValue: event.longitude,
+                        onFieldSubmitted: (val) {
+                          event.longitude = val; //Update Database
+                        },
+                      ),
+                    ),
+                    DataCell(
+                      TextFormField(
+                        readOnly: true,
+                        initialValue: event.elevation,
+                        onFieldSubmitted: (val) {
+                          event.elevation = val; //Update Database
+                        },
+                      ),
+                    ),
+                    DataCell(
+                      TextFormField(
+                        readOnly: true,
+                        initialValue: event.status,
+                        onFieldSubmitted: (val) {
+                          event.status = val; //Update Database
+                        },
                       ),
                     ),
                   ],
-- 
GitLab