Skip to content
Snippets Groups Projects
Commit 5a88e760 authored by Maximilian Betz's avatar Maximilian Betz
Browse files

adding events locally works basically

parent 730d082f
No related branches found
No related tags found
No related merge requests found
......@@ -2,11 +2,29 @@ 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,
));
}
@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(
......@@ -16,9 +34,13 @@ class AddEvent extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
TextFormField(
initialValue: currentEvent.store.label,
decoration: const InputDecoration(
labelText: 'Label'
),
onChanged: (value) {
currentEvent.store.label = value;
},
),
DropdownButtonFormField(
value: currentEvent.store.type,
......@@ -37,26 +59,29 @@ class AddEvent extends StatelessWidget {
}
),
DropdownButtonFormField(
value: currentEvent.store.urn,
decoration: const InputDecoration(
labelText: 'URN',
),
items: [
DropdownMenuItem(
child: Text('ADCP'),
value: 'ADCP',
),
DropdownMenuItem(
child: Text('EM712'),
value: 'EM712',
)
],
items:
availableDevice.store.map((Device device) {
return DropdownMenuItem(
value: device.urn,
child: Text(device.urn),
);
}).toList(),
onChanged: (value) {
currentEvent.store.urn = value.toString();
}
),
TextFormField(
initialValue: currentEvent.store.description,
decoration: const InputDecoration(
labelText: 'Description'
),
onChanged: (value) {
currentEvent.store.description = value;
},
),
TextFormField(
decoration: const InputDecoration(
......@@ -76,7 +101,7 @@ class AddEvent extends StatelessWidget {
]),
bottomNavigationBar: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: const [
children: [
FloatingActionButton(
heroTag: null,
onPressed: null,
......@@ -86,7 +111,7 @@ class AddEvent extends StatelessWidget {
SizedBox(width: 50),
FloatingActionButton(
heroTag: null,
onPressed: null,
onPressed: _storeCurrentEvent,
tooltip: 'Add Event',
child: Icon(Icons.add),
),
......
import 'package:shared_preferences/shared_preferences.dart';
class Device{
int id;
String urn;
Device(this.id, this.urn);
factory Device.fromJson(Map<String, dynamic> parsedJson){
return Device( parsedJson['id'] as int,
parsedJson['urn'] as String);
}
@override
String toString(){
return '{ ${this.id}, ${this.urn} }';
}
}
class Event{
int id;
String urn;
......@@ -32,30 +49,33 @@ class Event{
}
}
abstract class EventStoreBase{
List<Event> store = [];
}
abstract class EventCurrentBase{
Event store = Event(0, 'urn0', '', '', '', 'PENDING');
}
class EventType{
int id;
String name;
EventType(
this.id,
this.name
);
this.id,
this.name
);
factory EventType.fromJson(Map<String, dynamic> parsedJson){
return EventType(parsedJson['id'] as int, parsedJson['name'] as String);
}
}
abstract class DeviceStoreBase{
List<Device> store = [];
}
abstract class EventStoreBase{
List<Event> store = [];
}
abstract class EventCurrentBase{
Event store = Event(0, 'urn0', '', '', '', 'PENDING');
}
abstract class EventTypeStoreBase{
List<EventType> store = [];
}
......@@ -94,4 +114,17 @@ class EventTypeStoreInstance extends EventTypeStoreBase{
EventTypeStoreInstance._internal(){
store = [];
}
}
class DeviceStoreInstance extends DeviceStoreBase{
static final DeviceStoreInstance _instance = DeviceStoreInstance._internal();
factory DeviceStoreInstance(){
return _instance;
}
DeviceStoreInstance._internal(){
store = [];
}
}
\ No newline at end of file
......@@ -12,19 +12,20 @@ void main() {
EventStoreInstance events = EventStoreInstance();
EventTypeStoreInstance eventTypes = EventTypeStoreInstance();
EventCurrentInstance currentEvent = EventCurrentInstance();
DeviceStoreInstance availableDevice = DeviceStoreInstance();
// Add some dummy devices
availableDevice.store.add(Device.fromJson({'id': 8311, 'urn':'station:neumayer_iii:awi_snow_sampler_1'}));
availableDevice.store.add(Device.fromJson({'id': 4086, 'urn':'acoustic_backscatter_sensor:test'}));
// Create current event as basis when starting add event widget
currentEvent.store.urn = 'ADCP';
currentEvent.store.urn = 'acoustic_backscatter_sensor:test';
currentEvent.store.id = 1234;
currentEvent.store.description = 'blabla';
currentEvent.store.label = 'PS129_ABC';
currentEvent.store.type = 'Deployment';
//Add some dummy events to eventstore
events.store.add(Event.fromJson({
'id': 8311,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment