import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; class Collection { final int id; final String description; final String collectionName; const Collection({ required this.id, required this.description, required this.collectionName, }); factory Collection.fromJson(Map<String, dynamic> json) { return Collection( id: json['id'], collectionName: json['collectionName'], description: json['description'], ); } } Future<Collection> fetchCollection() async { print("Start HTTP GET++##"); final response = await http .get(Uri.parse('https://sensor.awi.de/rest/sensors/collections/getCollection/22')); if (response.statusCode == 200) { // If the server did return a 200 OK response, // then parse the JSON. return Collection.fromJson(jsonDecode(response.body)); } else { // If the server did not return a 200 OK response, // then throw an exception. throw Exception('Failed to load Collection'); } } 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<Collection> futureCollection; @override void initState() { super.initState(); futureCollection = fetchCollection(); } late Future<String> eventTypes; 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); }); }, ), FutureBuilder<Collection>( future: futureCollection, builder: (context, snapshot){ if (snapshot.hasData) { return Text(snapshot.data!.collectionName); } else{ return CircularProgressIndicator(); } } ), ], ), ), 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'), ), ], ), ); } }