| 
									
										
										
										
											2020-03-22 14:52:56 +01:00
										 |  |  | import 'package:flutter/material.dart'; | 
					
						
							| 
									
										
										
										
											2020-04-24 22:41:52 +02:00
										 |  |  | import 'package:musicus_database/musicus_database.dart'; | 
					
						
							| 
									
										
										
										
											2020-03-22 14:52:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | import '../backend.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class EnsembleEditor extends StatefulWidget { | 
					
						
							|  |  |  |   final Ensemble ensemble; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   EnsembleEditor({ | 
					
						
							|  |  |  |     this.ensemble, | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   _EnsembleEditorState createState() => _EnsembleEditorState(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class _EnsembleEditorState extends State<EnsembleEditor> { | 
					
						
							|  |  |  |   final nameController = TextEditingController(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   void initState() { | 
					
						
							|  |  |  |     super.initState(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (widget.ensemble != null) { | 
					
						
							|  |  |  |       nameController.text = widget.ensemble.name; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   Widget build(BuildContext context) { | 
					
						
							|  |  |  |     final backend = Backend.of(context); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return Scaffold( | 
					
						
							|  |  |  |       appBar: AppBar( | 
					
						
							|  |  |  |         title: Text('Ensemble'), | 
					
						
							|  |  |  |         actions: <Widget>[ | 
					
						
							|  |  |  |           FlatButton( | 
					
						
							|  |  |  |             child: Text('DONE'), | 
					
						
							|  |  |  |             onPressed: () async { | 
					
						
							|  |  |  |               final ensemble = Ensemble( | 
					
						
							|  |  |  |                 id: widget.ensemble?.id ?? generateId(), | 
					
						
							|  |  |  |                 name: nameController.text, | 
					
						
							|  |  |  |               ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-26 15:35:45 +02:00
										 |  |  |               await backend.client.putEnsemble(ensemble); | 
					
						
							| 
									
										
										
										
											2020-03-22 14:52:56 +01:00
										 |  |  |               Navigator.pop(context, ensemble); | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |           ) | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |       ), | 
					
						
							|  |  |  |       body: ListView( | 
					
						
							|  |  |  |         children: <Widget>[ | 
					
						
							|  |  |  |           Padding( | 
					
						
							|  |  |  |             padding: const EdgeInsets.all(16.0), | 
					
						
							|  |  |  |             child: TextField( | 
					
						
							|  |  |  |               controller: nameController, | 
					
						
							|  |  |  |               decoration: InputDecoration( | 
					
						
							|  |  |  |                 labelText: 'Name', | 
					
						
							|  |  |  |               ), | 
					
						
							|  |  |  |             ), | 
					
						
							|  |  |  |           ), | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |       ), | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |