Vaadin একটি অত্যন্ত শক্তিশালী ফ্রেমওয়ার্ক, যা ব্যবহারকারীদের জন্য ডেটা টেবিল বা গ্রিডে pagination এবং sorting সহজে পরিচালনা করতে সক্ষম। এই বৈশিষ্ট্যগুলি বিশেষভাবে দীর্ঘ ডেটাসেটের জন্য প্রয়োজনীয়, যেখানে ডেটা প্রদর্শনের জন্য পেজিনেশন এবং ব্যবহারকারীদের জন্য সহজে sorting অপশন প্রদান করা গুরুত্বপূর্ণ।
এখানে Vaadin-এ pagination এবং sorting ব্যবস্থাপনা করার পদ্ধতি বিস্তারিতভাবে আলোচনা করা হয়েছে।
Pagination (পেজিনেশন)
Pagination বা পেজিনেশন হল একটি পদ্ধতি, যার মাধ্যমে দীর্ঘ ডেটা একবারে না দেখিয়ে, নির্দিষ্ট পৃষ্ঠায় বিভক্ত করে দেখানো হয়। এতে ডেটা দ্রুত লোড হয় এবং ইউজারদের জন্য ডেটা পর্যালোচনা করা সহজ হয়। Vaadin-এ pagination ব্যবস্থাপনা করার জন্য সাধারণত Grid কম্পোনেন্ট ব্যবহার করা হয়।
1. Grid এবং Pagination ব্যবহার করা
Vaadin এর Grid কম্পোনেন্টে pagination যোগ করতে, setPageSize() মেথড ব্যবহার করতে হয়, যা নির্ধারণ করে একটি পেজে কতটি রেকর্ড দেখানো হবে। এর মাধ্যমে আপনি সহজেই pagination যুক্ত করতে পারবেন।
Grid<Person> grid = new Grid<>(Person.class);
grid.setItems(personService.findAll()); // Items set
grid.setPageSize(10); // প্রতি পেজে 10টি আইটেম দেখাবে
// Grid কে কাস্টমাইজ করা
grid.setColumns("name", "age", "address");
- এখানে
setPageSize(10)ব্যবহার করা হয়েছে, যার মাধ্যমে প্রতি পেজে ১০টি আইটেম দেখানো হবে। setItems()মেথড দিয়ে আপনি ডেটা সেট করতে পারেন, যা গ্রিডে দেখানো হবে।
2. Pagination Controls
Vaadin গ্রিডে pagination এর জন্য ডিফল্ট pagination কন্ট্রোল থাকে, যেমন পেজ স্লাইডার এবং পেজ নম্বর। আপনি যদি pagination কন্ট্রোল কাস্টমাইজ করতে চান, তবে Paginator লাইব্রেরি ব্যবহার করতে পারেন অথবা Grid এর সাথে GridPaginator ব্যবহার করতে পারেন।
Pagination pagination = new Pagination();
pagination.setPageSize(10); // প্রতি পেজে 10টি আইটেম
// pagination grid-এ যোগ করা
grid.setPaginator(pagination);
Sorting (সর্টিং)
Vaadin গ্রিডে সহজেই ডেটা sorting করা যায়। গ্রিডের প্রতিটি কলামে ক্লিক করে সেই কলামের উপর sorting করা যেতে পারে, আর Vaadin স্বয়ংক্রিয়ভাবে ascending বা descending অর্ডারে ডেটা সাজিয়ে দেয়। গ্রিডের জন্য ডিফল্ট সর্টিং ফিচার সক্রিয় থাকে, তবে আপনি চাইলে sorting কাস্টমাইজও করতে পারেন।
1. Sorting সক্রিয় করা
Vaadin গ্রিডের setSortable(true) মেথড ব্যবহার করে আপনি একটি কলামকে sortable করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:
Grid<Person> grid = new Grid<>(Person.class);
grid.setItems(personService.findAll()); // Items set
grid.setColumns("name", "age", "address");
// Sortable কলাম যোগ করা
grid.getColumnByKey("name").setSortable(true);
grid.getColumnByKey("age").setSortable(true);
- এখানে
setSortable(true)ব্যবহার করা হয়েছে, যার মাধ্যমেnameএবংageকলামগুলোতে sorting সক্ষম হবে।
2. Custom Sorting Logic
আপনি যদি একটি কাস্টম sorting লজিক প্রয়োগ করতে চান, তবে setComparator() মেথড ব্যবহার করতে পারেন। উদাহরণস্বরূপ, নিচে name কলামের জন্য কাস্টম sorting লজিক দেওয়া হলো:
grid.addColumn(Person::getName)
.setHeader("Name")
.setSortable(true)
.setComparator((name1, name2) -> name1.compareTo(name2));
- এই ক্ষেত্রে,
setComparator()ব্যবহার করে আপনি sorting কাস্টমাইজ করতে পারবেন।
Pagination এবং Sorting একসাথে ব্যবহার করা
Vaadin-এ pagination এবং sorting একসাথে ব্যবহৃত হতে পারে, যাতে ব্যবহারকারীরা পেজিনেশন কন্ট্রোল এবং কলাম sorting এর মাধ্যমে সহজেই ডেটা পর্যালোচনা করতে পারেন। উদাহরণস্বরূপ, যদি আপনি গ্রিডে pagination এবং sorting একসাথে ব্যবহার করতে চান, তবে নিচের কোডটি দেখতে পারেন:
Grid<Person> grid = new Grid<>(Person.class);
grid.setItems(personService.findAll()); // Items set
grid.setPageSize(10); // প্রতি পেজে 10টি আইটেম দেখাবে
grid.setColumns("name", "age", "address");
grid.getColumnByKey("name").setSortable(true); // Name column sortable
grid.getColumnByKey("age").setSortable(true); // Age column sortable
grid.addItemClickListener(event -> {
Notification.show("You clicked: " + event.getItem().getName());
});
- এখানে pagination এবং sorting একসাথে ব্যবহৃত হচ্ছে, যাতে ব্যবহারকারীরা ডেটার পৃষ্ঠাগুলোর মধ্যে নেভিগেট করতে এবং কলাম অনুযায়ী ডেটা সাজাতে পারেন।
উপসংহার
Vaadin-এ pagination এবং sorting ব্যবস্থাপনা খুবই সহজ এবং কার্যকর। Grid কম্পোনেন্ট ব্যবহার করে আপনি সহজেই ডেটা পেজিনেশন এবং কলাম ভিত্তিক sorting পরিচালনা করতে পারেন। pagination ব্যবহার করে আপনি ডেটাকে বিভিন্ন পৃষ্ঠায় বিভক্ত করতে পারেন এবং sorting দিয়ে ব্যবহারকারীদের ডেটা সাজানোর সুবিধা দিতে পারেন। Vaadin-এর ডিফল্ট ফিচারগুলি খুবই শক্তিশালী এবং কাস্টমাইজেশন সুবিধা প্রদান করে, যা ডেভেলপারদের জন্য অত্যন্ত সহায়ক।