Widget build()

in packages/sampler/lib/new_sample.dart [32:121]


  Widget build(BuildContext context) {
    return AlertDialog(
      title: const Text('Select Sample Type'),
      content: Column(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          Row(
            children: <Widget>[
              const Text('Sample Type:'),
              const Spacer(),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: DropdownButton<String>(
                  value: selectedSampleType,
                  onChanged: (String? value) {
                    setState(() {
                      selectedSampleType = value;
                    });
                  },
                  items: const <DropdownMenuItem<String>>[
                    DropdownMenuItem<String>(
                        child: Text('dartpad'), value: 'dartpad'),
                    DropdownMenuItem<String>(
                        child: Text('sample'), value: 'sample'),
                    DropdownMenuItem<String>(
                        child: Text('snippet'), value: 'snippet'),
                  ],
                ),
              ),
            ],
          ),
          if (selectedSampleType == 'sample' || selectedSampleType == 'dartpad')
            Row(
              children: <Widget>[
                const Text('Template:'),
                const Spacer(),
                Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: DropdownButton<String>(
                    value: selectedTemplate,
                    onChanged: (String? value) {
                      setState(() {
                        selectedTemplate = value;
                      });
                    },
                    items: Model.instance
                        .getTemplateNames()
                        .map<DropdownMenuItem<String>>((String name) {
                      return DropdownMenuItem<String>(
                          child: Text(name), value: name);
                    }).toList(),
                  ),
                ),
              ],
            ),
        ],
      ),
      actions: <Widget>[
        TextButton(
          child: const Text('CANCEL'),
          onPressed: () {
            Navigator.of(context).pop();
          },
        ),
        TextButton(
          child: const Text('OK'),
          onPressed: okEnabled
              ? () async {
                  Type sampleType;
                  switch (selectedSampleType!) {
                    case 'dartpad':
                      sampleType = DartpadSample;
                      break;
                    case 'sample':
                      sampleType = ApplicationSample;
                      break;
                    case 'snippet':
                      sampleType = SnippetSample;
                      break;
                    default:
                      throw SnippetException(
                          'Encountered unknown sample type $selectedSampleType');
                  }
                  widget.onSubmitted(sampleType, selectedTemplate);
                }
              : null,
        ),
      ],
    );
  }