Widget build()

in frontend/frontend-flutter/lib/screens/settings.dart [36:279]


  Widget build(BuildContext context) {
    print("Settings : build() : START");
    print("Settings : build() : widget.db = ${widget.db}");

    return Scaffold(
      appBar: AppBar(
        title: Text('Open data QnA',
            style:
                TextStyle(fontWeight: FontWeight.bold, color: Colors.purple)),
        centerTitle: false,
        leading: IconButton(
          icon: const Icon(Icons.arrow_back),
          onPressed: () {
            Navigator.pop(context, Settings.isExpert);
          },
        ),
        actions: [
          Padding(
            padding: const EdgeInsets.only(right: 100),
            child: IconButton(
              icon: Image.asset('assets/images/cymbal_logo.png'),
              onPressed: () {
                ;
              },
            ),
          ),
        ],
      ),
      body: SettingsList(
        sections: [
          SettingsSection(
            title: Text('General',
                style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
            tiles: [
              SettingsTile.switchTile(
                initialValue: TextToDocParameter.isLoadConfig,
                onToggle: (value) {
                  setState(() {
                    //Settings.isLoadConfig = value;
                    TextToDocParameter.isLoadConfig = value;
                    print(
                        "Settings : build() : TextToDocParameter.isLoadConfig = ${TextToDocParameter.isLoadConfig}");

                    importFrontEndCfgFile();
                  });
                },
                title: Row(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: [
                    Image.asset(
                      'assets/images/config_frontend.png',
                      height: 70,
                      width: 70,
                      fit: BoxFit.cover,
                    ),
                    Container(width: 20),
                    Text('Upload frontend config file'),
                  ],
                ),
                description: Text("Set required app's parameters"),
              ),
              SettingsTile.switchTile(
                initialValue: widget.useFeedback,
                onToggle: (value) {
                  setState(() {
                    //useFeedback = value;
                  });
                },
                title: Row(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: [
                    Image.asset(
                      'assets/images/feedback.png',
                      height: 70,
                      width: 70,
                      fit: BoxFit.cover,
                    ),
                    Container(width: 20),
                    Text('Feedback (not implemented yet)'),
                  ],
                ),
                description: Text('Send feedback on generated answers'),
              ),
              SettingsTile.switchTile(
                  initialValue: widget.useColorMode,
                  onToggle: (value) {
                    setState(() {
                      //useColorMode = value;
                    });
                  },
                  title: Row(
                    mainAxisAlignment: MainAxisAlignment.start,
                    children: [
                      Image.asset(
                        'assets/images/color_mode.png',
                        height: 70,
                        width: 70,
                        fit: BoxFit.cover,
                      ),
                      Container(width: 20),
                      Text('Enable dark mode (not implemented yet)'),
                    ],
                  )),
              SettingsTile.switchTile(
                  initialValue: TextToDocParameter.anonymized_data,//Settings.isAnonymizedMode,
                  onToggle: (value) {
                    setState(() {
                      //Settings.isAnonymizedMode = value;
                      TextToDocParameter.anonymized_data = value;
                      //print("Settings : build() : widget.useExpertMode = ${widget.useExpertMode}");
                      print(
                          "Settings : build() : TextToDocParameter.anonymized_data = ${TextToDocParameter.anonymized_data}");
                      updateFrontEndFlutterCfg(parameter: "anonymized_data", value: value);
                    });
                  },
                  title: Row(
                    mainAxisAlignment: MainAxisAlignment.start,
                    children: [
                      Image.asset(
                        'assets/images/anonymized.jpeg',
                        height: 70,
                        width: 70,
                        fit: BoxFit.cover,
                      ),
                      Container(width: 20),
                      Text('Enable anonymization of data'),
                    ],
                  )),
            ],
          ),
          SettingsSection(
            title: Text('Statistics',
                style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
            tiles: [
              SettingsTile.switchTile(
                initialValue: widget.useDashboards,
                onToggle: (value) {
                  setState(() {
                    //useDashboards = value;
                  });
                },
                title: Row(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: [
                    Image.asset(
                      'assets/images/statistics.png',
                      height: 70,
                      width: 70,
                      fit: BoxFit.cover,
                    ),
                    Container(width: 20),
                    Text('Dashboards (not implemented yet)'),
                  ],
                ),
                description: Text('Get visibility on activities'),
              ),
              SettingsTile.switchTile(
                initialValue: widget.useReports,
                onToggle: (value) {
                  setState(() {
                    //useReports = value;
                  });
                },
                title: Row(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: [
                    Image.asset(
                      'assets/images/reports.png',
                      height: 70,
                      width: 70,
                      fit: BoxFit.cover,
                    ),
                    Container(width: 20),
                    Text('Reports (not implemented yet)'),
                  ],
                ),
                description: Text('Export activity reports in pdf'),
              ),
            ],
          ),
          SettingsSection(
            title: Text('Troubleshooting',
                style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
            tiles: [
              SettingsTile.switchTile(
                initialValue: TextToDocParameter.expert_mode,//Settings.isExpert,
                onToggle: (value) {
                  setState(() {
                    //widget.useExpertMode = value;
                    //Settings.isExpert = value;
                    TextToDocParameter.expert_mode = value;
                    //Config.isExpert = value;
                    //print("Settings : build() : widget.useExpertMode = ${widget.useExpertMode}");
                    print(
                        "Settings : build() : TextToDocParameter.expert_mode = ${TextToDocParameter.expert_mode}");
                    BlocProvider.of<DisplayStepperCubit>(context).displayStepper(value);
                  });

                  updateFrontEndFlutterCfg(parameter: "expert_mode", value: value);
                },
                title: Row(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: [
                    Image.asset(
                      'assets/images/troubleshooting.png',
                      height: 70,
                      width: 70,
                      fit: BoxFit.cover,
                    ),
                    Container(width: 20),
                    Text('Expert mode'),
                  ],
                ),
                description: Text(
                    'Get workflow details and internal technical informations'),
              ),
              SettingsTile.switchTile(
                initialValue: widget.useLog,
                onToggle: (value) {
                  setState(() {
                    //useLog = value;
                  });
                },
                title: Row(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: [
                    Image.asset(
                      'assets/images/logs.png',
                      height: 70,
                      width: 70,
                      fit: BoxFit.cover,
                    ),
                    Container(width: 20),
                    Text('Enable logs (not implemented yet)'),
                  ],
                ),
                description: Text('Generate logs for troubleshooting'),
              ),
            ],
          ),
        ],
      ),
    );
  }