75 lines
2.4 KiB
Dart
75 lines
2.4 KiB
Dart
import 'dart:typed_data';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:widget_zoom/widget_zoom.dart';
|
|
|
|
import '../../../../models/measured_record.dart';
|
|
|
|
class SeismogramViewerDialog extends StatelessWidget {
|
|
final MeasuredRecord record;
|
|
final Uint8List image;
|
|
|
|
const SeismogramViewerDialog({
|
|
required this.record,
|
|
required this.image,
|
|
super.key,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
body: ListView(
|
|
children: [
|
|
Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
IconButton(onPressed: Get.back, icon: const Icon(Icons.close)),
|
|
TextButton(
|
|
style: ButtonStyle(
|
|
overlayColor:
|
|
MaterialStateProperty.all(Colors.transparent)),
|
|
onPressed: Get.back,
|
|
child: const Text(
|
|
'Bezár',
|
|
style: TextStyle(color: Colors.blue, fontSize: 14.0),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 15.0),
|
|
child: Text(
|
|
// Az eredeti verzióban ez a cím mindig üresen jelent meg
|
|
// ("Felvétel megtekintése ()") — itt tényleges adattal.
|
|
'Felvétel megtekintése — FFID ${record.ffid ?? "—"}',
|
|
style:
|
|
const TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold),
|
|
),
|
|
),
|
|
if (record.geophoneRange != null)
|
|
Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 15.0),
|
|
child: Text('Geofon-tartomány: ${record.geophoneRange}',
|
|
style: TextStyle(fontSize: 13, color: Colors.grey.shade600)),
|
|
),
|
|
Padding(
|
|
padding: const EdgeInsets.only(top: 10.0),
|
|
child: Center(
|
|
child: WidgetZoom(
|
|
zoomWidget: Image(image: MemoryImage(image)),
|
|
heroAnimationTag: 'seismogram_${record.id}',
|
|
maxScaleFullscreen: 8,
|
|
maxScaleEmbeddedView: 8,
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|