Create value editor prompt
This commit is contained in:
parent
d5577bb39a
commit
10e9189e31
17 changed files with 143 additions and 42 deletions
|
@ -45,6 +45,10 @@ class EditorState extends State<Editor> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void didChangeState() {
|
||||||
|
setState(() {});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
controller =
|
controller =
|
||||||
|
@ -119,7 +123,7 @@ class EditorState extends State<Editor> {
|
||||||
),
|
),
|
||||||
body: TreeView(
|
body: TreeView(
|
||||||
nodeBuilder: (context, node) {
|
nodeBuilder: (context, node) {
|
||||||
return TagExt.render(node.data as Tag, context);
|
return TagExt.render(node.data as Tag, context, didChangeState);
|
||||||
},
|
},
|
||||||
controller: controller,
|
controller: controller,
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:nbteditor/Editor.dart';
|
import 'package:nbteditor/Editor.dart';
|
||||||
import 'package:nbteditor/pages/AddPage.dart';
|
import 'package:nbteditor/pages/AddPage.dart';
|
||||||
|
import 'package:nbteditor/pages/EditValue.dart';
|
||||||
import 'package:nbteditor/pages/SNBTEditor.dart';
|
import 'package:nbteditor/pages/SNBTEditor.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
@ -17,7 +18,7 @@ class MainApp extends StatelessWidget {
|
||||||
routes: {
|
routes: {
|
||||||
"/": (context) => const Editor(),
|
"/": (context) => const Editor(),
|
||||||
"/add": (context) => const AddPage(),
|
"/add": (context) => const AddPage(),
|
||||||
"/snbt": (context) => const SnbtEdit()
|
"/snbt": (context) => const SnbtEdit(),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
77
lib/pages/EditValue.dart
Normal file
77
lib/pages/EditValue.dart
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:libac_dart/nbt/Tag.dart';
|
||||||
|
import 'package:libac_dart/nbt/impl/StringTag.dart';
|
||||||
|
|
||||||
|
class EditValuePrompt extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
State<StatefulWidget> createState() {
|
||||||
|
return EditValueState();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class EditValueState extends State<EditValuePrompt> {
|
||||||
|
TagType TagValueType = TagType.String;
|
||||||
|
Tag MainTag = StringTag.valueOf("str");
|
||||||
|
|
||||||
|
TextEditingController TEC = TextEditingController();
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
var args = ModalRoute.of(context)!.settings.arguments!;
|
||||||
|
|
||||||
|
if (args is Tag) {
|
||||||
|
Tag tag = args as Tag;
|
||||||
|
setState(() {
|
||||||
|
TagValueType = tag.getTagType();
|
||||||
|
MainTag = tag;
|
||||||
|
|
||||||
|
TEC.text = "${MainTag.getValue()}";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AlertDialog(
|
||||||
|
icon: Icon(Icons.edit_document),
|
||||||
|
title: Text("Edit Value - ${MainTag.getKey()}"),
|
||||||
|
actions: [
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: () {
|
||||||
|
dynamic val = TEC.text;
|
||||||
|
switch (MainTag.getTagType()) {
|
||||||
|
case TagType.Byte:
|
||||||
|
case TagType.Int:
|
||||||
|
case TagType.Long:
|
||||||
|
case TagType.Short:
|
||||||
|
{
|
||||||
|
val = int.parse(val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TagType.Double:
|
||||||
|
case TagType.Float:
|
||||||
|
{
|
||||||
|
val = double.parse(val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Navigator.pop(context, val);
|
||||||
|
},
|
||||||
|
child: Text("Submit")),
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
child: Text("Cancel"))
|
||||||
|
],
|
||||||
|
content: TextField(
|
||||||
|
controller: TEC,
|
||||||
|
decoration: InputDecoration(border: OutlineInputBorder()),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
|
@ -19,13 +19,13 @@ extension ByteArrayTagExt on ByteArrayTag {
|
||||||
children: entries);
|
children: entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_ByteArray (${getKey()})"),
|
title: Text("TAG_ByteArray (${getKey()})"),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/ByteArray.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/ByteArray.png")),
|
||||||
subtitle: TagExt.getElementDescriptor("${value.length} entries"),
|
subtitle: TagExt.getElementDescriptor("${value.length} entries"),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
true, canBeNamed(this), false, this, context),
|
true, canBeNamed(this), false, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ extension ByteTagExt on ByteTag {
|
||||||
return Node(key: path, label: "TAG_Byte ${getKey()}", data: this);
|
return Node(key: path, label: "TAG_Byte ${getKey()}", data: this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_Byte (${getKey()})"),
|
title: Text("TAG_Byte (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor(
|
subtitle: TagExt.getElementDescriptor(
|
||||||
|
@ -16,7 +16,7 @@ extension ByteTagExt on ByteTag {
|
||||||
),
|
),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/Byte.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/Byte.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
false, canBeNamed(this), true, this, context),
|
false, canBeNamed(this), true, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ import 'package:libac_dart/nbt/impl/CompoundTag.dart';
|
||||||
import 'package:nbteditor/tags/Tag.dart';
|
import 'package:nbteditor/tags/Tag.dart';
|
||||||
|
|
||||||
extension CompoundTagExt on CompoundTag {
|
extension CompoundTagExt on CompoundTag {
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_Compound (${getKey()})"),
|
title: Text("TAG_Compound (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor(
|
subtitle: TagExt.getElementDescriptor(
|
||||||
|
@ -12,7 +12,7 @@ extension CompoundTagExt on CompoundTag {
|
||||||
),
|
),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/Compound.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/Compound.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
true, canBeNamed(this), false, this, context),
|
true, canBeNamed(this), false, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,13 +8,13 @@ extension DoubleTagExt on DoubleTag {
|
||||||
return Node(key: path, label: "TAG_Double ${getKey()}", data: this);
|
return Node(key: path, label: "TAG_Double ${getKey()}", data: this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_Double (${getKey()})"),
|
title: Text("TAG_Double (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor("$value"),
|
subtitle: TagExt.getElementDescriptor("$value"),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/Double.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/Double.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
false, canBeNamed(this), true, this, context),
|
false, canBeNamed(this), true, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,13 +9,13 @@ extension FloatTagExt on FloatTag {
|
||||||
return Node(key: path, label: "TAG_Float ${getKey()}", data: this);
|
return Node(key: path, label: "TAG_Float ${getKey()}", data: this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_Float (${getKey()})"),
|
title: Text("TAG_Float (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor("$value"),
|
subtitle: TagExt.getElementDescriptor("$value"),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/Float.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/Float.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
false, canBeNamed(this), true, this, context),
|
false, canBeNamed(this), true, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,13 +20,13 @@ extension IntArrayTagExt on IntArrayTag {
|
||||||
children: entries);
|
children: entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_IntArray (${getKey()})"),
|
title: Text("TAG_IntArray (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor("${value.length} entries"),
|
subtitle: TagExt.getElementDescriptor("${value.length} entries"),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/IntegerArray.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/IntegerArray.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
true, canBeNamed(this), false, this, context),
|
true, canBeNamed(this), false, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,13 +9,13 @@ extension IntTagExt on IntTag {
|
||||||
return Node(key: path, label: "TAG_Int ${getKey()}", data: this);
|
return Node(key: path, label: "TAG_Int ${getKey()}", data: this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_Int (${getKey()})"),
|
title: Text("TAG_Int (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor("$value"),
|
subtitle: TagExt.getElementDescriptor("$value"),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/Integer.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/Integer.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
false, canBeNamed(this), true, this, context),
|
false, canBeNamed(this), true, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ extension ListTagExt on ListTag {
|
||||||
return Node(key: path, label: getKey(), data: this, children: nodes);
|
return Node(key: path, label: getKey(), data: this, children: nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
TagType type = TagType.End;
|
TagType type = TagType.End;
|
||||||
if (value.isNotEmpty) type = get(0).getTagType();
|
if (value.isNotEmpty) type = get(0).getTagType();
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ extension ListTagExt on ListTag {
|
||||||
subtitle: TagExt.getElementDescriptor("${value.length} entries"),
|
subtitle: TagExt.getElementDescriptor("${value.length} entries"),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/List.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/List.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
true, canBeNamed(this), false, this, context),
|
true, canBeNamed(this), false, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,13 +20,13 @@ extension LongArrayTagExt on LongArrayTag {
|
||||||
children: entries);
|
children: entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_LongArray (${getKey()})"),
|
title: Text("TAG_LongArray (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor("${value.length} entries"),
|
subtitle: TagExt.getElementDescriptor("${value.length} entries"),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/LongArray.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/LongArray.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
true, canBeNamed(this), false, this, context),
|
true, canBeNamed(this), false, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,13 +9,13 @@ extension LongTagExt on LongTag {
|
||||||
return Node(key: path, label: "TAG_Long ${getKey()}", data: this);
|
return Node(key: path, label: "TAG_Long ${getKey()}", data: this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_Long (${getKey()})"),
|
title: Text("TAG_Long (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor("$value"),
|
subtitle: TagExt.getElementDescriptor("$value"),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/Long.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/Long.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
false, canBeNamed(this), true, this, context),
|
false, canBeNamed(this), true, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,13 +9,13 @@ extension ShortTagExt on ShortTag {
|
||||||
return Node(key: path, label: "TAG_Short ${getKey()}", data: this);
|
return Node(key: path, label: "TAG_Short ${getKey()}", data: this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_Short (${getKey()})"),
|
title: Text("TAG_Short (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor("$value"),
|
subtitle: TagExt.getElementDescriptor("$value"),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/Short.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/Short.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
false, canBeNamed(this), true, this, context),
|
false, canBeNamed(this), true, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,13 +9,13 @@ extension StringTagExt on StringTag {
|
||||||
return Node(key: path, label: "TAG_String ${getKey()}", data: this);
|
return Node(key: path, label: "TAG_String ${getKey()}", data: this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget render(BuildContext context) {
|
Widget render(BuildContext context, Function didChangeState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("TAG_String (${getKey()})"),
|
title: Text("TAG_String (${getKey()})"),
|
||||||
subtitle: TagExt.getElementDescriptor(value),
|
subtitle: TagExt.getElementDescriptor(value),
|
||||||
leading: const Image(image: AssetImage("Icons/PNG/String.png")),
|
leading: const Image(image: AssetImage("Icons/PNG/String.png")),
|
||||||
trailing: TagExt.getElementButtons(
|
trailing: TagExt.getElementButtons(
|
||||||
false, canBeNamed(this), true, this, context),
|
false, canBeNamed(this), true, this, context, didChangeState),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_treeview/flutter_treeview.dart';
|
import 'package:flutter_treeview/flutter_treeview.dart';
|
||||||
import 'package:libac_dart/nbt/Tag.dart';
|
import 'package:libac_dart/nbt/Tag.dart';
|
||||||
|
@ -15,6 +16,7 @@ import 'package:libac_dart/nbt/impl/ShortTag.dart';
|
||||||
import 'package:libac_dart/nbt/impl/StringTag.dart';
|
import 'package:libac_dart/nbt/impl/StringTag.dart';
|
||||||
import 'package:nbteditor/Editor.dart';
|
import 'package:nbteditor/Editor.dart';
|
||||||
import 'package:nbteditor/pages/AddPage.dart';
|
import 'package:nbteditor/pages/AddPage.dart';
|
||||||
|
import 'package:nbteditor/pages/EditValue.dart';
|
||||||
import 'package:nbteditor/pages/RenamePrompt.dart';
|
import 'package:nbteditor/pages/RenamePrompt.dart';
|
||||||
import 'package:nbteditor/tags/ByteArrayTag.dart';
|
import 'package:nbteditor/tags/ByteArrayTag.dart';
|
||||||
import 'package:nbteditor/tags/ByteTag.dart';
|
import 'package:nbteditor/tags/ByteTag.dart';
|
||||||
|
@ -30,55 +32,55 @@ import 'package:nbteditor/tags/ShortTag.dart';
|
||||||
import 'package:nbteditor/tags/StringTag.dart';
|
import 'package:nbteditor/tags/StringTag.dart';
|
||||||
|
|
||||||
class TagExt {
|
class TagExt {
|
||||||
static Widget render(Tag tag, BuildContext context) {
|
static Widget render(Tag tag, BuildContext context, Function didChangeState) {
|
||||||
switch (tag.getTagType()) {
|
switch (tag.getTagType()) {
|
||||||
case TagType.List:
|
case TagType.List:
|
||||||
{
|
{
|
||||||
return (tag as ListTag).render(context);
|
return (tag as ListTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.Byte:
|
case TagType.Byte:
|
||||||
{
|
{
|
||||||
return (tag as ByteTag).render(context);
|
return (tag as ByteTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.Int:
|
case TagType.Int:
|
||||||
{
|
{
|
||||||
return (tag as IntTag).render(context);
|
return (tag as IntTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.Double:
|
case TagType.Double:
|
||||||
{
|
{
|
||||||
return (tag as DoubleTag).render(context);
|
return (tag as DoubleTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.LongArray:
|
case TagType.LongArray:
|
||||||
{
|
{
|
||||||
return (tag as LongArrayTag).render(context);
|
return (tag as LongArrayTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.Long:
|
case TagType.Long:
|
||||||
{
|
{
|
||||||
return (tag as LongTag).render(context);
|
return (tag as LongTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.IntArray:
|
case TagType.IntArray:
|
||||||
{
|
{
|
||||||
return (tag as IntArrayTag).render(context);
|
return (tag as IntArrayTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.ByteArray:
|
case TagType.ByteArray:
|
||||||
{
|
{
|
||||||
return (tag as ByteArrayTag).render(context);
|
return (tag as ByteArrayTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.String:
|
case TagType.String:
|
||||||
{
|
{
|
||||||
return (tag as StringTag).render(context);
|
return (tag as StringTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.Compound:
|
case TagType.Compound:
|
||||||
{
|
{
|
||||||
return (tag as CompoundTag).render(context);
|
return (tag as CompoundTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.Short:
|
case TagType.Short:
|
||||||
{
|
{
|
||||||
return (tag as ShortTag).render(context);
|
return (tag as ShortTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.Float:
|
case TagType.Float:
|
||||||
{
|
{
|
||||||
return (tag as FloatTag).render(context);
|
return (tag as FloatTag).render(context, didChangeState);
|
||||||
}
|
}
|
||||||
case TagType.End:
|
case TagType.End:
|
||||||
{
|
{
|
||||||
|
@ -145,7 +147,7 @@ class TagExt {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Widget getElementButtons(bool canAddElements, bool isNamed,
|
static Widget getElementButtons(bool canAddElements, bool isNamed,
|
||||||
bool editableValue, Tag tag, BuildContext ctx) {
|
bool editableValue, Tag tag, BuildContext ctx, Function didChangeState) {
|
||||||
return Row(
|
return Row(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
|
@ -210,7 +212,24 @@ class TagExt {
|
||||||
},
|
},
|
||||||
icon: Icon(Icons.drive_file_rename_outline)),
|
icon: Icon(Icons.drive_file_rename_outline)),
|
||||||
if (editableValue)
|
if (editableValue)
|
||||||
IconButton(onPressed: () {}, icon: Icon(Icons.edit_document))
|
IconButton(
|
||||||
|
onPressed: () async {
|
||||||
|
var response = await showAdaptiveDialog(
|
||||||
|
context: ctx,
|
||||||
|
builder: (B) {
|
||||||
|
return EditValuePrompt();
|
||||||
|
},
|
||||||
|
routeSettings: RouteSettings(arguments: tag));
|
||||||
|
|
||||||
|
if (response == null) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
tag.setValue(response);
|
||||||
|
|
||||||
|
didChangeState.call();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
icon: Icon(Icons.edit_document))
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ dependencies:
|
||||||
flutter_treeview: ^1.0.7+1
|
flutter_treeview: ^1.0.7+1
|
||||||
libac_dart:
|
libac_dart:
|
||||||
hosted: https://git.zontreck.com/api/packages/AriasCreations/pub/
|
hosted: https://git.zontreck.com/api/packages/AriasCreations/pub/
|
||||||
version: 1.2.072024+2043
|
version: 1.2.072124+0507
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue