Browse Source

开始搞格式转换

master
hejl 2 months ago
parent
commit
effdc96a56
  1. BIN
      documents/PB UFT模块迁移方案.docx
  2. 2
      win_text_editor/lib/main.dart
  3. 5
      win_text_editor/lib/modules/content_search/widgets/results_view.dart
  4. 13
      win_text_editor/lib/modules/data_format/widgets/data_format_view.dart
  5. 2
      win_text_editor/lib/modules/data_format/widgets/format_text_panel.dart
  6. 16
      win_text_editor/lib/modules/data_format/widgets/grid_view.dart
  7. 2
      win_text_editor/lib/modules/template_parser/widgets/grid_view.dart
  8. 8
      win_text_editor/lib/shared/components/editor_toolbar.dart

BIN
documents/PB UFT模块迁移方案.docx

Binary file not shown.

2
win_text_editor/lib/main.dart

@ -10,7 +10,7 @@ void main() async {
// //
await windowManager.ensureInitialized(); await windowManager.ensureInitialized();
WindowOptions windowOptions = const WindowOptions( WindowOptions windowOptions = const WindowOptions(
size: Size(1200, 1000), size: Size(1600, 1000),
center: true, center: true,
title: '文件操作工具箱', title: '文件操作工具箱',
); );

5
win_text_editor/lib/modules/content_search/widgets/results_view.dart

@ -128,13 +128,14 @@ class ResultsView extends StatelessWidget {
], ],
selectionMode: SelectionMode.multiple, selectionMode: SelectionMode.multiple,
navigationMode: GridNavigationMode.cell, navigationMode: GridNavigationMode.cell,
allowColumnsResizing: true,
gridLinesVisibility: GridLinesVisibility.both, gridLinesVisibility: GridLinesVisibility.both,
headerGridLinesVisibility: GridLinesVisibility.both, headerGridLinesVisibility: GridLinesVisibility.both,
allowSorting: false, allowSorting: false,
allowFiltering: false, allowFiltering: false,
columnWidthMode: ColumnWidthMode.fill, columnWidthMode: ColumnWidthMode.none,
isScrollbarAlwaysShown: true, isScrollbarAlwaysShown: true,
allowColumnsResizing: true, //
columnResizeMode: ColumnResizeMode.onResizeEnd,
); );
} }

13
win_text_editor/lib/modules/data_format/widgets/data_format_view.dart

@ -50,18 +50,9 @@ class _DataFormatViewState extends State<DataFormatView> {
return const Row( return const Row(
children: [ children: [
// GridView (50%) // GridView (50%)
Expanded( Expanded(flex: 1, child: Card(child: DataGridView())),
flex: 1,
child: Padding(
padding: EdgeInsets.only(right: 4.0),
child: Card(child: DataGridView()),
),
),
// FormatText (50%) // FormatText (50%)
Expanded( Expanded(flex: 1, child: FormatTextPanel()),
flex: 1,
child: Padding(padding: EdgeInsets.only(left: 4.0), child: FormatTextPanel()),
),
], ],
); );
}, },

2
win_text_editor/lib/modules/data_format/widgets/format_text_panel.dart

@ -15,7 +15,7 @@ class FormatTextPanel extends StatelessWidget {
height: 200, height: 200,
child: TextEditor(tabId: 'format_template', title: 'Mustache模板'), child: TextEditor(tabId: 'format_template', title: 'Mustache模板'),
), ),
const Divider(height: 1), const SizedBox(height: 6),
// () // ()
Expanded( Expanded(
child: TextEditor( child: TextEditor(

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

@ -104,12 +104,16 @@ class _DataGridViewState extends State<DataGridView> {
).convert(content, fieldDelimiter: _delimiter); ).convert(content, fieldDelimiter: _delimiter);
// //
final cleanedData = csvTable final cleanedData =
.where((row) => row.isNotEmpty && row.any((cell) => cell.toString().trim().isNotEmpty)) csvTable
.where(
(row) => row.isNotEmpty && row.any((cell) => cell.toString().trim().isNotEmpty),
)
.toList(); // List .toList(); // List
// //
final dataWithIndex = cleanedData.asMap().entries.map((entry) { final dataWithIndex =
cleanedData.asMap().entries.map((entry) {
final index = entry.key; final index = entry.key;
final row = entry.value; final row = entry.value;
// ()"序号" // ()"序号"
@ -153,7 +157,7 @@ class _DataGridViewState extends State<DataGridView> {
...headers.sublist(1).map<GridColumn>((header) { ...headers.sublist(1).map<GridColumn>((header) {
return GridColumn( return GridColumn(
columnName: header.toString(), columnName: header.toString(),
width: 150, // minimumWidth: 150, //
label: Container( label: Container(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
color: Colors.grey[200], color: Colors.grey[200],
@ -171,7 +175,9 @@ class _DataGridViewState extends State<DataGridView> {
columns: columns, columns: columns,
gridLinesVisibility: GridLinesVisibility.both, gridLinesVisibility: GridLinesVisibility.both,
headerGridLinesVisibility: GridLinesVisibility.both, headerGridLinesVisibility: GridLinesVisibility.both,
columnWidthMode: ColumnWidthMode.fitByCellValue, allowColumnsResizing: true,
columnResizeMode: ColumnResizeMode.onResizeEnd,
columnWidthMode: ColumnWidthMode.none,
); );
} }
} }

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

@ -127,6 +127,7 @@ class TemplateGridView extends StatelessWidget {
label: Container( label: Container(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
alignment: Alignment.center, alignment: Alignment.center,
color: Colors.grey[200], color: Colors.grey[200],
child: Text(node.isAttribute ? node.name.substring(1) : node.name), child: Text(node.isAttribute ? node.name.substring(1) : node.name),
), ),
@ -140,6 +141,7 @@ class TemplateGridView extends StatelessWidget {
gridLinesVisibility: GridLinesVisibility.both, gridLinesVisibility: GridLinesVisibility.both,
headerGridLinesVisibility: GridLinesVisibility.both, headerGridLinesVisibility: GridLinesVisibility.both,
columnWidthMode: ColumnWidthMode.fill, columnWidthMode: ColumnWidthMode.fill,
allowColumnsResizing: true,
); );
} }

8
win_text_editor/lib/shared/components/editor_toolbar.dart

@ -46,7 +46,7 @@ class EditorToolbar extends StatelessWidget {
return Container( return Container(
height: 40, height: 40,
padding: const EdgeInsets.symmetric(horizontal: 16), padding: const EdgeInsets.symmetric(horizontal: 16),
decoration: BoxDecoration(color: Colors.grey[100]), decoration: BoxDecoration(color: Colors.grey[300]),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
@ -79,11 +79,13 @@ class EditorToolbar extends StatelessWidget {
onPressed: text.isEmpty ? null : onSaveFile, onPressed: text.isEmpty ? null : onSaveFile,
), ),
// //
...customButtons.map((button) => IconButton( ...customButtons.map(
(button) => IconButton(
icon: Icon(button.icon, size: 20), icon: Icon(button.icon, size: 20),
tooltip: button.tooltip, tooltip: button.tooltip,
onPressed: button.isEnabled ? button.onPressed : null, onPressed: button.isEnabled ? button.onPressed : null,
)), ),
),
if (isLoading) if (isLoading)
const Padding( const Padding(
padding: EdgeInsets.only(left: 8), padding: EdgeInsets.only(left: 8),

Loading…
Cancel
Save