Skip to content

Commit df45dbd

Browse files
authored
Code refactor and import json_to_dart_library (#33)
1 parent 3052cff commit df45dbd

23 files changed

+320
-1801
lines changed

Flutter/json_to_dart/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2.0.0
2+
3+
* Code refactor and import json_to_dart_library
4+
15
## 1.5.2
26

37
* Add deepCopy option

Flutter/json_to_dart/lib/main.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
55
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
66
import 'package:get/get.dart';
77
import 'package:hive_flutter/hive_flutter.dart';
8+
import 'package:json_to_dart/models/ff_config.dart';
9+
import 'package:json_to_dart_library/json_to_dart_library.dart';
810
import 'main_controller.dart';
911
import 'models/config.dart';
1012
import 'pages/json_text_field.dart';
@@ -17,7 +19,11 @@ import 'widget/drag_icon.dart';
1719
Future<void> main() async {
1820
await Hive.initFlutter();
1921
await ConfigSetting().init();
20-
Get.put(MainController());
22+
registerConfig(FFJsonToDartConfig());
23+
final MainController controller = MainController();
24+
Get.put(controller);
25+
registerController(controller);
26+
2127
runApp(MyApp());
2228
}
2329

Flutter/json_to_dart/lib/main_controller.dart

Lines changed: 20 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,16 @@ import 'package:dartx/dartx.dart';
55
import 'package:flutter/foundation.dart';
66
import 'package:flutter/material.dart';
77
import 'package:flutter/services.dart';
8+
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
89
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
910
import 'package:flutter_spinkit/flutter_spinkit.dart';
10-
import 'package:get/get_state_manager/get_state_manager.dart';
11+
import 'package:get/get.dart';
1112
import 'package:intl/intl.dart';
12-
import 'package:json_to_dart/models/dart_property.dart';
13-
import 'package:json_to_dart/utils/dart_helper.dart';
14-
import 'package:json_to_dart/utils/extension.dart';
15-
import 'package:json_to_dart/utils/my_string_buffer.dart';
13+
import 'package:json_to_dart_library/json_to_dart_library.dart' hide StringE;
1614

1715
import 'models/config.dart';
18-
import 'models/dart_object.dart';
16+
17+
AppLocalizations get appLocalizations => AppLocalizations.of(Get.context!)!;
1918

2019
void showAlertDialog(String msg, [IconData data = Icons.warning]) {
2120
SmartDialog.show(
@@ -34,7 +33,7 @@ void showAlertDialog(String msg, [IconData data = Icons.warning]) {
3433
);
3534
}
3635

37-
class MainController extends GetxController {
36+
class MainController extends GetxController with JsonToDartControllerMixin {
3837
final TextEditingController _textEditingController = TextEditingController();
3938

4039
final TextEditingController fileHeaderHelpController = TextEditingController()
@@ -50,10 +49,6 @@ class MainController extends GetxController {
5049

5150
TextEditingController get textEditingController => _textEditingController;
5251

53-
Set<DartProperty> allProperties = <DartProperty>{};
54-
Set<DartObject> allObjects = <DartObject>{};
55-
Set<DartObject> printedObjects = <DartObject>{};
56-
5752
Future<void> formatJsonAndCreateDartObject() async {
5853
allProperties.clear();
5954
allObjects.clear();
@@ -80,7 +75,7 @@ class MainController extends GetxController {
8075
handleError(error, stackTrace);
8176
});
8277

83-
final DartObject? extendedObject = createDartObject(jsonData);
78+
final DartObject? extendedObject = dynamicToDartObject(jsonData);
8479
// final DartObject? extendedObject =
8580
// await compute<dynamic, DartObject?>(createDartObject, jsonData)
8681
// .onError((Object? error, StackTrace stackTrace) {
@@ -116,32 +111,30 @@ class MainController extends GetxController {
116111
SmartDialog.dismiss();
117112
}
118113

119-
String? generateDart() {
120-
// allProperties.clear();
121-
// allObjects.clear();
114+
@override
115+
String? generateDartCode(DartObject? dartObject) {
122116
printedObjects.clear();
123117

124118
if (dartObject != null) {
125119
final DartObject? errorObject = allObjects.firstOrNullWhere(
126120
(DartObject element) =>
127-
element.classError.isNotEmpty ||
128-
element.propertyError.isNotEmpty);
121+
element.hasClassError || element.hasPropertyError);
129122
if (errorObject != null) {
130123
showAlertDialog(errorObject.classError.join('\n') +
131124
'\n' +
132125
errorObject.propertyError.join('\n'));
133126
return null;
134127
}
135128

136-
final DartProperty? errorProperty = allProperties.firstOrNullWhere(
137-
(DartProperty element) => element.propertyError.isNotEmpty);
129+
final DartProperty? errorProperty = allProperties
130+
.firstOrNullWhere((DartProperty element) => element.hasPropertyError);
138131

139132
if (errorProperty != null) {
140133
showAlertDialog(errorProperty.propertyError.join('\n'));
141134
return null;
142135
}
143136

144-
final MyStringBuffer sb = MyStringBuffer();
137+
final CustomStringBuffer sb = CustomStringBuffer();
145138
try {
146139
if (ConfigSetting().fileHeaderInfo.isNotEmpty) {
147140
String info = ConfigSetting().fileHeaderInfo;
@@ -191,7 +184,7 @@ class MainController extends GetxController {
191184
: DartHelper.asTMethod);
192185
}
193186

194-
sb.writeLine(dartObject!.toString());
187+
sb.writeLine(dartObject.toString());
195188
String result = sb.toString();
196189

197190
final DartFormatter formatter = DartFormatter(
@@ -248,32 +241,15 @@ class MainController extends GetxController {
248241
dartObject!.updatePropertyAccessorType();
249242
}
250243
}
251-
}
252244

253-
DartObject? createDartObject(dynamic jsonData) {
254-
DartObject? extendedObject;
245+
@override
246+
void handleError(Object? e, StackTrace stack) {
247+
print('$e');
248+
print('$stack');
249+
showAlertDialog(appLocalizations.formatErrorInfo, Icons.error);
255250

256-
if (jsonData is Map) {
257-
extendedObject = DartObject(
258-
depth: 0,
259-
keyValuePair:
260-
MapEntry<String, dynamic>('Root', jsonData as Map<String, dynamic>),
261-
nullable: false,
262-
uid: 'Root',
263-
);
264-
} else if (jsonData is List) {
265-
final Map<String, List<dynamic>> root = <String, List<dynamic>>{
266-
'Root': jsonData
267-
};
268-
extendedObject = DartObject(
269-
depth: 0,
270-
keyValuePair: MapEntry<String, dynamic>('Root', root),
271-
nullable: false,
272-
uid: 'Root',
273-
).objectKeys['Root']!
274-
..decDepth();
251+
Clipboard.setData(ClipboardData(text: '$e\n$stack'));
275252
}
276-
return extendedObject;
277253
}
278254

279255
String? formatJson(dynamic jsonData) {
@@ -288,11 +264,3 @@ String? formatJson(dynamic jsonData) {
288264
}
289265
return null;
290266
}
291-
292-
void handleError(Object? e, StackTrace stack) {
293-
print('$e');
294-
print('$stack');
295-
showAlertDialog(appLocalizations.formatErrorInfo, Icons.error);
296-
297-
Clipboard.setData(ClipboardData(text: '$e\n$stack'));
298-
}

Flutter/json_to_dart/lib/models/config.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import 'dart:convert';
22
import 'package:flutter/cupertino.dart';
33
import 'package:get/get.dart';
44
import 'package:hive/hive.dart';
5-
import 'package:json_to_dart/utils/enums.dart';
5+
import 'package:json_to_dart_library/json_to_dart_library.dart';
66

77
part 'config.g.dart';
88

0 commit comments

Comments
 (0)