Files
packages.dart/deprecated/flutter_ast/templates/base.dart.mustache
T
2026-01-15 14:38:46 -08:00

146 lines
2.8 KiB
Plaintext

import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/gestures.dart';
{{#imports}}
{{path}}
{{/imports}}
{{#classes}}
class {{class}}Render<T> extends StatelessWidget {
factory {{class}}Render.fromJson(Map<String, dynamic> data, VoidCallback update) {
return {{class}}Render(update,
{{#fields}}
{{name}}Val: BaseCore<{{type}}>(null, update),
{{/fields}}
);
}
{{class}}Render(this._update, {
{{#fields}}
@required this.{{name}}Val,
{{/fields}}
});
@override
final VoidCallback _update;
{{#fields}}
{{core}} {{name}}Val;
{{type}} get {{name}} {
return {{name}}Val.value;
}
set {{name}}({{type}} val) {
if (val == this.{{name}}) {
return;
}
{{name}}Val.value = val;
}
{{/fields}}
@override
Map<String, dynamic> get staticFields => {
{{#static}}
'{{name}}': {{value}},
{{/static}}
};
@override
List<Core> get props => [
{{#fields}}
this.{{name}}Val,
{{/fields}}
];
@override
String get description {
final sb = StringBuffer();
{{#comments}}
sb.writeln("{{comments}}");
{{/comments}}
return sb.toString();
}
@override
Map<String, Object> get constructors {
return {
{{#constructors}}
'{{name}}': {{className}}(
{{#props}}
{{key}}{{separator}} this.{{name}},
{{/props}}
),
{{/constructors}}
};
}
@override
Map<String, Map<String, dynamic>> get properties {
return {
{{#constructors}}
'{{name}}': {
{{#props}}
'{{key}}': this.{{name}},
{{/props}}
},
{{/constructors}}
};
}
@override
Map<String, dynamic> toJson() {
return {
'name': '{{class}}',
'props': {
{{#fields}}
'{{name}}': this.{{name}}Val.toJson(),
{{/fields}}
}
};
}
@override
Map<String, String> toCode() {
return {
{{#constructors}}
'{{name}}': """{{className}}(
{{#props}}
{{key}}{{separator}} ${this.{{name}}Val.toCode()},
{{/props}}
)""",
{{/constructors}}
};
}
final _controller = ValueNotifier<WidgetRect>(null);
ValueListenable<WidgetRect> get stats => _controller;
@override
Widget build(BuildContext context) {
if (isWidget) return TrackedWidget(
controller: _controller,
child: defaultBase,
);
return Container();
}
@override
bool get isWidget => defaultBase is Widget;
@override
Object get defaultBase => constructors['default'];
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);
{{#fields}}
properties.add(DiagnosticsProperty('{{name}}', this.{{name}}));
{{/fields}}
}
}
{{/classes}}