forked from lxm_flutter/json2dart
完成了 class name 的修改功能, 后续修改更友善的界面
This commit is contained in:
@@ -37,7 +37,7 @@ class Generator {
|
||||
|
||||
String makeDartCode() {
|
||||
StringBuffer resultSb = StringBuffer();
|
||||
handleTemplate(templateList);
|
||||
handleInputClassName();
|
||||
|
||||
resultSb.writeln(header);
|
||||
templateList.forEach((template) {
|
||||
@@ -46,7 +46,20 @@ class Generator {
|
||||
return resultSb.toString();
|
||||
}
|
||||
|
||||
void handleTemplate(List<DefaultTemplate> templateList) {}
|
||||
void handleInputClassName() {
|
||||
final text = eClassName.value;
|
||||
final lines = text.split("\n");
|
||||
|
||||
for (var i = 0; i < templateList.length; i++) {
|
||||
final template = templateList[i];
|
||||
final line = lines[i].trim();
|
||||
final inputKeyValue = line.split(":");
|
||||
final inputName = inputKeyValue[1];
|
||||
|
||||
template.className = inputName;
|
||||
print("设置 template class name 为 $inputName");
|
||||
}
|
||||
}
|
||||
|
||||
void refreshTemplate(DefaultTemplate template) {
|
||||
var fieldList = template.fieldList;
|
||||
@@ -94,11 +107,6 @@ class Generator {
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
void changeClassName(String text) {
|
||||
final texts = text.split("\n");
|
||||
print(texts);
|
||||
}
|
||||
}
|
||||
|
||||
String camelCase2UnderScoreCase(String name) {
|
||||
|
||||
@@ -29,7 +29,7 @@ enum Version { v0, v1 }
|
||||
Version v = Version.v0;
|
||||
|
||||
TextAreaElement eResult;
|
||||
Element eClassName;
|
||||
TextAreaElement eClassName;
|
||||
Element editButton;
|
||||
void main() async {
|
||||
isChinese = await _isChinese();
|
||||
@@ -244,10 +244,14 @@ void makeCode(Generator generator) {
|
||||
} else {
|
||||
filePrefix = "your dart file name is:";
|
||||
}
|
||||
// print(filePrefix);
|
||||
querySelector("#file_name").text = "$filePrefix $dartFileName";
|
||||
final resultName = "$filePrefix $dartFileName";
|
||||
writeToResult(resultName, dartCode);
|
||||
}
|
||||
|
||||
eResult.value = dartCode;
|
||||
void writeToResult(String resultName, String resultText) {
|
||||
// print(filePrefix);
|
||||
querySelector("#file_name").text = resultName;
|
||||
eResult.value = resultText;
|
||||
}
|
||||
|
||||
String formatJson(String jsonString) {
|
||||
@@ -266,5 +270,15 @@ void showOrClassName() {
|
||||
}
|
||||
|
||||
void refreshClassNameChange(String text) {
|
||||
generator.changeClassName(text);
|
||||
final value = generator.makeDartCode();
|
||||
String filePrefix;
|
||||
if (isChinese) {
|
||||
filePrefix = "应该使用的文件名为:";
|
||||
} else {
|
||||
filePrefix = "your dart file name is:";
|
||||
}
|
||||
var dartFileName = ("${generator.fileName}.dart");
|
||||
downloadFileName = dartFileName;
|
||||
final resultName = "$filePrefix $dartFileName";
|
||||
writeToResult(resultName, value);
|
||||
}
|
||||
|
||||
@@ -66,12 +66,6 @@
|
||||
<div class="content">
|
||||
<span class="half_span">
|
||||
<textarea id="json" title="json" class="content_area"></textarea>
|
||||
<textarea
|
||||
id="class_name"
|
||||
title="json"
|
||||
class="content_area"
|
||||
hidden
|
||||
></textarea>
|
||||
</span>
|
||||
<span class="half_span">
|
||||
<textarea
|
||||
@@ -79,6 +73,12 @@
|
||||
title="result"
|
||||
class="content_area"
|
||||
></textarea>
|
||||
<textarea
|
||||
id="class_name"
|
||||
title="class name"
|
||||
class="content_area"
|
||||
hidden
|
||||
></textarea>
|
||||
</span>
|
||||
</div>
|
||||
<div class="func">
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
<textarea id="result" title="结果" class="content_area"></textarea>
|
||||
<textarea
|
||||
id="class_name"
|
||||
title="json"
|
||||
title="class name"
|
||||
class="content_area"
|
||||
hidden
|
||||
></textarea>
|
||||
|
||||
@@ -21,7 +21,6 @@ h1 {
|
||||
|
||||
textarea {
|
||||
width: 86%;
|
||||
height: 70vh;
|
||||
}
|
||||
|
||||
.content {
|
||||
@@ -34,7 +33,7 @@ textarea {
|
||||
}
|
||||
|
||||
button {
|
||||
width: 6rem;
|
||||
width: 9rem;
|
||||
height: 2rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
@@ -63,3 +62,13 @@ a:hover {
|
||||
font-size: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.content_area {
|
||||
height: 60vh;
|
||||
}
|
||||
|
||||
#class_name {
|
||||
width: 86%;
|
||||
background-color: rgba(255, 255, 0, 0.164);
|
||||
height: 60vh;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user