Window Component তৈরি এবং ব্যবহার

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Window এবং Dialog Boxes |

ExtJS Window Component একটি মডাল বা নন-মডাল পপআপ উইন্ডো তৈরি করতে ব্যবহৃত হয়, যা সাধারণত ইউজারের ইনপুট বা সেলফ কনটেইনড ভিউ প্রদর্শনের জন্য ব্যবহার করা হয়। এটি একটি বিশেষ ধরনের প্যানেল যা ইউজারের একশন অনুযায়ী খুলতে বা বন্ধ হতে পারে। ExtJS-এ উইন্ডো তৈরি করা খুব সহজ এবং এটি অনেক কাস্টমাইজেশন অপশন প্রদান করে।

এই গাইডে, আমরা দেখব কিভাবে Window Component তৈরি করা যায় এবং এটি কিভাবে ব্যবহার করা হয়।


১. Window Component তৈরি করা

Window Component তৈরি করতে Ext.window.Window ক্লাস ব্যবহার করা হয়। উইন্ডোতে সাধারণত একটি শিরোনাম, কন্টেন্ট (যেমন ফর্ম, গ্রিড, টেক্সট), এবং এক বা একাধিক বাটন থাকে। উইন্ডোটি সাধারণত modal হতে পারে, যেখানে ইউজারকে শুধুমাত্র উইন্ডোর ভিতরে থাকা অপশনগুলির মধ্য থেকে নির্বাচন করতে দেয়।

Window Component উদাহরণ

Ext.create('Ext.window.Window', {
    title: 'My Window',
    width: 400,
    height: 300,
    layout: 'fit', // উইন্ডোর ভিতরে কনটেন্ট ফিট করবে
    modal: true, // এটি একটি মডাল উইন্ডো হবে
    items: [{
        xtype: 'panel', // উইন্ডোর ভিতরে একটি প্যানেল
        html: 'Welcome to the ExtJS Window Component!'
    }],
    buttons: [
        {
            text: 'OK',
            handler: function() {
                console.log('OK Button Clicked');
                this.up('window').close(); // উইন্ডো বন্ধ করা
            }
        },
        {
            text: 'Cancel',
            handler: function() {
                console.log('Cancel Button Clicked');
                this.up('window').close(); // উইন্ডো বন্ধ করা
            }
        }
    ]
}).show(); // উইন্ডোটি প্রদর্শন করবে

ব্যাখ্যা:

  • title: উইন্ডোর শিরোনাম।
  • width এবং height: উইন্ডোর আকার।
  • layout: 'fit': উইন্ডোর ভিতরের কনটেন্ট সম্পূর্ণ উইন্ডোতে ফিট করবে।
  • modal: true: এটি একটি মডাল উইন্ডো হবে, যা ইউজারকে অন্য উইন্ডো বা কন্টেন্টে কাজ করতে দেবে না যতক্ষণ না উইন্ডোটি বন্ধ না করা হয়।
  • items: উইন্ডোর ভিতরে কম্পোনেন্ট যোগ করা হয়েছে (এখানে একটি প্যানেল)।
  • buttons: উইন্ডোর নিচে দুটি বাটন, OK এবং Cancel। বাটনগুলোর handler ফাংশন উইন্ডোটি বন্ধ করবে।

২. Dynamic Window (ডাইনামিক উইন্ডো)

Dynamic Windows তৈরি করা যায় যেখানে উইন্ডোটি কোন ইভেন্টের মাধ্যমে খোলা বা বন্ধ করা হয়। এটি সাধারণত ইউজারের ইন্টারঅ্যাকশন থেকে নির্ধারিত হয়।

উদাহরণ: বাটন ক্লিক করে উইন্ডো খোলা

Ext.create('Ext.button.Button', {
    text: 'Open Window',
    renderTo: Ext.getBody(),
    handler: function() {
        Ext.create('Ext.window.Window', {
            title: 'Dynamic Window',
            width: 400,
            height: 200,
            layout: 'fit',
            modal: true,
            items: [{
                xtype: 'panel',
                html: 'This window was opened dynamically by clicking the button.'
            }],
            buttons: [{
                text: 'Close',
                handler: function() {
                    this.up('window').close();
                }
            }]
        }).show();
    }
});

এখানে, যখন ইউজার Open Window বাটনে ক্লিক করবে, তখন একটি নতুন উইন্ডো খোলা হবে, যা modal এবং fit লেআউট ব্যবহার করে।


৩. Resizable এবং Draggable Window

ExtJS উইন্ডো কম্পোনেন্টটি resizable এবং draggable (এটি ড্র্যাগ করে টেনে আনা যেতে পারে) হতে পারে। আপনি resizable এবং draggable কনফিগারেশন ব্যবহার করে উইন্ডোর এই আচরণগুলি কাস্টমাইজ করতে পারেন।

উদাহরণ: Resizable এবং Draggable উইন্ডো

Ext.create('Ext.window.Window', {
    title: 'Resizable and Draggable Window',
    width: 400,
    height: 300,
    layout: 'fit',
    resizable: true, // উইন্ডো রিসাইজ করা যাবে
    draggable: true, // উইন্ডো ড্র্যাগ করা যাবে
    modal: true,
    items: [{
        xtype: 'panel',
        html: 'This window can be resized and dragged around.'
    }],
    buttons: [{
        text: 'Close',
        handler: function() {
            this.up('window').close();
        }
    }]
}).show();

এখানে, resizable: true এবং draggable: true কনফিগারেশন ব্যবহার করা হয়েছে, যার ফলে উইন্ডোটি রিসাইজ এবং ড্র্যাগ করা যাবে।


৪. Window with Form

ফর্ম কম্পোনেন্ট ব্যবহার করে উইন্ডোতে ডেটা ইনপুট ফিচার যোগ করা যেতে পারে, যেমন ব্যবহারকারীর নাম, ইমেল ইত্যাদি। উইন্ডোতে ফর্ম উপাদানগুলি রাখার জন্য Ext.form.Panel ব্যবহার করা হয়।

উদাহরণ: Window with Form

Ext.create('Ext.window.Window', {
    title: 'User Form',
    width: 400,
    height: 250,
    layout: 'fit',
    modal: true,
    items: [{
        xtype: 'form',
        bodyPadding: 10,
        items: [{
            xtype: 'textfield',
            fieldLabel: 'Name',
            name: 'name',
            allowBlank: false
        }, {
            xtype: 'textfield',
            fieldLabel: 'Email',
            name: 'email',
            vtype: 'email',
            allowBlank: false
        }],
        buttons: [{
            text: 'Submit',
            handler: function() {
                var form = this.up('form').getForm();
                if (form.isValid()) {
                    console.log('Form Submitted:', form.getValues());
                    form.reset();
                }
            }
        }]
    }]
}).show();

এখানে:

  • xtype: 'form' ব্যবহার করা হয়েছে উইন্ডোর ভিতরে একটি ফর্ম তৈরি করার জন্য।
  • textfield ব্যবহার করে নাম এবং ইমেইল ইনপুট ফিল্ড তৈরি করা হয়েছে।
  • vtype: 'email' ব্যবহার করা হয়েছে ইমেইল ভ্যালিডেশনের জন্য।

৫. Window Events

ExtJS উইন্ডোতে বিভিন্ন events (ইভেন্ট) যুক্ত করা যায়, যেমন উইন্ডো খুললে, বন্ধ হলে, এবং লোড হওয়ার সময়। এই ইভেন্টগুলি ব্যবহার করে উইন্ডোর আচরণ কাস্টমাইজ করা যায়।

উদাহরণ: Window Events

Ext.create('Ext.window.Window', {
    title: 'Window Events Example',
    width: 400,
    height: 300,
    modal: true,
    items: [{
        xtype: 'panel',
        html: 'Click outside the window to close it.'
    }],
    listeners: {
        show: function() {
            console.log('Window is shown');
        },
        close: function() {
            console.log('Window is closed');
        }
    }
}).show();

এখানে, show এবং close ইভেন্ট ব্যবহার করা হয়েছে উইন্ডোটি প্রদর্শিত হওয়ার এবং বন্ধ হওয়ার সময় একটি কাস্টম ফাংশন কল করতে।


সারাংশ

  • Window Component একটি ExtJS কম্পোনেন্ট যা পপআপ উইন্ডো তৈরি করতে ব্যবহৃত হয়।
  • এটি modal বা non-modal হতে পারে, এবং এতে collapsible, resizable, এবং draggable কনফিগারেশন থাকে।
  • উইন্ডোতে সাধারণত form বা panel থাকে, এবং আপনি buttons এবং listeners ব্যবহার করে ইন্টারঅ্যাকশনের সুযোগ দিতে পারেন।
  • উইন্ডো তৈরি করার জন্য Ext.window.Window ক্লাস ব্যবহৃত হয়, যা কাস্টমাইজড কনটেন্ট এবং কন্ট্রোল প্রদান করে।

ExtJS উইন্ডো কম্পোনেন্ট ব্যবহার করে আপনি ইন্টারঅ্যাকটিভ এবং ইউজার-বান্ধব পপআপ উইন্ডো তৈরি করতে পারবেন।

Content added By
Promotion