DiscoverModule/lib/ui_screen/ranking.dart

1128 lines
37 KiB
Dart

// import 'dart:convert';
// import 'dart:io';
// // import 'dart:js_interop';
// import 'package:discover_module/custom_widget/floating_btn.dart';
// import 'package:discover_module/custom_widget/show_alert.dart';
// import 'package:discover_module/ui_screen/contacts.dart';
// import 'package:discover_module/ui_screen/profile.dart';
// import 'package:flutter/foundation.dart';
// import 'package:flutter/foundation.dart' show kIsWeb;
// import 'package:flutter/material.dart';
// import 'package:hive_flutter/hive_flutter.dart';
// import 'package:open_file/open_file.dart';
// import 'package:path_provider/path_provider.dart';
// import 'package:syncfusion_flutter_xlsio/xlsio.dart';
// import 'package:universal_html/html.dart' show AnchorElement;
// class Ranking extends StatefulWidget {
// @override
// State<Ranking> createState() => _RankingState();
// }
// class _RankingState extends State<Ranking> {
// late _DataSource _dataSource;
// List<int> selectedno = [];
// @override
// void initState() {
// super.initState();
// print("hii_initState");
// _dataSource = _DataSource(context); // Initialize _DataSource
// }
// @override
// Widget build(BuildContext context) {
// return SafeArea(
// child: Scaffold(
// body: ListView(
// padding: const EdgeInsets.all(3),
// children: [
// PaginatedDataTable(
// header: const Text(
// 'HCP RANKING',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 18.0,
// fontStyle: FontStyle.normal),
// ),
// showFirstLastButtons: true,
// showEmptyRows: false,
// showCheckboxColumn: true,
// actions: [
// IconButton(
// onPressed: () {
// _createExcel();
// },
// icon: const Icon(Icons.download,
// color: Color.fromARGB(255, 0, 71, 132)))
// ],
// rowsPerPage: 5,
// columns: const [
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Name',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Tier',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Rank',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Score',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Event',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Affliations',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Publications',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Trails',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// ],
// source: _dataSource,
// ),
// ],
// ),
// floatingActionButton: Visibility(
// visible: true,
// child: FloatingBtn(
// icon: Icons.add,
// title: "add",
// onTap: () async {
// List<int> selectedRowIds = _dataSource.getSelectedRowIds();
// // Do something with selectedRowIds
// print('Selected Row IDstrndsss: $selectedRowIds');
// if (selectedRowIds.isEmpty) {
// showDialog(
// context: context,
// builder: (_) {
// return Alert(
// data: "Please Select the user",
// onPressed: () {
// Navigator.of(context).pop();
// print('OK button pressed');
// },
// );
// });
// } else {
// for (int i = 0; i < selectedRowIds.length; i++) {
// print('The id id : ${selectedRowIds[i]}');
// print("checking_value_istrends: ${selectedRowIds[i]}");
// // selectedno.add(selectedRowIds[i]);
// HiveFunctions.addno(selectedRowIds[i]);
// // _contactbox.put(i, selectedRowIds[i]);
// HiveFunctions.createUser({
// "name": "Gerosa,Gino",
// "org": "Azienda Ospedaliera di Padova",
// "adrr": "Via Giustiniani 2, Padova, Veneto 35128, Italy",
// "phone": "+390498212410X12",
// "Pphone": "+390498212410X12",
// "email": "Gerosa,Gino@gmail.com",
// "affno": "75",
// "eveno": "8",
// "pubno": "251",
// "trailno": "1"
// });
// }
// showDialog(
// context: context,
// builder: (_) {
// return Alert(
// data: "User Added Successfully",
// onPressed: () {
// Navigator.of(context).pop();
// // Navigator.push(context,
// // MaterialPageRoute(builder: (_) => Contacts()));
// },
// );
// });
// }
// },
// )),
// ),
// );
// }
// Future<void> _createExcel() async {
// //Create an Excel document.
// //Creating a workbook.
// final Workbook workbook = Workbook();
// //Accessing via index
// final Worksheet sheet = workbook.worksheets[0];
// // sheet.getRangeByName('A1').setText('pooja');
// /////////////////////////////////////////////////////////////////////////////
// sheet.getRangeByName('A1').setText('Name');
// sheet.getRangeByName('A2').setText('Gerosa, Gino');
// sheet.getRangeByName('A3').setText('Gerosa, Gino');
// sheet.getRangeByName('A4').setText('Gerosa, Gino');
// final Style headingStyle = workbook.styles.add('HeadingStyle');
// headingStyle.bold = true;
// headingStyle.hAlign = HAlignType.center;
// headingStyle.wrapText = true;
// sheet.getRangeByName('B1').setText('Tier');
// sheet.getRangeByName('B2').setText("Tier1");
// sheet.getRangeByName('B3').setText("Tier1");
// sheet.getRangeByName('B4').setText("Tier1");
// sheet.getRangeByName('C1').setText('Rank');
// sheet.getRangeByName('C2').setNumber(1);
// sheet.getRangeByName('C3').setNumber(1);
// sheet.getRangeByName('C4').setNumber(1);
// sheet.getRangeByName('D1').setText('Score');
// sheet.getRangeByName('D2').setNumber(0);
// sheet.getRangeByName('D3').setNumber(0);
// sheet.getRangeByName('D4').setNumber(0);
// sheet.getRangeByName('E1').setText('Event');
// sheet.getRangeByName('E2').setNumber(0);
// sheet.getRangeByName('E3').setNumber(0);
// sheet.getRangeByName('E4').setNumber(0);
// sheet.getRangeByName('F1').setText('Affiliations');
// sheet.getRangeByName('F2').setNumber(0);
// sheet.getRangeByName('F3').setNumber(0);
// sheet.getRangeByName('F4').setNumber(0);
// sheet.getRangeByName('G1').setText('Publications');
// sheet.getRangeByName('G2').setNumber(0);
// sheet.getRangeByName('G3').setNumber(0);
// sheet.getRangeByName('G4').setNumber(0);
// sheet.getRangeByName('H1').setText('Trails');
// sheet.getRangeByName('H2').setNumber(0);
// sheet.getRangeByName('H3').setNumber(0);
// sheet.getRangeByName('H4').setNumber(0);
// //Defining a global style with properties.
// final Style globalStyle = workbook.styles.add('globalStyle');
// //globalStyle.backColor = '#37D8E9';
// globalStyle.fontName = 'Times New Roman';
// globalStyle.fontSize = 12;
// // globalStyle.fontColor = '#C67878';
// globalStyle.fontColor = '#C67878';
// globalStyle.italic = true;
// globalStyle.bold = true;
// globalStyle.underline = true;
// globalStyle.wrapText = true;
// globalStyle.hAlign = HAlignType.center;
// globalStyle.vAlign = VAlignType.center;
// globalStyle.borders.all.lineStyle = LineStyle.thick;
// // globalStyle.borders.all.color = '#9954CC';
// final Style globalStyle1 = workbook.styles.add('globalStyle1');
// globalStyle1.fontSize = 14;
// // globalStyle1.fontColor = '#362191';
// globalStyle1.hAlign = HAlignType.center;
// globalStyle1.vAlign = VAlignType.center;
// globalStyle1.borders.bottom.lineStyle = LineStyle.thin;
// //globalStyle1.borders.bottom.color = '#829193';
// globalStyle1.numberFormat = '0.00';
// //Apply GlobalStyle
// // sheet.getRangeByName('A1:D1').cellStyle = globalStyle;
// // //Apply GlobalStyle1
// // sheet.getRangeByName('B2:D4').cellStyle = globalStyle1;
// //////////////////////////////////////////////////////////////////////////////
// final List<int> bytes = workbook.saveSync();
// print("hii");
// if (kIsWeb) {
// AnchorElement(
// href:
// 'data:application/octet-stream;charset=utf-16le;base64,${base64.encode(bytes)}')
// ..setAttribute('download', 'Output.xlsx')
// ..click();
// } else {
// // final String path = (await getApplicationDocumentsDirectory()).path;
// //final directory = await getExternalStorageDirectory();
// Directory? directory = Platform.isAndroid
// ? await getExternalStorageDirectory()
// : await getApplicationDocumentsDirectory();
// final path = directory!.path;
// final String filename =
// Platform.isWindows ? '$path\\Output.xlsx' : '$path/Output.xlsx';
// // final String filename = '$path/Output.xlsx';
// final File file = File(filename);
// await file.writeAsBytes(bytes, flush: true);
// OpenFile.open(filename);
// }
// }
// }
// class HiveFunctions {
// // String userHiveBox="User Box";
// // Box which will use to store the things
// static final _contactbox = Hive.box("mycontact");
// static var box1 = Hive.box('checkvalue');
// static createUser(Map data) {
// _contactbox.add(data);
// }
// static List getAllUsers() {
// final data = _contactbox.keys.map((key) {
// final value = _contactbox.get(key);
// print("Checking_Name : $value");
// return {
// "name": value["name"],
// "org": value["org"],
// "adrr": value["adrr"],
// "phone": value["phone"],
// "Pphone": value["Pphone"],
// "email": value["email"],
// "affno": value["affno"],
// "eveno": value["eveno"],
// "pubno": value["pubno"],
// "trailno": value["trailno"]
// };
// }).toList();
// return data.reversed.toList();
// }
// static List getindexUsers() {
// final data = _contactbox.keys.map((key) {
// final value = _contactbox.get(key);
// print("Checking_Name : $value");
// return {
// "name": value["name"],
// "org": value["org"],
// "adrr": value["adrr"],
// "phone": value["phone"],
// "Pphone": value["Pphone"],
// "email": value["email"],
// "affno": value["affno"],
// "eveno": value["eveno"],
// "pubno": value["pubno"],
// "trailno": value["trailno"]
// };
// }).toList();
// return data.reversed.toList();
// }
// static addno(int selectedRowId) {
// // final box1 = Hive.box("mycontact");
// print("SelectedStoredvaluessss: $selectedRowId");
// box1.add(selectedRowId);
// }
// static getno() {
// // final box1 = Hive.box("mycontact");
// return box1.values;
// }
// }
// class _Row {
// _Row(
// this.identifier,
// this.valueA,
// this.valueC,
// this.valueD,
// this.valueE,
// this.valueF,
// this.valueG,
// this.valueH,
// this.valueI,
// this.selected, // Add selected parameter
// );
// final int identifier;
// final String valueA;
// final String valueC;
// final String valueD;
// final String valueE;
// final String valueF;
// final String valueG;
// final String valueH;
// final String valueI;
// bool selected = false;
// }
// class _DataSource extends DataTableSource {
// final BuildContext context;
// late List<_Row> _rows;
// // late List<int> _selectedRowsIndexes = []; // List to track selected rows
// final List<int> _selectedRowIds = [];
// _DataSource(this.context) {
// _rows = <_Row>[
// for (int i = 0; i < 20; i++)
// _Row(
// i, 'Gerosa, Gino', 'Tier1', '1', '0', '0', '0', '0', '0', check(i)),
// ];
// //}
// }
// List<int> getSelectedRowIds() {
// return _selectedRowIds; // Return a copy to prevent direct modification
// }
// int _selectedCount = 0;
// @override
// DataRow? getRow(int index) {
// assert(index >= 0);
// if (index >= _rows.length) return null;
// final row = _rows[index];
// return DataRow.byIndex(
// index: index,
// selected: row.selected,
// onSelectChanged: (value) {
// if (row.selected != value) {
// // _selectedCount += value! ? 1 : -1;
// // assert(_selectedCount >= 0);
// row.selected = value!;
// if (value) {
// print("Selected");
// _selectedRowIds.add(row.identifier); // Add the row ID to the list
// print("Selected_selectedRowIds :$_selectedRowIds");
// } else {
// _selectedRowIds
// .remove(row.identifier); // Remove the row ID from the list
// }
// notifyListeners();
// print("Selectedddd_is $value");
// print("Selectedddd_value ${row.valueA}");
// }
// },
// cells: [
// DataCell(
// Text(row.valueA),
// onTap: () {
// print("hiii Data cell tap ${row.valueA}");
// Navigator.push(
// context, MaterialPageRoute(builder: (context) => Profile()));
// },
// ),
// DataCell(Text(row.valueC)),
// DataCell(Text(row.valueD.toString())),
// DataCell(Text(row.valueE)),
// DataCell(Text(row.valueF)),
// DataCell(Text(row.valueG)),
// DataCell(Text(row.valueH)),
// DataCell(Text(row.valueI)),
// ],
// );
// }
// @override
// int get rowCount => _rows.length;
// @override
// bool get isRowCountApproximate => false;
// @override
// int get selectedRowCount => _selectedCount;
// bool check(int i) {
// // print("I_am_i: $i");
// print("_selectedRowIds_i: ${HiveFunctions.getno()}");
// //HiveFunctions.getno();
// if (HiveFunctions.getno().contains(i)) {
// print("Iam_in: $i");
// return true;
// }
// return false;
// }
// }
import 'dart:convert';
import 'dart:io';
// import 'dart:js_interop';
import 'package:discover_module/custom_widget/floating_btn.dart';
import 'package:discover_module/custom_widget/show_alert.dart';
import 'package:discover_module/hive_fun.dart';
import 'package:discover_module/provider_class/hcp%20_provider.dart';
import 'package:discover_module/ui_screen/contacts.dart';
import 'package:discover_module/ui_screen/filters_menu.dart';
import 'package:discover_module/ui_screen/interactionform/NewtworkConnectivity.dart';
import 'package:discover_module/ui_screen/profile.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'package:flutter/material.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:open_file/open_file.dart';
import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
import 'package:syncfusion_flutter_xlsio/xlsio.dart';
import 'package:universal_html/html.dart' show AnchorElement;
List<_Row> _rows = [];
class Ranking extends StatefulWidget {
@override
State<Ranking> createState() => _RankingState();
}
class _RankingState extends State<Ranking> {
late _DataSource _dataSource;
List<int> selectedno = [];
@override
void initState() {
super.initState();
print("hii_initState");
gethcpdata();
_dataSource = _DataSource(context); // Initialize _DataSource
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: ListView(
padding: const EdgeInsets.all(3),
children: [
PaginatedDataTable(
header: const Text(
'HCP RANKING',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 18.0,
fontStyle: FontStyle.normal),
),
showFirstLastButtons: true,
showEmptyRows: false,
showCheckboxColumn: true,
actions: [
IconButton(
onPressed: () {
_createExcel();
},
icon: const Icon(Icons.download,
color: Color.fromARGB(255, 0, 71, 132)))
],
rowsPerPage: 5,
columns: const [
DataColumn(
label: FittedBox(
fit: BoxFit.scaleDown,
child: Text('Name',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
fontStyle: FontStyle.normal)),
)),
DataColumn(
label: FittedBox(
fit: BoxFit.scaleDown,
child: Text('Tier',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
fontStyle: FontStyle.normal)),
)),
DataColumn(
label: FittedBox(
fit: BoxFit.scaleDown,
child: Text('Rank',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
fontStyle: FontStyle.normal)),
)),
DataColumn(
label: FittedBox(
fit: BoxFit.scaleDown,
child: Text('Score',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
fontStyle: FontStyle.normal)),
)),
DataColumn(
label: FittedBox(
fit: BoxFit.scaleDown,
child: Text('Event',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
fontStyle: FontStyle.normal)),
)),
DataColumn(
label: FittedBox(
fit: BoxFit.scaleDown,
child: Text('Affliations',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
fontStyle: FontStyle.normal)),
)),
DataColumn(
label: FittedBox(
fit: BoxFit.scaleDown,
child: Text('Publications',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
fontStyle: FontStyle.normal)),
)),
DataColumn(
label: FittedBox(
fit: BoxFit.scaleDown,
child: Text('Trails',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
fontStyle: FontStyle.normal)),
)),
],
source: _dataSource,
),
],
),
floatingActionButton: Visibility(
visible: true,
child: FloatingBtn(
icon: Icons.add,
title: "add",
onTap: () async {
List<int> selectedRowIds = _dataSource.getSelectedRowIds();
// Do something with selectedRowIds
print('Selected Row IDstrndsss: $selectedRowIds');
if (selectedRowIds.isEmpty) {
showDialog(
context: context,
builder: (_) {
return Alert(
data: "Please Select the user",
onPressed: () {
Navigator.of(context).pop();
print('OK button pressed');
},
);
});
} else {
for (int i = 0; i < selectedRowIds.length; i++) {
print('The id id : ${selectedRowIds[i]}');
//List<_Row> _rows = [];
final row = _rows[selectedRowIds[i] - 1];
print(
"checking_value_istrends: ${selectedRowIds[i]},${row.valueA}");
// selectedno.add(selectedRowIds[i]);
HiveFunctions.addno(selectedRowIds[i]);
// _contactbox.put(i, selectedRowIds[i]);
HiveFunctions.createUser({
"id": selectedRowIds[i],
"name": row.valueA,
"org": row.org,
"addr": row.addr,
"phone": row.mno,
"phone_no": row.mno,
"email": row.valueC,
"affiliations_count": row.valueG,
"events_count": row.valueF,
"publications_count": row.valueH,
"trail_count": "1",
"summarry": row.smry,
"license_no": row.lin,
"p_suffix": row.suffix,
"speciality": row.spl,
"sub_speciality": row.sub_spl,
});
}
showDialog(
context: context,
builder: (_) {
return Alert(
data: "User Added Successfully",
onPressed: () {
Navigator.of(context).pop();
// Navigator.push(context,
// MaterialPageRoute(builder: (_) => Contacts()));
},
);
});
}
},
)),
),
);
}
Future<void> _createExcel() async {
//Create an Excel document.
//Creating a workbook.
final Workbook workbook = Workbook();
//Accessing via index
final Worksheet sheet = workbook.worksheets[0];
// sheet.getRangeByName('A1').setText('pooja');
/////////////////////////////////////////////////////////////////////////////
sheet.getRangeByName('A1').setText('Name');
sheet.getRangeByName('A2').setText('Gerosa, Gino');
sheet.getRangeByName('A3').setText('Gerosa, Gino');
sheet.getRangeByName('A4').setText('Gerosa, Gino');
final Style headingStyle = workbook.styles.add('HeadingStyle');
headingStyle.bold = true;
headingStyle.hAlign = HAlignType.center;
headingStyle.wrapText = true;
sheet.getRangeByName('B1').setText('Tier');
sheet.getRangeByName('B2').setText("Tier1");
sheet.getRangeByName('B3').setText("Tier1");
sheet.getRangeByName('B4').setText("Tier1");
sheet.getRangeByName('C1').setText('Rank');
sheet.getRangeByName('C2').setNumber(1);
sheet.getRangeByName('C3').setNumber(1);
sheet.getRangeByName('C4').setNumber(1);
sheet.getRangeByName('D1').setText('Score');
sheet.getRangeByName('D2').setNumber(0);
sheet.getRangeByName('D3').setNumber(0);
sheet.getRangeByName('D4').setNumber(0);
sheet.getRangeByName('E1').setText('Event');
sheet.getRangeByName('E2').setNumber(0);
sheet.getRangeByName('E3').setNumber(0);
sheet.getRangeByName('E4').setNumber(0);
sheet.getRangeByName('F1').setText('Affiliations');
sheet.getRangeByName('F2').setNumber(0);
sheet.getRangeByName('F3').setNumber(0);
sheet.getRangeByName('F4').setNumber(0);
sheet.getRangeByName('G1').setText('Publications');
sheet.getRangeByName('G2').setNumber(0);
sheet.getRangeByName('G3').setNumber(0);
sheet.getRangeByName('G4').setNumber(0);
sheet.getRangeByName('H1').setText('Trails');
sheet.getRangeByName('H2').setNumber(0);
sheet.getRangeByName('H3').setNumber(0);
sheet.getRangeByName('H4').setNumber(0);
//Defining a global style with properties.
final Style globalStyle = workbook.styles.add('globalStyle');
//globalStyle.backColor = '#37D8E9';
globalStyle.fontName = 'Times New Roman';
globalStyle.fontSize = 12;
// globalStyle.fontColor = '#C67878';
globalStyle.fontColor = '#C67878';
globalStyle.italic = true;
globalStyle.bold = true;
globalStyle.underline = true;
globalStyle.wrapText = true;
globalStyle.hAlign = HAlignType.center;
globalStyle.vAlign = VAlignType.center;
globalStyle.borders.all.lineStyle = LineStyle.thick;
// globalStyle.borders.all.color = '#9954CC';
final Style globalStyle1 = workbook.styles.add('globalStyle1');
globalStyle1.fontSize = 14;
// globalStyle1.fontColor = '#362191';
globalStyle1.hAlign = HAlignType.center;
globalStyle1.vAlign = VAlignType.center;
globalStyle1.borders.bottom.lineStyle = LineStyle.thin;
//globalStyle1.borders.bottom.color = '#829193';
globalStyle1.numberFormat = '0.00';
final List<int> bytes = workbook.saveSync();
print("hii");
if (kIsWeb) {
AnchorElement(
href:
'data:application/octet-stream;charset=utf-16le;base64,${base64.encode(bytes)}')
..setAttribute('download', 'Output.xlsx')
..click();
} else {
// final String path = (await getApplicationDocumentsDirectory()).path;
//final directory = await getExternalStorageDirectory();
Directory? directory = Platform.isAndroid
? await getExternalStorageDirectory()
: await getApplicationDocumentsDirectory();
final path = directory!.path;
final String filename =
Platform.isWindows ? '$path\\Output.xlsx' : '$path/Output.xlsx';
// final String filename = '$path/Output.xlsx';
final File file = File(filename);
await file.writeAsBytes(bytes, flush: true);
OpenFile.open(filename);
}
}
void gethcpdata() {
// final data = Provider.of<hcpProvider>(context, listen: false);
}
}
// class HiveFunctions {
// // String userHiveBox="User Box";
// // Box which will use to store the things
// static final _contactbox = Hive.box("mycontact");
// static var box1 = Hive.box('checkvalue');
// static createUser(Map data) {
// _contactbox.add(data);
// }
// static List getAllUsers() {
// final data = _contactbox.keys.map((key) {
// final value = _contactbox.get(key);
// print("Checking_Name : $value");
// return {
// "name": value["name"],
// "org": value["org"],
// "adrr": value["adrr"],
// "phone": value["phone"],
// "Pphone": value["Pphone"],
// "email": value["email"],
// "affno": value["affno"],
// "eveno": value["eveno"],
// "pubno": value["pubno"],
// "trailno": value["trailno"]
// };
// }).toList();
// return data.reversed.toList();
// }
// static List getindexUsers() {
// final data = _contactbox.keys.map((key) {
// final value = _contactbox.get(key);
// print("Checking_Name : $value");
// return {
// "name": value["name"],
// "org": value["org"],
// "adrr": value["adrr"],
// "phone": value["phone"],
// "Pphone": value["Pphone"],
// "email": value["email"],
// "affno": value["affno"],
// "eveno": value["eveno"],
// "pubno": value["pubno"],
// "trailno": value["trailno"]
// };
// }).toList();
// return data.reversed.toList();
// }
// static addno(int selectedRowId) {
// // final box1 = Hive.box("mycontact");
// print("SelectedStoredvaluessss: $selectedRowId");
// box1.add(selectedRowId);
// }
// static getno() {
// // final box1 = Hive.box("mycontact");
// return box1.values;
// }
// }
class _Row {
_Row({
required this.identifier,
required this.valueA,
required this.valueC,
required this.valueD,
required this.valueE,
required this.valueF,
required this.valueG,
required this.valueH,
required this.valueI,
required this.selected,
this.org,
this.mno,
this.smry,
this.lin,
this.suffix,
this.spl,
this.sub_spl,
this.addr, // Add selected parameter
});
final int identifier;
final String valueA;
final String valueC;
final String valueD;
final String valueE;
final String valueF;
final String valueG;
final String valueH;
final String valueI;
bool selected = false;
String? org;
String? mno;
String? smry;
String? lin;
String? suffix;
String? spl;
String? sub_spl;
String? addr;
}
class _DataSource extends DataTableSource {
final BuildContext context;
// List<_Row> _rows = [];
// late List<int> _selectedRowsIndexes = []; // List to track selected rows
final List<int> _selectedRowIds = [];
List list = [];
_DataSource(this.context) {
render_hcpdata();
// _rows = <_Row>[
// for (int i = 0; i < 20; i++)
// _Row(
// i, 'Gerosa, Gino', 'Tier1', '1', '0', '0', '0', '0', '0', check(i)),
// ];
// }
}
List<int> getSelectedRowIds() {
return _selectedRowIds; // Return a copy to prevent direct modification
}
int _selectedCount = 0;
@override
DataRow? getRow(int index) {
assert(index >= 0);
if (index >= _rows.length) return null;
final row = _rows[index];
return DataRow.byIndex(
index: index,
selected: row.selected,
onSelectChanged: (value) {
if (row.selected != value) {
// _selectedCount += value! ? 1 : -1;
// assert(_selectedCount >= 0);
row.selected = value!;
if (value) {
print("Selected");
_selectedRowIds.add(row.identifier); // Add the row ID to the list
print("Selected_selectedRowIds :$_selectedRowIds");
} else {
_selectedRowIds
.remove(row.identifier); // Remove the row ID from the list
}
notifyListeners();
print("Selectedddd_is $value");
print("Selectedddd_value ${row.valueA}");
}
},
cells: [
DataCell(
Text(row.valueA),
onTap: () {
print("hiii Data cell tap ${row.valueA}");
Navigator.push(
context, MaterialPageRoute(builder: (context) => Profile()));
},
),
DataCell(Text(row.valueC)),
DataCell(Text(row.valueD.toString())),
DataCell(Text(row.valueE)),
DataCell(Text(row.valueF)),
DataCell(Text(row.valueG)),
DataCell(Text(row.valueH)),
DataCell(Text(row.valueI)),
],
);
}
@override
int get rowCount => _rows.length;
@override
bool get isRowCountApproximate => false;
@override
int get selectedRowCount => _selectedCount;
bool check(int i) {
// print("I_am_i: $i");
print("_selectedRowIds_i: ${HiveFunctions.getno()}");
//HiveFunctions.getno();
if (HiveFunctions.getno().contains(i)) {
print("Iam_in: $i");
return true;
}
return false;
}
Future<void> render_hcpdata() async {
NetworkConnectivity networkConnectivity = NetworkConnectivity();
bool isOnline = await networkConnectivity.isInternetAvailable();
print("RankingPage_isOnline: $isOnline");
if (isOnline) {
final hcpdata = Provider.of<hcpProvider>(context, listen: false);
await hcpdata.getHCPProvider();
final hcplist = hcpdata.list;
print("LookingHcpList: $hcplist");
// _rows = <_Row>[
// for (int i = 0; i < 20; i++)
// _Row(
// i, 'Gerosa, Gino', 'Tier1', '1', '0', '0', '0', '0', '0', check(i)),
// ];
_rows = hcplist
.map((e) => _Row(
identifier: e['id'],
valueA: e['name'],
valueC: e['email'],
valueD: e['rank'].toString(),
valueE: e['score'].toString(),
valueF: e['events_count'].toString(),
valueG: e['affiliations_count'].toString(),
valueH: e['publications_count'].toString(),
valueI: '0',
selected: check(e['id']),
org: "Aissel",
mno: e['phone_no'].toString(),
smry: e['summarry'],
lin: e['license_no'].toString(),
suffix: e['p_suffix'],
spl: e['speciality'],
sub_spl: e['sub_speciality'],
addr: e['addr'],
))
.toList();
notifyListeners();
} else {
print("get_Storeddata: ${HiveFunctions.gethcpdata()}");
list = HiveFunctions.gethcpdata().toList();
// debugPrint(HiveFunctions.gethcpdata());
// List offlinedata = HiveFunctions.gethcpdata();
print("offline_data_is: ");
print("offline_data_is: $list");
_rows = list
.map((e) => _Row(
identifier: e['id'],
valueA: e['name'],
valueC: e['email'],
valueD: e['rank'].toString(),
valueE: e['score'].toString(),
valueF: e['events_count'].toString(),
valueG: e['affiliations_count'].toString(),
valueH: e['publications_count'].toString(),
valueI: '0',
selected: check(e['id']),
org: "Aissel",
mno: e['phone_no'].toString(),
smry: e['sumry'],
lin: e['licno'].toString(),
suffix: e['suffix'],
spl: e['spl'],
sub_spl: e['sub_sp'],
))
.toList();
notifyListeners();
}
}
}