Vaadin এর ডায়ালগস এবং নোটিফিকেশনস ব্যবহৃত হয় ব্যবহারকারীদের ইন্টারঅ্যাকশন আরও ইন্টারেক্টিভ এবং তথ্যপূর্ণ করার জন্য। ডায়ালগস ব্যবহারকারীদের সামনে কিছু ইনপুট বা তথ্য প্রদর্শন করতে ব্যবহৃত হয়, যেখানে নোটিফিকেশনস ইউজারদের সংক্ষিপ্ত বার্তা জানাতে ব্যবহার হয়। এই দুটি উপাদান অ্যাপ্লিকেশনটির ইউজার এক্সপেরিয়েন্স (UX) উন্নত করতে সাহায্য করে।
ডায়ালগস (Dialogs)
ডায়ালগস সাধারণত একটি নতুন উইন্ডো বা পপ-আপ হিসেবে প্রদর্শিত হয়, যেখানে ইউজারকে কোনো তথ্য প্রদর্শন বা ইনপুট দেওয়ার জন্য একটি বিশেষ ক্ষেত্র দেওয়া হয়। Vaadin ডায়ালগ তৈরি করতে Dialog ক্লাস ব্যবহার করা হয়, যা একটি মোডাল উইন্ডো হিসেবে কাজ করে এবং ব্যবহারকারীকে একটি নির্দিষ্ট কার্যকলাপের দিকে মনোযোগ আকর্ষণ করে।
ডায়ালগ তৈরি করা
Button openDialogButton = new Button("Open Dialog", event -> {
Dialog dialog = new Dialog();
dialog.add(new Text("This is a simple dialog"));
Button closeButton = new Button("Close", e -> dialog.close());
dialog.add(closeButton);
dialog.open(); // ডায়ালগটি খোলা
});
এখানে, একটি Button তৈরি করা হয়েছে, যা ক্লিক করলে একটি Dialog উইন্ডো খুলবে। ডায়ালগে একটি সাদামাটা টেক্সট এবং একটি ক্লোজ বাটন রয়েছে।
ডায়ালগে কাস্টম কন্টেন্ট
আপনি ডায়ালগে কাস্টম কন্টেন্ট যেমন ফর্ম, টেক্সট ফিল্ড, বা অন্যান্য UI কম্পোনেন্টও যোগ করতে পারেন।
Button openFormDialogButton = new Button("Open Form Dialog", event -> {
Dialog formDialog = new Dialog();
TextField nameField = new TextField("Enter your name");
Button submitButton = new Button("Submit", e -> {
String name = nameField.getValue();
Notification.show("Hello, " + name);
formDialog.close();
});
formDialog.add(nameField, submitButton);
formDialog.open();
});
এখানে, TextField এবং Button সহ একটি ফর্ম তৈরি করা হয়েছে। ইউজার নাম ইনপুট করার পর, একটি নোটিফিকেশন দেখানো হবে এবং ডায়ালগটি বন্ধ হয়ে যাবে।
ডায়ালগ কাস্টমাইজেশন
Vaadin ডায়ালগ কাস্টমাইজ করার জন্য বিভিন্ন স্টাইল এবং লেআউট অপশন প্রদান করে। আপনি ডায়ালগের আকার, শৈলী এবং অবস্থান কাস্টমাইজ করতে পারেন।
Dialog customDialog = new Dialog();
customDialog.setWidth("400px"); // ডায়ালগের প্রস্থ নির্ধারণ
customDialog.setHeight("200px"); // ডায়ালগের উচ্চতা নির্ধারণ
Text text = new Text("This is a custom styled dialog");
customDialog.add(text);
customDialog.open();
এখানে, ডায়ালগের আকার কাস্টমাইজ করা হয়েছে। এর পাশাপাশি, setWidth() এবং setHeight() মেথডের মাধ্যমে ডায়ালগের আকার পরিবর্তন করা হয়েছে।
নোটিফিকেশনস (Notifications)
নোটিফিকেশনস হল ক্ষুদ্র বার্তা যা ইউজারদের জানায় কোনো গুরুত্বপূর্ণ তথ্য বা সফল/অসফল কোনো কার্যক্রম সম্পর্কে। Vaadin এ Notification ক্লাস ব্যবহার করে নোটিফিকেশন তৈরি করা হয়, যা সহজে ব্যবহারকারীদের কাছে প্রদর্শিত হতে পারে।
নোটিফিকেশন তৈরি করা
Button showNotificationButton = new Button("Show Notification", event -> {
Notification.show("This is a simple notification", 3000, Notification.Position.MIDDLE);
});
এখানে, একটি Button ক্লিক করলে একটি সিম্পল নোটিফিকেশন প্রদর্শিত হবে। নোটিফিকেশনটি ৩ সেকেন্ড পর অটোমেটিক্যালি বন্ধ হয়ে যাবে এবং এটি স্ক্রীনের মাঝখানে প্রদর্শিত হবে।
নোটিফিকেশন কাস্টমাইজেশন
Vaadin আপনাকে নোটিফিকেশন কাস্টমাইজ করার অনেক অপশন দেয়, যেমন অবস্থান, সময়কাল, এবং স্টাইল।
Notification customNotification = new Notification(
"Custom Notification with Icon",
5000, // 5 সেকেন্ডের জন্য দেখাবে
Notification.Position.TOP_CENTER
);
customNotification.addThemeVariants(NotificationVariant.LUMO_PRIMARY);
customNotification.setIcon(VaadinIcon.CHECK.create());
customNotification.open();
এখানে, একটি কাস্টম নোটিফিকেশন তৈরি করা হয়েছে যা ৫ সেকেন্ড ধরে স্ক্রীনের উপর দিকে প্রদর্শিত হবে এবং একটি আইকন যোগ করা হয়েছে। addThemeVariants() ব্যবহার করে আপনি নোটিফিকেশনটির থিম পরিবর্তন করতে পারেন।
নোটিফিকেশন ভ্যারিয়েন্টস
Vaadin নোটিফিকেশনকে বিভিন্ন ধরনের ভ্যারিয়েন্ট প্রদান করতে সাহায্য করে, যেমন প্রাথমিক, সেকেন্ডারি, বা সতর্কতা। উদাহরণ:
Notification successNotification = new Notification("Operation Successful", 3000);
successNotification.addThemeVariants(NotificationVariant.LUMO_SUCCESS);
successNotification.open();
Notification errorNotification = new Notification("An Error Occurred", 3000);
errorNotification.addThemeVariants(NotificationVariant.LUMO_ERROR);
errorNotification.open();
এখানে, একটি সফল অপারেশনের জন্য একটি সাফল্য (success) নোটিফিকেশন এবং একটি ত্রুটি (error) নোটিফিকেশন প্রদর্শিত হচ্ছে। থিম ভ্যারিয়েন্ট LUMO_SUCCESS এবং LUMO_ERROR ব্যবহার করা হয়েছে।
সারাংশ
ডায়ালগস এবং নোটিফিকেশনস Vaadin এর গুরুত্বপূর্ণ উপাদান যা ওয়েব অ্যাপ্লিকেশনটির ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সাহায্য করে। ডায়ালগস ব্যবহারকারীদের প্রয়োজনীয় ইনপুট বা তথ্য প্রদর্শনের জন্য কার্যকরী, এবং নোটিফিকেশনস সহজ এবং দ্রুত বার্তা প্রদানের জন্য ব্যবহৃত হয়। Vaadin এ এই উপাদানগুলো কাস্টমাইজ এবং স্টাইল করার জন্য প্রচুর অপশন রয়েছে, যা অ্যাপ্লিকেশনের ইন্টারফেসকে আরও প্রফেশনাল এবং ইউজার ফ্রেন্ডলি করে তোলে।
Vaadin এ Dialog এবং ConfirmDialog কম্পোনেন্টস ব্যবহার করে আপনি ইউজার ইন্টারফেসে মডাল উইন্ডো বা পপ-আপ তৈরি করতে পারেন। এগুলি সাধারণত ইউজারের সাথে ইন্টারঅ্যাকশন করার জন্য, যেমন কনফার্মেশন, ইনপুট, বা মেসেজ প্রদর্শন করতে ব্যবহৃত হয়।
Dialog কম্পোনেন্ট
Dialog কম্পোনেন্টটি একটি সাধারণ পপ-আপ বা মডাল উইন্ডো তৈরি করতে ব্যবহৃত হয়, যা সাধারণত একটি নির্দিষ্ট কাজের জন্য ইউজারের কাছ থেকে ইনপুট বা অ্যাকশন নেয়। এটি আপনার অ্যাপ্লিকেশনের UI-তে একটি নতুন স্তর হিসাবে প্রদর্শিত হয় এবং ইউজারকে একটি নির্দিষ্ট কাজ করার জন্য নির্দেশনা প্রদান করতে পারে।
Dialog তৈরি করা
Dialog dialog = new Dialog();
dialog.add(new Text("This is a simple dialog window!"));
Button closeButton = new Button("Close", event -> dialog.close());
dialog.add(closeButton);
dialog.open();
এখানে, একটি Dialog কম্পোনেন্ট তৈরি করা হয়েছে, যা একটি টেক্সট এবং একটি বাটন ধারণ করে। বাটনটি ক্লিক করলে ডায়ালগটি বন্ধ হবে। dialog.open() ব্যবহার করে ডায়ালগটি পেজে দেখানো হয়।
Dialog কাস্টমাইজেশন
- নির্দিষ্ট আকার:
setWidth()এবংsetHeight()ব্যবহার করে আপনি ডায়ালগের আকার কাস্টমাইজ করতে পারেন।
dialog.setWidth("400px");
dialog.setHeight("300px");
- Positioning:
setPosition()ব্যবহার করে আপনি ডায়ালগের অবস্থানও কাস্টমাইজ করতে পারেন।
dialog.setPosition(Align.CENTER);
Dialog এর অন্যান্য বৈশিষ্ট্য
- Closable: ডায়ালগে ক্লোজ বাটন থাকতে পারে, যেটি ইউজারকে ডায়ালগ বন্ধ করতে সহায়তা করে।
- Focusable: ডায়ালগটি ফোকাসযোগ্য হয়ে থাকলে ইউজার সহজেই এর মধ্যে ইন্টারঅ্যাক্ট করতে পারে।
ConfirmDialog কম্পোনেন্ট
ConfirmDialog হল একটি বিশেষ ধরনের ডায়ালগ, যা সাধারণত ইউজারের একটি অ্যাকশন নিশ্চিত করার জন্য ব্যবহৃত হয়, যেমন ডিলিট অপারেশন বা অন্য কোন গুরুত্বপূর্ণ সিদ্ধান্ত গ্রহণের জন্য। এটি দুটি বাটন প্রদর্শন করে, যেমন "Confirm" এবং "Cancel"।
ConfirmDialog তৈরি করা
ConfirmDialog confirmDialog = new ConfirmDialog();
confirmDialog.setHeader("Are you sure?");
confirmDialog.setText("Do you really want to delete this item?");
Button confirmButton = new Button("Confirm", event -> {
// Perform the action (e.g., delete item)
Notification.show("Item deleted!");
confirmDialog.close();
});
Button cancelButton = new Button("Cancel", event -> confirmDialog.close());
confirmDialog.setCancelable(true); // Allow closing by clicking outside
confirmDialog.setConfirmButton(confirmButton);
confirmDialog.setCancelButton(cancelButton);
confirmDialog.open();
এখানে একটি ConfirmDialog তৈরি করা হয়েছে, যেখানে ইউজারকে একটি অ্যাকশন নিশ্চিত করার জন্য একটি পপ-আপ উইন্ডো প্রদর্শিত হবে। ইউজার "Confirm" বাটন ক্লিক করলে অ্যাকশন (যেমন ডিলিট) সম্পন্ন হবে এবং "Cancel" বাটন ক্লিক করলে ডায়ালগটি বন্ধ হবে।
ConfirmDialog কাস্টমাইজেশন
- Header এবং Text:
setHeader()এবংsetText()ব্যবহার করে আপনি ডায়ালগের শিরোনাম এবং মূল বার্তা কাস্টমাইজ করতে পারেন। - Cancelable:
setCancelable(true)ব্যবহার করে আপনি ডায়ালগের বাইরে ক্লিক করে ডায়ালগ বন্ধ করার অনুমতি দিতে পারেন।
ConfirmDialog এর বৈশিষ্ট্য
- Confirm এবং Cancel বাটন: সাধারণত
ConfirmDialog-এ দুটি বাটন থাকে: একটি "Confirm" এবং অন্যটি "Cancel"। - Cancelable: এটি ইউজারকে ডায়ালগটি বাইরের অংশে ক্লিক করে বন্ধ করার অনুমতি দেয়।
Dialog এবং ConfirmDialog এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Dialog | ConfirmDialog |
|---|---|---|
| ব্যবহার | সাধারণ মডাল উইন্ডো, কোনো নির্দিষ্ট অ্যাকশন বা তথ্য প্রদর্শন করতে ব্যবহৃত | ইউজারের কোনো অ্যাকশন (যেমন ডিলিট) নিশ্চিত করার জন্য ব্যবহৃত |
| বাটন | সাধারণত একটি ক্লোজ বা কাস্টম বাটন থাকে | দুটি বাটন থাকে: "Confirm" এবং "Cancel" |
| টেক্সট কাস্টমাইজেশন | টেক্সট কাস্টমাইজ করা যায় | শিরোনাম এবং বডি টেক্সট কাস্টমাইজ করা যায় |
| প্রধান বৈশিষ্ট্য | সাধারণ ইউজার ইনপুট বা তথ্য প্রদর্শন | ইউজারের অ্যাকশন নিশ্চিত করা |
সারাংশ
Vaadin এর Dialog এবং ConfirmDialog কম্পোনেন্টস আপনাকে মডাল উইন্ডো এবং পপ-আপ তৈরি করতে সহায়তা করে। Dialog সাধারণত ইউজারের সাথে ইন্টারঅ্যাকশন করার জন্য ব্যবহৃত হয়, যেখানে ConfirmDialog ইউজারের কোনো গুরুত্বপূর্ণ সিদ্ধান্ত নিশ্চিত করার জন্য ব্যবহৃত হয়। আপনি এই কম্পোনেন্টগুলিকে কাস্টমাইজ করে বিভিন্ন ধরনের বার্তা, বাটন এবং ইন্টারঅ্যাকশন তৈরি করতে পারেন, যা আপনার অ্যাপ্লিকেশনের ইউজার এক্সপিরিয়েন্স (UX) উন্নত করে।
Vaadin অ্যাপ্লিকেশনে Notifications এবং Toast Messages ব্যবহার করা হয় ইউজারের কাছে দ্রুত তথ্য প্রদর্শন করার জন্য। এগুলো সাধারণত সময়মতো (non-blocking) মেসেজ হিসেবে প্রদর্শিত হয় এবং ইউজারের অভিজ্ঞতাকে আরও উন্নত করে।
Notifications কী?
Notification হল একটি UI উপাদান যা ব্যবহারকারীর সামনে একটি মেসেজ বা ইনফরমেশন দ্রুত প্রদর্শন করে। এটি সাধারাণত একটি ছোট বার্তায় তথ্য প্রদান করে, যা এক সেকেন্ডের মধ্যে অদৃশ্য হয়ে যায়, অথবা ইউজার ইন্টারঅ্যাকশনের মাধ্যমে তা বন্ধ করা যায়।
Vaadin এর Notification কম্পোনেন্ট ব্যবহার করে আপনি সহজেই ইউজারের জন্য টেক্সট, সতর্কতা, তথ্য বা সফলতার বার্তা প্রদর্শন করতে পারেন।
Toast Message কী?
Toast Messages হলো ছোট বার্তা যা সাধারণত স্ক্রীনের নিচের অংশে প্রদর্শিত হয় এবং কিছু সময় পর স্বয়ংক্রিয়ভাবে অদৃশ্য হয়ে যায়। এগুলো সাধারণত নন-ব্লকিং এবং অস্থায়ী মেসেজ হিসেবে ব্যবহৃত হয়, যেমন "অপারেশন সফল", "তথ্য সঠিকভাবে সংরক্ষিত হয়েছে" ইত্যাদি।
Vaadin এ Notification ব্যবহার করা
Vaadin এ Notification ব্যবহার করতে, আপনি Notification ক্লাসের একটি ইনস্ট্যান্স তৈরি করে মেসেজ প্রদান করতে পারেন। নিচে Notification এর একটি সাধারণ উদাহরণ দেওয়া হলো:
Notification.show("This is a simple notification");
এটি একটি সাধারণ বার্তা তৈরি করবে, যা স্ক্রীনের উপরের দিকে প্রদর্শিত হবে। আপনি এই Notification-টি বিভিন্ন কনফিগারেশন দিয়ে কাস্টমাইজ করতে পারেন।
Notification এর কাস্টমাইজেশন
- Position সেট করা: Notification এর অবস্থান কাস্টমাইজ করতে পারেন, যেমন উপরে, নিচে, বামে, বা ডানে।
Notification notification = new Notification("This is a custom positioned notification");
notification.setPosition(Notification.Position.TOP_CENTER); // Top Center position
notification.open();
- ডিউরেশন (Duration): Notification কত সময় পর অদৃশ্য হবে তা নির্ধারণ করতে পারেন।
Notification notification = new Notification("This message will disappear after 3 seconds");
notification.setDuration(3000); // 3000 milliseconds = 3 seconds
notification.open();
- স্টাইলিং: Notification এর স্টাইল কাস্টমাইজ করা যায়।
Notification notification = new Notification("Success!");
notification.addThemeVariants(NotificationVariant.LUMO_SUCCESS); // Success theme
notification.open();
- অ্যাকশন বোতাম যোগ করা: Notification-এ একটি অ্যাকশন বোতামও যোগ করা যায়, যা ইউজারের ইন্টারঅ্যাকশনের জন্য ব্যবহৃত হয়।
Notification notification = new Notification("Do you want to save changes?");
Button saveButton = new Button("Save");
saveButton.addClickListener(event -> {
// Save action code here
});
notification.add(saveButton);
notification.open();
Toast Messages তৈরি করা
Toast Messages তৈরি করার জন্য আপনাকে সাধারণত Notification ক্লাস ব্যবহার করতে হবে এবং সেটি একটি নির্দিষ্ট অবস্থানে, অল্প সময়ের জন্য প্রদর্শন করতে হবে। Vaadin এর Notification এর মাধ্যমে Toast মেসেজ তৈরি করা যায়। নিচে একটি Toast মেসেজ তৈরি করার উদাহরণ দেয়া হলো:
Notification toastMessage = new Notification("Your changes have been saved successfully");
toastMessage.setPosition(Notification.Position.BOTTOM_CENTER); // Position at bottom center
toastMessage.setDuration(3000); // Duration set to 3 seconds
toastMessage.open();
এটি একটি Toast মেসেজ তৈরি করবে, যা স্ক্রীনের নিচের অংশে প্রদর্শিত হবে এবং ৩ সেকেন্ড পর অদৃশ্য হয়ে যাবে।
Notifications এর অন্যান্য কাস্টমাইজেশন
- Multiple Notifications: আপনি একাধিক Notification একসাথে প্রদর্শন করতে পারেন এবং সেগুলো একে অপরের উপর না আসতে সঠিক অবস্থান সেট করতে পারেন।
Notification notification1 = new Notification("Notification 1");
notification1.setPosition(Notification.Position.TOP_CENTER);
notification1.open();
Notification notification2 = new Notification("Notification 2");
notification2.setPosition(Notification.Position.TOP_END);
notification2.open();
- টেক্সট এবং কন্টেন্ট কাস্টমাইজেশন: Notification এ শুধুমাত্র টেক্সট নয়, আপনি HTML কন্টেন্টও যোগ করতে পারেন।
Notification notification = new Notification("Notification with <b>HTML</b> content", 5000);
notification.setPosition(Notification.Position.BOTTOM_START);
notification.getElement().setProperty("innerHTML", "You have <i>new</i> notifications");
notification.open();
- থিম যোগ করা: Vaadin Notification-এ ভিন্ন ভিন্ন থিম (Theme) যোগ করা যায়, যেমন
LUMO_SUCCESS,LUMO_ERROR,LUMO_CONTRASTইত্যাদি।
Notification notification = new Notification("Success message");
notification.addThemeVariants(NotificationVariant.LUMO_SUCCESS);
notification.open();
সারাংশ
Vaadin-এ Notification এবং Toast Messages ইউজারের জন্য দ্রুত, অস্থায়ী বার্তা প্রদর্শন করার জন্য অত্যন্ত কার্যকরী টুল। আপনি এগুলোর মাধ্যমে ইউজারকে ইনফরমেশন, সতর্কতা বা সফলতার মেসেজ প্রদর্শন করতে পারেন, যা ব্যবহারকারীর অভিজ্ঞতাকে উন্নত করে। এগুলোর স্টাইলিং, অবস্থান, সময়কাল, এবং অ্যাকশন বোতাম কাস্টমাইজ করার মাধ্যমে আপনি একটি ইন্টারঅ্যাকটিভ এবং গ্রাহক-বান্ধব ইউজার ইন্টারফেস তৈরি করতে পারবেন।
Vaadin-এ Dialog কম্পোনেন্ট ব্যবহার করে আপনি ব্যবহারকারীর জন্য ইনপুট, তথ্য বা নির্দেশনা প্রদর্শন করতে পারেন। Dialog দুটি প্রধান ধরনের হতে পারে: Modal Dialog এবং Modeless Dialog। Modal Dialog ব্যবহারকারীর সাথে সম্পর্কিত যে কোনো কর্মের জন্য বাধ্যতামূলক হয়, যেখানে Modeless Dialog ব্যবহারকারীর কাজকে বিরতি না দিয়ে অন্য কোনো উইন্ডো বা কন্টেন্ট প্রদর্শন করে।
Modal Dialog
Modal Dialog হল একটি ডায়লগ যা একটি ইন্টারঅ্যাকশনের মাধ্যমে পপ আপ হয় এবং ব্যবহারকারীকে সে ডায়লগ বন্ধ না করা পর্যন্ত মূল অ্যাপ্লিকেশন ইন্টারফেসের সাথে যোগাযোগ করতে দেয় না। এটি সাধারণত গুরুত্বপূর্ণ তথ্য বা নির্বাচন করার জন্য ব্যবহৃত হয়।
Modal Dialog তৈরি এবং ব্যবহার
Vaadin-এ Modal Dialog তৈরি করতে Dialog কম্পোনেন্ট ব্যবহার করা হয় এবং এটি সাধারণত একটি blocker হিসেবে কাজ করে।
@Route("")
public class MainView extends VerticalLayout {
public MainView() {
Button openDialogButton = new Button("Open Modal Dialog");
// Dialog তৈরি
Dialog modalDialog = new Dialog();
modalDialog.add(new Text("This is a modal dialog"));
modalDialog.setWidth("300px");
// Dialog বাটনটি ক্লিক করলে ডায়লগ ওপেন হবে
openDialogButton.addClickListener(event -> modalDialog.open());
// Layoutে বাটনটি যোগ করা
add(openDialogButton);
}
}
এখানে, যখন ব্যবহারকারী "Open Modal Dialog" বাটনে ক্লিক করবে, তখন একটি Modal Dialog ওপেন হবে। এই ডায়লগটি পেজের অন্য কোনো অংশের সাথে ইন্টারঅ্যাকশন করতে দেয় না, যতক্ষণ না ব্যবহারকারী ডায়লগটি বন্ধ না করেন।
Modal Dialog-এর অন্যান্য কাস্টমাইজেশন
- কনটেন্ট আকার নিয়ন্ত্রণ:
setWidth()বাsetHeight()মেথড ব্যবহার করে আপনি ডায়লগের আকার কাস্টমাইজ করতে পারেন। - কন্টেন্টের ভিতরে ভিউ যোগ করা: ডায়লগে অন্যান্য UI উপাদান যোগ করা যেমন টেক্সট, ফর্ম, ইমেজ ইত্যাদি।
Modeless Dialog
Modeless Dialog হল এমন একটি ডায়লগ যা ব্যবহারকারীকে প্রধান অ্যাপ্লিকেশন কনটেন্টের সাথে ইন্টারঅ্যাকশন করতে দেয়, যখন এটি প্রদর্শিত হয়। এটি সাধারণত ঐতিহ্যগত টুলটিপ, ইনফরমেশন বার বা ছোট ডায়লগ হিসেবে ব্যবহৃত হয়, যেখানে ব্যবহারকারী ডায়লগ বন্ধ না করে অন্যান্য অংশের সাথে কাজ করতে পারে।
Modeless Dialog তৈরি এবং ব্যবহার
Modeless Dialog তৈরি করতে Dialog কম্পোনেন্টের setModal(false) মেথড ব্যবহার করতে হয়। এটি ডায়লগকে মোডাল হিসেবে কাজ করতে বাধা দেয় এবং ব্যবহারকারী ডায়লগটি খোলার সময় অন্যান্য অংশে কাজ করতে পারে।
@Route("")
public class MainView extends VerticalLayout {
public MainView() {
Button openModelessDialogButton = new Button("Open Modeless Dialog");
// Dialog তৈরি
Dialog modelessDialog = new Dialog();
modelessDialog.add(new Text("This is a modeless dialog"));
modelessDialog.setWidth("300px");
modelessDialog.setModal(false); // Modeless তৈরি করা
// Dialog বাটনটি ক্লিক করলে ডায়লগ ওপেন হবে
openModelessDialogButton.addClickListener(event -> modelessDialog.open());
// Layoutে বাটনটি যোগ করা
add(openModelessDialogButton);
}
}
এখানে, setModal(false) ব্যবহার করার মাধ্যমে আমরা ডায়লগটিকে modeless বানিয়েছি, যার ফলে ব্যবহারকারী ডায়লগটি খোলার সময়ও মূল কন্টেন্টের সাথে ইন্টারঅ্যাকশন করতে পারবেন।
Modeless Dialog এর কাস্টমাইজেশন
- পজিশন কাস্টমাইজেশন:
modelessDialog.setPosition()মেথড ব্যবহার করে ডায়লগটির পজিশন নির্ধারণ করা যেতে পারে, যেমন সেন্টারে বা স্ক্রীনের অন্য কোনো জায়গায়। - ইন্টারঅ্যাকশন ফ্লো: Modeless ডায়লগ সাধারণত অন্য কম্পোনেন্টের সাথে ইন্টারঅ্যাকশন করতে দেয়, তাই এটি আপনার অ্যাপ্লিকেশনের লজিক অনুসারে কাস্টমাইজ করতে হবে।
Modal এবং Modeless Dialog এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Modal Dialog | Modeless Dialog |
|---|---|---|
| ইন্টারঅ্যাকশন | ব্যবহারকারী ডায়লগ বন্ধ না করা পর্যন্ত মূল অ্যাপ্লিকেশনের সাথে যোগাযোগ করতে পারেন না | ব্যবহারকারী ডায়লগ খোলার পরেও মূল অ্যাপ্লিকেশন এর সাথে কাজ করতে পারেন |
| ব্যবহার | জরুরি বার্তা বা তথ্য, ফর্ম জমা দেওয়া ইত্যাদি | সহায়ক বার্তা, টুলটিপ, ইনফরমেশন উইন্ডো ইত্যাদি |
| ধরণ | বাধ্যতামূলক (blocking) | অবাধ (non-blocking) |
সারাংশ
Vaadin-এ Modal এবং Modeless Dialog দুটি গুরুত্বপূর্ণ উপাদান, যা ব্যবহারকারীর সাথে যোগাযোগ করার জন্য ব্যবহৃত হয়। Modal Dialog ব্যবহারকারীর অন্য কোনো কাজ বন্ধ না করে কোন তথ্য বা সিলেকশন দাবি করে, এবং Modeless Dialog ব্যবহারকারীকে ডায়লগ খোলার পরেও অন্যান্য কাজ করতে দেয়। আপনি আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুসারে এই দুই ধরনের ডায়লগ ব্যবহার করতে পারেন, যা ডেটা ইনপুট, নোটিফিকেশন, বা সহায়ক বার্তা প্রদর্শনে সাহায্য করবে।
Vaadin-এ ডায়ালগ কন্টেন্ট তৈরি এবং ইভেন্ট হ্যান্ডলিং ব্যবহৃত হয় ইউজার ইন্টারঅ্যাকশনের সময় গুরুত্বপূর্ণ তথ্য দেখানোর জন্য। ডায়ালগ সাধারণত এমন একটি ইউআই উপাদান, যা পপ-আপ হিসেবে প্রদর্শিত হয় এবং ব্যবহারকারীর কাছ থেকে ইনপুট নেওয়া বা কোনো সংকেত প্রদর্শনের জন্য ব্যবহার করা হয়। Vaadin ডায়ালগের জন্য বিভিন্ন কম্পোনেন্ট এবং ইভেন্ট হ্যান্ডলিং পদ্ধতি সরবরাহ করে, যা অ্যাপ্লিকেশনকে আরও ইন্টারেক্টিভ এবং ব্যবহারকারী বান্ধব করে তোলে।
ডায়ালগ কন্টেন্ট তৈরি করা
Vaadin-এ ডায়ালগ তৈরি করা অত্যন্ত সহজ। Dialog কম্পোনেন্ট ব্যবহার করে আপনি কাস্টম কন্টেন্ট সহ একটি পপ-আপ ডায়ালগ তৈরি করতে পারেন। ডায়ালগের মধ্যে যে কোনো ধরনের কম্পোনেন্ট যেমন টেক্সট, বাটন, ইনপুট ফিল্ড ইত্যাদি যুক্ত করা যায়। নিচে ডায়ালগ কন্টেন্ট তৈরি করার কিছু উদাহরণ দেওয়া হলো:
1. সাধারণ ডায়ালগ তৈরি করা
Button openDialogButton = new Button("Open Dialog");
Dialog dialog = new Dialog();
dialog.add(new Text("This is a simple dialog"));
openDialogButton.addClickListener(event -> {
dialog.open();
});
- এখানে
Dialogকম্পোনেন্ট তৈরি করা হয়েছে, যেখানে একটি সিম্পলTextকম্পোনেন্ট রয়েছে। একটি বাটন ক্লিক করলে ডায়ালগটি ওপেন হবে।
2. ফর্ম সহ ডায়ালগ তৈরি করা
TextField nameField = new TextField("Name");
TextField emailField = new TextField("Email");
Button submitButton = new Button("Submit");
Dialog formDialog = new Dialog();
formDialog.add(nameField, emailField, submitButton);
submitButton.addClickListener(event -> {
String name = nameField.getValue();
String email = emailField.getValue();
Notification.show("Name: " + name + ", Email: " + email);
formDialog.close();
});
openDialogButton.addClickListener(event -> {
formDialog.open();
});
- এখানে
Dialogএর মধ্যে একটি ফর্ম তৈরি করা হয়েছে, যেখানে দুটিTextField(নাম এবং ইমেইল) এবং একটি সাবমিট বাটন রয়েছে। বাটন ক্লিক করলে ইউজারের ইনপুটের উপর ভিত্তি করে একটি নোটিফিকেশন প্রদর্শিত হবে।
3. স্টাইলিং সহ ডায়ালগ
Dialog styledDialog = new Dialog();
styledDialog.getStyle().set("background-color", "#f0f0f0").set("padding", "20px");
Button closeButton = new Button("Close", e -> styledDialog.close());
styledDialog.add(new Text("This dialog has custom styling."), closeButton);
openDialogButton.addClickListener(event -> {
styledDialog.open();
});
- এখানে
Dialogএর জন্য CSS স্টাইল প্রয়োগ করা হয়েছে, যা পটভূমি রঙ এবং প্যাডিং কাস্টমাইজ করেছে।
ডায়ালগ ইভেন্ট হ্যান্ডলিং
Vaadin ডায়ালগে ইভেন্ট হ্যান্ডলিং ব্যবহার করে আপনি ডায়ালগের ওপেনিং, ক্লোজিং, এবং অন্যান্য ইন্টারঅ্যাকশন পরিচালনা করতে পারেন। ডায়ালগের বিভিন্ন ইভেন্ট যেমন opened, closed ইত্যাদি ব্যবহার করা যায়। নিচে ডায়ালগ ইভেন্ট হ্যান্ডলিংয়ের কিছু উদাহরণ দেওয়া হলো:
1. ডায়ালগ ওপেন এবং ক্লোজ ইভেন্ট
dialog.addOpenedChangeListener(event -> {
if (event.isOpened()) {
System.out.println("Dialog opened");
} else {
System.out.println("Dialog closed");
}
});
Button closeDialogButton = new Button("Close Dialog", event -> {
dialog.close();
});
- এখানে ডায়ালগ ওপেন বা ক্লোজ হওয়ার সময় একটি কাস্টম মেসেজ কনসোলে প্রদর্শিত হবে।
addOpenedChangeListenerব্যবহার করে ডায়ালগ ওপেন বা ক্লোজ ইভেন্ট শোনা হচ্ছে।
2. ডায়ালগ ক্লোজ বাটন এবং ইভেন্ট হ্যান্ডলিং
Button closeButton = new Button("Close", event -> {
dialog.close();
});
dialog.addCloseListener(event -> {
Notification.show("Dialog was closed");
});
openDialogButton.addClickListener(event -> {
dialog.open();
});
- এখানে ডায়ালগ ক্লোজ হওয়ার সময় একটি নোটিফিকেশন প্রদর্শন হবে।
addCloseListenerব্যবহার করে ডায়ালগের ক্লোজ ইভেন্ট ট্র্যাক করা হচ্ছে।
3. ইনপুট ডেটার উপর ভিত্তি করে ডায়ালগের ইভেন্ট হ্যান্ডলিং
Button submitButton = new Button("Submit", event -> {
String name = nameField.getValue();
String email = emailField.getValue();
if (name.isEmpty() || email.isEmpty()) {
Notification.show("Please fill in all fields");
} else {
Notification.show("Name: " + name + ", Email: " + email);
formDialog.close();
}
});
- এখানে একটি ইনপুট ফর্মের ডেটার উপর ভিত্তি করে ডায়ালগের সাবমিট ইভেন্ট হ্যান্ডলিং করা হচ্ছে। যদি কোন ফিল্ড ফাঁকা থাকে, তাহলে একটি নোটিফিকেশন প্রদর্শিত হবে।
ডায়ালগ এবং ইউজার ইন্টারঅ্যাকশন
Vaadin ডায়ালগ ইন্টারঅ্যাকশন এবং ইভেন্ট হ্যান্ডলিংয়ের মাধ্যমে ইউজারের অভিজ্ঞতা আরও উন্নত করা যায়। আপনি বিভিন্ন ইউজার ইন্টারঅ্যাকশনের মাধ্যমে ডায়ালগের কন্টেন্ট, স্টাইল এবং ইভেন্টগুলি কাস্টমাইজ করতে পারেন। কিছু সাধারণ ব্যবহারিক ক্ষেত্রে যেমন ফর্ম সাবমিশন, ইনপুট ভ্যালিডেশন, এবং ডায়ালগ ওপেন/ক্লোজ ইভেন্ট হ্যান্ডলিং প্রয়োগ করে আপনি আরও ইন্টারেক্টিভ অ্যাপ্লিকেশন তৈরি করতে পারেন।
Vaadin ডায়ালগ কন্টেন্ট এবং ইভেন্ট হ্যান্ডলিংয়ের মাধ্যমে সহজেই পপ-আপ, ফর্ম, এবং অন্যান্য ইন্টারঅ্যাকশন তৈরি করা যায়। এর মাধ্যমে ডেভেলপাররা ব্যবহারকারী বান্ধব এবং কার্যকরী ডায়ালগ তৈরি করতে সক্ষম হন।
Read more