Components তৈরি এবং কনফিগার করা

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Components এবং Widgets |

ExtJS তে Components হচ্ছে ইউজার ইন্টারফেস (UI) তৈরির মৌলিক উপাদান। এটি বিভিন্ন UI এলিমেন্ট (যেমন গ্রিড, প্যানেল, বাটন, টেক্সটফিল্ড, ফর্ম ইত্যাদি) তৈরি করতে ব্যবহৃত হয়। প্রতিটি Component একটি নির্দিষ্ট কনফিগারেশন এবং প্রপার্টি সেটিংস দিয়ে কাস্টমাইজ এবং কনফিগার করা যেতে পারে।


Components এর সাধারণ বৈশিষ্ট্য

  • xtype: কম্পোনেন্টের টাইপ বা ক্লাস।
  • renderTo: কোন DOM এলিমেন্টে কম্পোনেন্ট রেন্ডার হবে।
  • width / height: কম্পোনেন্টের আকার।
  • items: প্যানেল বা কনটেইনারের মধ্যে রাখা অন্যান্য কম্পোনেন্ট।
  • listeners: কম্পোনেন্টের ইভেন্ট হ্যান্ডলিং।

Components তৈরি করা

ExtJS তে কম্পোনেন্ট তৈরি করার জন্য Ext.create ব্যবহার করা হয়, যা কম্পোনেন্টের একটি ইনস্ট্যান্স তৈরি করে। এছাড়া, xtype ব্যবহার করে ক্লাস নামও সরাসরি ব্যবহার করা যায়।

১. প্যানেল (Panel) কম্পোনেন্ট তৈরি করা

প্যানেল হল একটি সাধারণ কনটেইনার যা অন্যান্য UI উপাদান ধারণ করতে ব্যবহৃত হয়। এটি সাধারণত টেক্সট, ইমেজ, গ্রিড, এবং অন্যান্য উপাদান প্রদর্শন করতে ব্যবহৃত হয়।

Ext.create('Ext.panel.Panel', {
    title: 'My Panel',
    width: 300,
    height: 200,
    html: '<p>This is a simple panel!</p>',
    renderTo: Ext.getBody() // DOM এর body তে রেন্ডার হবে
});
  • title: প্যানেলের শিরোনাম।
  • width / height: প্যানেলের আকার।
  • html: প্যানেলের ভিতরের HTML কন্টেন্ট।
  • renderTo: কম্পোনেন্টকে রেন্ডার করার এলিমেন্ট।

২. বাটন (Button) কম্পোনেন্ট তৈরি করা

একটি বাটন কম্পোনেন্ট ক্লিক ইভেন্টের মাধ্যমে কোনো কার্যকলাপ সম্পাদন করতে ব্যবহৃত হয়। এটি একটি মৌলিক ইনপুট কম্পোনেন্ট।

Ext.create('Ext.Button', {
    text: 'Click Me',
    renderTo: Ext.getBody(), // DOM এর body তে রেন্ডার হবে
    listeners: {
        click: function() {
            Ext.Msg.alert('Button Clicked', 'You clicked the button!');
        }
    }
});
  • text: বাটনের লেখা।
  • renderTo: বাটনটি কোন DOM এলিমেন্টে রেন্ডার হবে।
  • listeners: বাটনের ক্লিক ইভেন্ট হ্যান্ডলার।

৩. গ্রিড (Grid) কম্পোনেন্ট তৈরি করা

গ্রিড কম্পোনেন্ট টেবিলের মতো ডেটা প্রদর্শনের জন্য ব্যবহৃত হয়। এটি সাধারণত ডেটার লিস্ট, সোর্টিং, ফিল্টারিং, এবং পেজিনেশন (pagination) সমর্থন করে।

Ext.create('Ext.grid.Panel', {
    title: 'User Grid',
    store: {
        fields: ['name', 'email'],
        data: [
            { name: 'John Doe', email: 'john.doe@example.com' },
            { name: 'Jane Smith', email: 'jane.smith@example.com' }
        ]
    },
    columns: [
        { text: 'Name', dataIndex: 'name' },
        { text: 'Email', dataIndex: 'email' }
    ],
    renderTo: Ext.getBody()
});
  • store: গ্রিডের জন্য ডেটা স্টোর।
  • columns: গ্রিডের কলামগুলো।
  • dataIndex: গ্রিড কলামের জন্য ডেটা ইনডেক্স।

৪. টেক্সটফিল্ড (TextField) কম্পোনেন্ট তৈরি করা

টেক্সটফিল্ড ইউজারের ইনপুট নেওয়ার জন্য ব্যবহৃত হয়। এটি সাধারণত ফর্ম কম্পোনেন্ট হিসেবে ব্যবহৃত হয়।

Ext.create('Ext.form.field.Text', {
    fieldLabel: 'Name',
    name: 'name',
    renderTo: Ext.getBody()
});
  • fieldLabel: ইনপুট ফিল্ডের লেবেল।
  • name: ইনপুট ফিল্ডের নাম।
  • renderTo: ফিল্ডটি কোন DOM এলিমেন্টে রেন্ডার হবে।

Components কনফিগার করা

ExtJS তে কম্পোনেন্ট কনফিগার করতে config এবং defaults অপশন ব্যবহার করা যায়, যা আপনাকে নির্দিষ্ট প্রপার্টি নির্ধারণ করতে সাহায্য করে। এছাড়া, listeners ব্যবহার করে ইভেন্ট হ্যান্ডলিংও করা যেতে পারে।

কনফিগারেশন উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Configured Panel',
    width: 400,
    height: 300,
    bodyPadding: 10, // প্যানেলের ভিতরের প্যাডিং
    html: '<p>This is a configured panel with padding and customized width!</p>',
    layout: 'fit', // প্যানেলের লেআউট
    renderTo: Ext.getBody()
});
  • bodyPadding: প্যানেলের ভিতরের প্যাডিং।
  • layout: প্যানেলের লেআউট কনফিগার করা।

Dynamic Components তৈরি এবং কনফিগার করা

আপনি যদি কাস্টম কম্পোনেন্ট বা ডায়নামিক কম্পোনেন্ট তৈরি করতে চান, তবে আপনাকে xtype এবং items ব্যবহার করতে হবে। উদাহরণস্বরূপ:

Ext.create('Ext.container.Viewport', {
    layout: 'border',
    items: [{
        xtype: 'panel',
        region: 'north',
        title: 'Header Panel',
        height: 50
    }, {
        xtype: 'grid',
        region: 'center',
        title: 'Main Grid',
        store: {
            fields: ['name', 'email'],
            data: [
                { name: 'John', email: 'john@example.com' },
                { name: 'Jane', email: 'jane@example.com' }
            ]
        },
        columns: [{
            text: 'Name',
            dataIndex: 'name'
        }, {
            text: 'Email',
            dataIndex: 'email'
        }]
    }]
});

এখানে xtype ব্যবহার করে আমরা panel এবং grid কম্পোনেন্টগুলি ডায়নামিকভাবে তৈরি করেছি এবং region এর মাধ্যমে তাদের পজিশন নির্ধারণ করেছি।


সারাংশ

  • Ext.create এবং xtype ব্যবহার করে সহজে কম্পোনেন্ট তৈরি করা যায়।
  • renderTo দিয়ে কম্পোনেন্টকে DOM এ রেন্ডার করা যায়।
  • listeners দিয়ে ইভেন্ট হ্যান্ডলিং করা সম্ভব।
  • items কনফিগারেশন ব্যবহার করে কম্পোনেন্টের ভিতরে অন্যান্য কম্পোনেন্ট যোগ করা যায়।
  • layout এবং bodyPadding এর মাধ্যমে UI কনফিগারেশন আরও কাস্টমাইজ করা যায়।

ExtJS তে কম্পোনেন্ট তৈরি এবং কনফিগার করার এই পদ্ধতিগুলি আপনার অ্যাপ্লিকেশন তৈরির প্রক্রিয়াকে আরও সহজ এবং কার্যকরী করে তোলে।

Content added By
Promotion