import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'data_model.dart'; void main() { runApp(MaterialApp( title: 'Mobile Event Log', theme: ThemeData( primarySwatch: Colors.blue, ), initialRoute: '/', routes: { '/': (context) => Overview(), '/second': (context) => AddEvent(), '/third': (context) => ViewEvents(), '/forth': (context) => Configuration(), }, )); } class Overview extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('Mobile Event Log')), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround, children: <Widget>[ ElevatedButton( child: const Text('Add Event'), onPressed: () { Navigator.pushNamed(context, '/second'); }, ), ElevatedButton( child: const Text('View Added Events'), onPressed: () { Navigator.pushNamed(context, '/third'); }, ), ElevatedButton( child: const Text('Configuration'), onPressed: () { Navigator.pushNamed(context, '/forth'); }, ), ], )), ); } } class AddEvent extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("Add Event"), ), body: Center( child: ElevatedButton( onPressed: () { Navigator.pop(context); }, child: const Text('Back!'), ), ), bottomNavigationBar: Row( mainAxisAlignment: MainAxisAlignment.end, children: const [ FloatingActionButton( heroTag: null, onPressed: null, tooltip: 'Add Event locally', child: Icon(Icons.add), ) ], ), ); } } class ViewEvents extends StatelessWidget { // Add some dummy events: List<Event> events = [] ..add(Event( id: 8311, urn: 'station:neumayer_iii:awi_snow_sampler_1', label: 'SML_KO21_SC01', type: 'Deployment', description: 'Remi tool Tag1 1 Traverse', status: 'PENDING')) ..add(Event( id: 8311, urn: 'station:neumayer_iii:awi_snow_sampler_1', label: 'SML_KO21_SC01', type: 'Deployment', description: 'Remi tool Tag1 1 Traverse', status: 'PENDING')) ..add(Event( id: 8311, urn: 'station:neumayer_iii:awi_snow_sampler_1', label: 'SML_KO21_SC01', type: 'Deployment', description: 'Remi tool Tag1 1 Traverse', status: 'PENDING')); //for (var i = 0; i<100; i++){ // events.add(Event(id: i, urn: 'station:neumayer_iii:awi_snow_sampler_1', label: 'SML_KO21_SC01', type: 'Deployment', description: 'Remi tool Tag1 1 Traverse', status: 'PENDING')); //} @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("View Added Events"), ), body: SingleChildScrollView( scrollDirection: Axis.horizontal, child: SingleChildScrollView( scrollDirection: Axis.vertical, child: DataTable( columns: const <DataColumn>[ DataColumn( label: Text( 'Id', style: TextStyle(fontStyle: FontStyle.italic), ), ), DataColumn( label: Text( 'URN', style: TextStyle(fontStyle: FontStyle.italic), ), ), DataColumn( label: Text( 'Label', style: TextStyle(fontStyle: FontStyle.italic), ), ), DataColumn( label: Text( 'Type', style: TextStyle(fontStyle: FontStyle.italic), ), ), DataColumn( label: Text( 'Description', style: TextStyle(fontStyle: FontStyle.italic), ), ), DataColumn( label: Text( 'Status', style: TextStyle(fontStyle: FontStyle.italic), ), ), ], rows: <DataRow>[ for (var event in events) DataRow( cells: <DataCell>[ DataCell(Text(event.id.toString())), DataCell(Text(event.urn)), DataCell( TextFormField( initialValue: event.label, onFieldSubmitted: (val) { event.label = val; //Update Database }, ), ), DataCell(Text(event.type)), DataCell( TextFormField( initialValue: event.description, onFieldSubmitted: (val) { event.description = val; //Update Database }, ), ), DataCell( DropdownButtonFormField( //value: Text('abe'), items: <DropdownMenuItem>[ DropdownMenuItem( child: Text('abs'), value: Text('1'), ), DropdownMenuItem( child: Text('abc'), value: Text('1'), ), ], onChanged: null, ), ), ], ), ], ), ), ), ); } } class Configuration extends StatefulWidget { @override State<Configuration> createState() => _MyHomePageState(); } class _MyHomePageState extends State<Configuration> { int _counter = 0; int _factor = 1; String selectedValue = '1'; var available_items = [ '1', '10', '100', ]; late Future<String> eventTypes; @override void initState() { super.initState(); } void _incrementCounter() { setState(() { _counter = _counter + _factor; }); } void _decrementCounter() { setState(() { _counter = _counter - _factor; }); } void _resetCounter() { setState(() { _counter = 0; }); } void _getCollections() { setState(() {}); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Configuration'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ const Text( 'You have pushed the button this many times:', ), Text( '$_counter', style: Theme.of(context).textTheme.headline2, ), DropdownButton( value: selectedValue, icon: const Icon(Icons.keyboard_arrow_down), items: available_items.map((String available_items) { return DropdownMenuItem( value: available_items, child: Text(available_items), ); }).toList(), onChanged: (String? newValue) { setState(() { selectedValue = newValue!; _factor = int.parse(selectedValue); }); }, ), Text('blabla'), ], ), ), bottomNavigationBar: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ FloatingActionButton( heroTag: null, onPressed: _incrementCounter, tooltip: 'Increment', child: const Icon(Icons.add), ), FloatingActionButton( heroTag: null, onPressed: _decrementCounter, tooltip: 'Decrement', child: const Text('-'), ), FloatingActionButton( heroTag: null, onPressed: _resetCounter, tooltip: 'Reset to 0', child: const Icon(Icons.delete), ), FloatingActionButton( heroTag: null, onPressed: _getCollections, tooltip: 'Reset to 0', child: const Text('Update'), ), ], ), ); } }