Compare commits

..

No commits in common. '9186d87b7776535d17ccce815a2cdb5e13fd563f' and '265925af996ff0bebf2161dcf6c0755f7b2aa8fa' have entirely different histories.

  1. 39
      win_text_editor/lib/modules/code_creater/services/code_create_service.dart
  2. 8
      win_text_editor/lib/modules/code_creater/widgets/code_creater_view.dart
  3. 42
      win_text_editor/lib/modules/code_creater/widgets/node_table.dart
  4. 7
      win_text_editor/lib/modules/data_format/widgets/grid_view.dart
  5. 1
      win_text_editor/lib/modules/template_parser/widgets/grid_view.dart
  6. 7
      win_text_editor/lib/modules/uft_component/services/uft_component_service.dart
  7. 1
      win_text_editor/lib/shared/base/my_sf_data_grid.dart

39
win_text_editor/lib/modules/code_creater/services/code_create_service.dart

@ -65,6 +65,7 @@ class CodeCreateService { @@ -65,6 +65,7 @@ class CodeCreateService {
if (action!.startsWith("遍历") && action.endsWith("结束")) {
//
final memberName = iterateStack.removeLast();
debugPrint('删除遍历块:$memberName');
iterateOutputFields.remove(memberName);
iteratePartnerMap.remove(memberName);
@ -228,47 +229,35 @@ class CodeCreateService { @@ -228,47 +229,35 @@ class CodeCreateService {
iteratePartnerMap.values.expand((partners) => partners).toList(),
);
List<String> fieldNames = component.fields.map((col) => col.name).toList();
switch (action) {
case "获取组件":
case "遍历组件":
iterateStack.add(component.name); //
iterateOutputFields.putIfAbsent(iterateStack.last, () => []).addAll(fieldNames);
iterateOutputFields[iterateStack.last]!.add(component.name);
iteratePartnerMap
.putIfAbsent(member.name, () => [])
.add(CodePartner(name: member.name, fields: fieldNames));
break;
List<String> fieldNames = component.fields.map((col) => col.name).toList();
case "插入组件":
case "修改组件":
for (var field in component.fields) {
if (!outputFields.contains(field.name) &&
!inputFields.contains(field.name) &&
!iterateOutputFields.values.expand((list) => list).contains(field.name)) {
inputFields.add(field.name);
}
}
continue case_get;
case_get:
case "获取组件":
//
if (iterateStack.isNotEmpty) {
//
iterateOutputFields.putIfAbsent(iterateStack.last, () => []).addAll(fieldNames);
iterateOutputFields[iterateStack.last]!.add(component.name);
iteratePartnerMap
.putIfAbsent(member.name, () => [])
.add(CodePartner(name: member.name, fields: fieldNames));
} else {
//
outputFields.addAll(fieldNames);
outputFields.add(component.name);
beforePartner.add(CodePartner(name: member.name, fields: fieldNames));
}
iterateStack.add(component.name); //
break;
default:
for (var field in component.fields) {
if (!outputFields.contains(field.name) &&
!inputFields.contains(field.name) &&
!iterateOutputFields.values.expand((list) => list).contains(field.name)) {
inputFields.add(field.name);
}
}
break;
}

8
win_text_editor/lib/modules/code_creater/widgets/code_creater_view.dart

@ -71,7 +71,6 @@ class _CodeCreaterViewState extends State<CodeCreaterView> { @@ -71,7 +71,6 @@ class _CodeCreaterViewState extends State<CodeCreaterView> {
members: _controller.members,
onMoveMember: _moveMember,
onDeleteMember: _deleteMember,
onDeleteAll: _deleteAll,
onMoveToTop: _moveToTop,
onMoveToBottom: _moveToBottom,
onActionTypeChanged:
@ -145,13 +144,6 @@ class _CodeCreaterViewState extends State<CodeCreaterView> { @@ -145,13 +144,6 @@ class _CodeCreaterViewState extends State<CodeCreaterView> {
});
}
void _deleteAll() {
setState(() {
_controller.members.clear();
_updateDisplay();
});
}
void _selectOperation(String? operation) {
if (operation == null || operation.isEmpty) {
return;

42
win_text_editor/lib/modules/code_creater/widgets/node_table.dart

@ -13,7 +13,6 @@ class NodeTable extends StatefulWidget { @@ -13,7 +13,6 @@ class NodeTable extends StatefulWidget {
final List<OutlineNode> members;
final Function(int, int) onMoveMember;
final Function(int) onDeleteMember;
final Function() onDeleteAll;
final Function(int) onMoveToTop;
final Function(int) onMoveToBottom;
final Function(int, String)? onActionTypeChanged; //
@ -23,7 +22,6 @@ class NodeTable extends StatefulWidget { @@ -23,7 +22,6 @@ class NodeTable extends StatefulWidget {
required this.members,
required this.onMoveMember,
required this.onDeleteMember,
required this.onDeleteAll,
required this.onMoveToTop,
required this.onMoveToBottom,
this.onActionTypeChanged, //
@ -110,7 +108,6 @@ class NodeTableState extends State<NodeTable> { @@ -110,7 +108,6 @@ class NodeTableState extends State<NodeTable> {
final canMoveUp = _selectedRowIndex != null && _selectedRowIndex! > 0;
final canMoveDown = _selectedRowIndex != null && _selectedRowIndex! < widget.members.length - 1;
final canDelete = _selectedRowIndex != null;
final canDeleteAll = widget.members.isNotEmpty;
return Padding(
padding: const EdgeInsets.all(2.0),
@ -161,15 +158,6 @@ class NodeTableState extends State<NodeTable> { @@ -161,15 +158,6 @@ class NodeTableState extends State<NodeTable> {
onPressed: canDelete ? () => widget.onDeleteMember(_selectedRowIndex!) : null,
tooltip: '删除行',
),
IconButton(
icon: Icon(
Icons.delete_forever,
size: 14,
color: canDeleteAll ? Colors.red : Colors.grey,
),
onPressed: canDeleteAll ? _showDeleteAllConfirmation : null,
tooltip: '全部删除',
),
],
),
],
@ -177,36 +165,6 @@ class NodeTableState extends State<NodeTable> { @@ -177,36 +165,6 @@ class NodeTableState extends State<NodeTable> {
);
}
void _showDeleteAllConfirmation() {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('确认删除'),
content: const Text('确定要删除所有节点吗?此操作不可撤销。'),
actions: [
TextButton(onPressed: () => Navigator.of(context).pop(false), child: const Text('取消')),
TextButton(
onPressed: () {
Navigator.of(context).pop(true);
_deleteAllMembers();
},
child: const Text('删除', style: TextStyle(color: Colors.red)),
),
],
);
},
);
}
//
void _deleteAllMembers() {
setState(() {
_selectedRowIndex = null;
});
widget.onDeleteAll();
}
void _handleRowSelection() {
if (_stateManager?.currentRow == null) return;
setState(() {

7
win_text_editor/lib/modules/data_format/widgets/grid_view.dart

@ -54,11 +54,8 @@ class _DataGridViewState extends State<DataGridView> { @@ -54,11 +54,8 @@ class _DataGridViewState extends State<DataGridView> {
),
//
Expanded(
child: Row(
children: [
child:
_csvData.isEmpty ? const Center(child: Text('请选择CSV文件')) : _buildScrollableDataGrid(),
],
),
),
],
);
@ -173,9 +170,9 @@ class _DataGridViewState extends State<DataGridView> { @@ -173,9 +170,9 @@ class _DataGridViewState extends State<DataGridView> {
columns: columns,
gridLinesVisibility: GridLinesVisibility.both,
headerGridLinesVisibility: GridLinesVisibility.both,
columnWidthMode: ColumnWidthMode.fill,
allowColumnsResizing: true,
columnResizeMode: ColumnResizeMode.onResizeEnd,
columnWidthMode: ColumnWidthMode.none,
);
}
}

1
win_text_editor/lib/modules/template_parser/widgets/grid_view.dart

@ -135,7 +135,6 @@ class TemplateGridView extends StatelessWidget { @@ -135,7 +135,6 @@ class TemplateGridView extends StatelessWidget {
columns: columns,
gridLinesVisibility: GridLinesVisibility.both,
headerGridLinesVisibility: GridLinesVisibility.both,
columnWidthMode: ColumnWidthMode.fill,
allowColumnsResizing: true,
allowEditing: true, //
editingGestureType: EditingGestureType.tap, //

7
win_text_editor/lib/modules/uft_component/services/uft_component_service.dart

@ -68,6 +68,10 @@ class UftComponentService { @@ -68,6 +68,10 @@ class UftComponentService {
final name = node.getAttribute('name') ?? '';
final chineseName = node.getAttribute('chineseName') ?? '';
if (filterName != null && filterName.isNotEmpty && filterName != name) {
continue; //
}
final fields = <Field>[];
List<Index>? indexes = [];
int index = 1;
@ -126,9 +130,6 @@ class UftComponentService { @@ -126,9 +130,6 @@ class UftComponentService {
);
}
if (filterName != null && filterName.isNotEmpty) {
return _components.where((com) => com.name == filterName).toList();
}
return _components;
} on xml.XmlParserException catch (e) {
_logger.error("XML解析错误: ${e.message}");

1
win_text_editor/lib/shared/base/my_sf_data_grid.dart

@ -61,7 +61,6 @@ class MySfDataGrid<T extends SelectableItem> extends StatelessWidget { @@ -61,7 +61,6 @@ class MySfDataGrid<T extends SelectableItem> extends StatelessWidget {
gridLinesVisibility: GridLinesVisibility.both,
headerGridLinesVisibility: GridLinesVisibility.both,
allowColumnsResizing: true, //
columnWidthMode: ColumnWidthMode.fill,
columnResizeMode: ColumnResizeMode.onResizeEnd, //
controller: controller,
columns: [

Loading…
Cancel
Save