Newer
Older
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'datamodel.dart';
class AddEvent extends StatelessWidget {
void _storeCurrentEvent() {
final EventStoreInstance storedEvents = EventStoreInstance();
final EventCurrentInstance currentEvent = EventCurrentInstance();
storedEvents.store.add(
Event(
currentEvent.store.id,
currentEvent.store.urn,
currentEvent.store.label,
currentEvent.store.type,
currentEvent.store.description,
currentEvent.store.status,
));
}
//TODO: add field validators for freetext fields. Check allowed characters in sensor.awi.de
//TODO: (Description, Label, Latitude, Longitude, Elevation, )
@override
Widget build(BuildContext context) {
/* Get singletons to access relevant data here.*/
final EventTypeStoreInstance eventTypes = EventTypeStoreInstance();
final DeviceStoreInstance availableDevice = DeviceStoreInstance();
final EventStoreInstance storedEvents = EventStoreInstance();
final EventCurrentInstance currentEvent = EventCurrentInstance();
return Scaffold(
appBar: AppBar(title: const Text("Add Event")),
body:
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
TextFormField(
initialValue: currentEvent.store.label,
decoration: const InputDecoration(
labelText: 'Label'
),
onChanged: (value) {
currentEvent.store.label = value;
},
),
DropdownButtonFormField(
decoration: const InputDecoration(
labelText: 'Event Type',
),
items:
eventTypes.store.map((EventType event) {
return DropdownMenuItem(
value: event.name,
child: Text(event.name),
);
}).toList(),
currentEvent.store.type = value.toString();
}
),
DropdownButtonFormField(
decoration: const InputDecoration(
labelText: 'URN',
),
items:
availableDevice.store.map((Device device) {
return DropdownMenuItem(
value: device.urn,
child: Text(device.urn),
);
}).toList(),
currentEvent.store.urn = value.toString();
currentEvent.store.id = availableDevice.getDeviceIdFromUrn(value.toString());
initialValue: currentEvent.store.description,
decoration: const InputDecoration(
labelText: 'Description'
),
onChanged: (value) {
currentEvent.store.description = value;
},
),
TextFormField(
decoration: const InputDecoration(
labelText: 'Latitude'
),
),
TextFormField(
decoration: const InputDecoration(
labelText: 'Longitude'
),
),
TextFormField(
decoration: const InputDecoration(
labelText: 'Elevation'
),
)
]),
bottomNavigationBar: Row(
mainAxisAlignment: MainAxisAlignment.end,
FloatingActionButton(
heroTag: null,
onPressed: null,
tooltip: 'Get GNSS from device',
child: Icon(Icons.my_location),
),
SizedBox(width: 50),
FloatingActionButton(
heroTag: null,