add structure
This commit is contained in:
163
lib/app.dart
Normal file
163
lib/app.dart
Normal file
@@ -0,0 +1,163 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/model/buyer_model.dart';
|
||||
import 'package:fcs/model/delivery_model.dart';
|
||||
import 'package:fcs/model/manual_model.dart';
|
||||
import 'package:fcs/model/notification_model.dart';
|
||||
import 'package:fcs/model/pd_model.dart';
|
||||
import 'package:fcs/model/reg_model.dart';
|
||||
import 'package:fcs/model/report_model.dart';
|
||||
import 'package:fcs/model/storage_model.dart';
|
||||
import 'package:fcs/model/test_model.dart';
|
||||
import 'package:fcs/pages/email_page.dart';
|
||||
import 'package:fcs/pages/login_page.dart';
|
||||
|
||||
import 'model/announcement_model.dart';
|
||||
import 'model/chart_model.dart';
|
||||
import 'model/device_model.dart';
|
||||
import 'model/do_model.dart';
|
||||
import 'model/employee_model.dart';
|
||||
import 'model/language_model.dart';
|
||||
import 'model/log_model.dart';
|
||||
import 'model/main_model.dart';
|
||||
import 'model/po_model.dart';
|
||||
import 'model/product_model.dart';
|
||||
import 'model/report_user_model.dart';
|
||||
import 'model/user_model.dart';
|
||||
import 'pages/home_page.dart';
|
||||
import 'pages/splash.dart';
|
||||
import 'pages/term.dart';
|
||||
import 'pages/welcome_page.dart';
|
||||
import 'widget/localization/app_translations_delegate.dart';
|
||||
import 'widget/localization/transalation.dart';
|
||||
|
||||
class App extends StatefulWidget {
|
||||
@override
|
||||
_AppState createState() => _AppState();
|
||||
}
|
||||
|
||||
class _AppState extends State<App> {
|
||||
final MainModel mainModel = new MainModel();
|
||||
final UserModel userModel = new UserModel();
|
||||
final ProductModel productModel = new ProductModel();
|
||||
final EmployeeModel employeeModel = new EmployeeModel();
|
||||
final POSubmissionModel poSubmissionModel = new POSubmissionModel();
|
||||
final DOModel doModel = new DOModel();
|
||||
final LanguageModel lanuguageModel = new LanguageModel();
|
||||
final StorageModel storageModel = new StorageModel();
|
||||
final PDModel pdModel = new PDModel();
|
||||
final RegModel regModel = new RegModel();
|
||||
final BuyerModel buyerModel = new BuyerModel();
|
||||
final NotificationModel notificationModel = new NotificationModel();
|
||||
final ChartModel chartModel = new ChartModel();
|
||||
final DeliveryModel deliveryModel = new DeliveryModel();
|
||||
final ManualModel manualModel = new ManualModel();
|
||||
final TestModel testModel = new TestModel();
|
||||
final LogModel logModel = new LogModel();
|
||||
final PhoneDeviceModel phoneDeviceModel = new PhoneDeviceModel();
|
||||
final ReportModel reportModel = new ReportModel();
|
||||
final AnnouncementModel announcementModel = new AnnouncementModel();
|
||||
final ReportUserModel reportUserModel = new ReportUserModel();
|
||||
|
||||
AppTranslationsDelegate _newLocaleDelegate;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_newLocaleDelegate = AppTranslationsDelegate(newLocale: null);
|
||||
Translation().onLocaleChanged = onLocaleChange;
|
||||
mainModel
|
||||
..addModel(userModel)
|
||||
..addModel(employeeModel)
|
||||
..addModel(lanuguageModel)
|
||||
..addModel(storageModel)
|
||||
..addModel(regModel)
|
||||
..addModel(poSubmissionModel)
|
||||
..addModel(doModel)
|
||||
..addModel(productModel)
|
||||
..addModel(pdModel)
|
||||
..addModel(buyerModel)
|
||||
..addModel(notificationModel)
|
||||
..addModel(chartModel)
|
||||
..addModel(deliveryModel)
|
||||
..addModel(logModel)
|
||||
..addModel(manualModel)
|
||||
..addModel(phoneDeviceModel)
|
||||
..addModel(regModel)
|
||||
..addModel(announcementModel)
|
||||
..addModel(reportModel)
|
||||
..addModel(testModel)
|
||||
..addModel(reportUserModel);
|
||||
this.mainModel.init();
|
||||
}
|
||||
|
||||
void onLocaleChange(Locale locale) {
|
||||
setState(() {
|
||||
_newLocaleDelegate = AppTranslationsDelegate(newLocale: locale);
|
||||
});
|
||||
}
|
||||
|
||||
Map<String, WidgetBuilder> route(BuildContext context) {
|
||||
final routes = <String, WidgetBuilder>{
|
||||
'/': (_) => SplashScreen(),
|
||||
'/home': (_) => HomePage(),
|
||||
'/welcome': (context) => WelcomePage(),
|
||||
'/term': (context) => Term(
|
||||
agreePage: true,
|
||||
),
|
||||
'/login': (context) => LoginPage(),
|
||||
'/email': (context) => EmailPage()
|
||||
};
|
||||
return routes;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MultiProvider(
|
||||
providers: [
|
||||
ChangeNotifierProvider(builder: (context) => mainModel),
|
||||
ChangeNotifierProvider(builder: (context) => userModel),
|
||||
ChangeNotifierProvider(builder: (context) => productModel),
|
||||
ChangeNotifierProvider(builder: (context) => employeeModel),
|
||||
ChangeNotifierProvider(builder: (context) => poSubmissionModel),
|
||||
ChangeNotifierProvider(builder: (context) => doModel),
|
||||
ChangeNotifierProvider(builder: (context) => storageModel),
|
||||
ChangeNotifierProvider(builder: (context) => pdModel),
|
||||
ChangeNotifierProvider(builder: (context) => lanuguageModel),
|
||||
ChangeNotifierProvider(builder: (context) => regModel),
|
||||
ChangeNotifierProvider(builder: (context) => buyerModel),
|
||||
ChangeNotifierProvider(builder: (context) => notificationModel),
|
||||
ChangeNotifierProvider(builder: (context) => chartModel),
|
||||
ChangeNotifierProvider(builder: (context) => deliveryModel),
|
||||
ChangeNotifierProvider(builder: (context) => manualModel),
|
||||
ChangeNotifierProvider(builder: (context) => logModel),
|
||||
ChangeNotifierProvider(builder: (context) => deliveryModel),
|
||||
ChangeNotifierProvider(builder: (context) => phoneDeviceModel),
|
||||
ChangeNotifierProvider(builder: (context) => reportModel),
|
||||
ChangeNotifierProvider(builder: (context) => announcementModel),
|
||||
ChangeNotifierProvider(builder: (context) => reportUserModel),
|
||||
ChangeNotifierProvider(
|
||||
builder: (context) => testModel,
|
||||
),
|
||||
],
|
||||
child: Consumer<LanguageModel>(
|
||||
builder: (BuildContext context, LanguageModel value, Widget child) {
|
||||
return MaterialApp(
|
||||
debugShowCheckedModeBanner: false,
|
||||
title: 'Ok Energy',
|
||||
routes: route(context),
|
||||
theme: ThemeData(accentColor: Colors.black),
|
||||
localizationsDelegates: [
|
||||
_newLocaleDelegate,
|
||||
//provides localised strings
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
//provides RTL support
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
],
|
||||
supportedLocales: Translation().supportedLocales());
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user