51 lines
1.2 KiB
Dart
51 lines
1.2 KiB
Dart
import 'impl.dart';
|
|
|
|
class BaseOptionTemplate extends SettingsImpl {
|
|
String defaultValue;
|
|
bool isPrivate;
|
|
bool tryParse;
|
|
|
|
@override
|
|
String name;
|
|
|
|
@override
|
|
String key;
|
|
|
|
@override
|
|
String propertyType;
|
|
|
|
@override
|
|
String access() {
|
|
final sb = StringBuffer();
|
|
sb.writeln('$propertyType get ${name}Val {');
|
|
sb.write("if (params[${name}Key] != null) ");
|
|
sb.writeln('{');
|
|
sb.write('return ');
|
|
if (tryParse) {
|
|
sb.write("$propertyType.tryParse(params[${name}Key].toString())");
|
|
if (defaultValue != null) {
|
|
sb.write(' ?? $defaultValue');
|
|
}
|
|
} else {
|
|
sb.write('params[${name}Key] as $propertyType');
|
|
}
|
|
sb.writeln(';');
|
|
sb.writeln('}');
|
|
if (defaultValue != null) {
|
|
if (propertyType == 'String') {
|
|
sb.writeln("return '$defaultValue';");
|
|
} else {
|
|
sb.writeln("return $defaultValue;");
|
|
}
|
|
} else {
|
|
sb.writeln("return null;");
|
|
}
|
|
sb.writeln('}');
|
|
sb.writeln('set ${name}Val($propertyType val) {');
|
|
sb.writeln('params[${name}Key] = val;');
|
|
sb.writeln('widgetContext.onUpdate(id, widgetData);');
|
|
sb.writeln('}');
|
|
return sb.toString();
|
|
}
|
|
}
|