diff --git a/lib/Components/Note.dart b/lib/Components/Note.dart new file mode 100644 index 0000000..b2e00d9 --- /dev/null +++ b/lib/Components/Note.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; +import '../pages/NoteDetailView.dart'; + +class Note extends StatefulWidget { + const Note({super.key}); + + @override + State createState() => _NotesViewState(); +} + +class _NotesViewState extends State { + + @override + Widget build(BuildContext context) { + return ListTile( + title: Text("Titolo"), + subtitle: Text('Testo'), + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => const NoteDetailView(), + ), + ); + }, + ); + } +} \ No newline at end of file diff --git a/lib/database/database.dart b/lib/database/database.dart index 8d9aea3..0fc3052 100644 --- a/lib/database/database.dart +++ b/lib/database/database.dart @@ -67,7 +67,7 @@ class NoteDatabase { } Future fillDemoData(Database database, int version) async { - + print("boh speriamo funzioni"); // Add some fake accounts diff --git a/lib/main.dart b/lib/main.dart index cbaaa02..06709ad 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'myApp.dart'; +import '../myApp.dart'; void main() { runApp(MyApp()); -} +} \ No newline at end of file diff --git a/lib/navigation.dart b/lib/navigation.dart index b2ab4c6..0d67440 100644 --- a/lib/navigation.dart +++ b/lib/navigation.dart @@ -1,6 +1,5 @@ -import 'dart:ffi'; - import 'package:flutter/material.dart'; +import 'pages/testUI.dart'; import 'pages/TodayView.dart'; import 'pages/InboxView.dart'; import 'pages/NotesView.dart'; diff --git a/lib/pages/CreateNewNote.dart b/lib/pages/CreateNewNote.dart new file mode 100644 index 0000000..2f8f941 --- /dev/null +++ b/lib/pages/CreateNewNote.dart @@ -0,0 +1,89 @@ +import 'package:flutter/material.dart'; +import 'package:progetto_m335_flutter/pages/NotesView.dart'; + +class CreateNewNote extends StatefulWidget { + const CreateNewNote({Key? key}) : super(key: key); + + @override + State createState() => _CreateNewNoteState(); +} + +class _CreateNewNoteState extends State { + TextEditingController _titleController = TextEditingController(); + TextEditingController _textController = TextEditingController(); + + @override + void dispose() { + _titleController.dispose(); + _textController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Create New Note'), + ), + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextField( + controller: _titleController, + decoration: InputDecoration( + hintText: 'Enter a title', + ), + ), + SizedBox(height: 16), + TextField( + controller: _textController, + maxLines: null, + decoration: InputDecoration( + hintText: 'Enter text', + border: InputBorder.none, + ), + ), + const SizedBox(height: 10), + const Spacer(), + Row( + children: [ + Expanded( + child: ElevatedButton( + onPressed: () { + print("Delete button pressed"); + }, + style: ElevatedButton.styleFrom( + primary: Colors.red, + ), + child: const Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.delete), + Text("Delete"), + ], + ), + ), + ), + const SizedBox(width: 10), + Expanded( + child: ElevatedButton( + onPressed: () { + String title = _titleController.text; + String text = _textController.text; + _titleController.clear(); + _textController.clear(); + Navigator.pop(context); + }, + child: const Text("Save"), + ), + ), + ], + ), + ], // + ), + ), + ); + } +} diff --git a/lib/pages/NoteDetailView.dart b/lib/pages/NoteDetailView.dart index a9802da..7f3b04d 100644 --- a/lib/pages/NoteDetailView.dart +++ b/lib/pages/NoteDetailView.dart @@ -1,19 +1,89 @@ import 'package:flutter/material.dart'; +import 'package:progetto_m335_flutter/pages/NotesView.dart'; class NoteDetailView extends StatefulWidget { - const NoteDetailView({super.key}); + const NoteDetailView({Key? key}) : super(key: key); @override State createState() => _NoteDetailViewState(); } class _NoteDetailViewState extends State { + TextEditingController _titleController = TextEditingController(); + TextEditingController _textController = TextEditingController(); + + @override + void dispose() { + _titleController.dispose(); + _textController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { - return const Scaffold( - body: Center( - child: Text('NoteDetailView'), - ) + return Scaffold( + appBar: AppBar( + title: Text('Edit note'), + ), + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextField( + controller: _titleController, + decoration: InputDecoration( + hintText: 'Enter a title', + ), + ), + SizedBox(height: 16), + TextField( + controller: _textController, + maxLines: null, + decoration: InputDecoration( + hintText: 'Enter text', + border: InputBorder.none, + ), + ), + const SizedBox(height: 10), + const Spacer(), + Row( + children: [ + Expanded( + child: ElevatedButton( + onPressed: () { + print("Delete button pressed"); + }, + style: ElevatedButton.styleFrom( + primary: Colors.red, + ), + child: const Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.delete), + Text("Delete"), + ], + ), + ), + ), + const SizedBox(width: 10), + Expanded( + child: ElevatedButton( + onPressed: () { + String title = _titleController.text; + String text = _textController.text; + _titleController.clear(); + _textController.clear(); + Navigator.pop(context); + }, + child: const Text("Save"), + ), + ), + ], + ), + ], // + ), + ), ); } } diff --git a/lib/pages/NotesView.dart b/lib/pages/NotesView.dart index b0d7c4b..4ad2961 100644 --- a/lib/pages/NotesView.dart +++ b/lib/pages/NotesView.dart @@ -1,19 +1,42 @@ import 'package:flutter/material.dart'; +import '../Components/Note.dart'; +import 'CreateNewNote.dart'; +import 'NoteDetailView.dart'; class NotesView extends StatefulWidget { - const NotesView({super.key}); + const NotesView({Key? key}) : super(key: key); @override State createState() => _NotesViewState(); } + class _NotesViewState extends State { + @override Widget build(BuildContext context) { - return const Scaffold( - body: Center( - child: Icon(Icons.note), - ) + return Scaffold( + appBar: AppBar( + title: Text('Note'), + ), + floatingActionButton: FloatingActionButton( + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => const CreateNewNote(), + ), + ); + }, + child: Icon(Icons.add), + ), + + + body:ListView( + children: const [ + Note(), + Note(), + ], + ) ); } } diff --git a/pubspec.yaml b/pubspec.yaml index f735786..818a39c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -30,7 +30,8 @@ environment: dependencies: flutter: sdk: flutter - + sqflite: + path: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/test/widget_test.dart b/test/widget_test.dart index bb5dffa..c3d670a 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -13,7 +13,6 @@ import 'package:progetto_m335_flutter/myApp.dart'; void main() { testWidgets('Counter increments smoke test', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); // Verify that our counter starts at 0. expect(find.text('0'), findsOneWidget);