Layout Configuration এবং Nesting Layouts

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Layout Management |

ExtJS এ Layout Configuration এবং Nesting Layouts দুটি গুরুত্বপূর্ণ কনসেপ্ট যা ইউজার ইন্টারফেসের কন্ট্রোল এবং কম্পোনেন্টগুলির অবস্থান নির্ধারণ করতে ব্যবহৃত হয়। এগুলি অ্যাপ্লিকেশনের বিভিন্ন UI উপাদানকে সঠিকভাবে সাজানো এবং ডাইনামিকভাবে অ্যাডজাস্ট করা সম্ভব করে।


Layout Configuration (লেআউট কনফিগারেশন)

Layout হল একটি কম্পোনেন্টের ভিতরের উপাদানগুলিকে সাজানোর পদ্ধতি। ExtJS তে বিভিন্ন ধরনের লেআউট আছে, যা আপনার অ্যাপ্লিকেশনের UI ডিজাইন অনুযায়ী ব্যবহার করা হয়। এর মাধ্যমে কম্পোনেন্টগুলির অবস্থান ও সাইজ নির্ধারণ করা যায়।

লেআউটের প্রধান ধরনগুলি:

  1. Fit Layout: একটি একক কম্পোনেন্টের ভিতরে সব উপাদানকে পূর্ণভাবে ফিট করে।
  2. Border Layout: বিভিন্ন এলাকা (উত্তর, দক্ষিণ, পূর্ব, পশ্চিম, কেন্দ্র) নিয়ে একটি অ্যাপ্লিকেশন লেআউট তৈরি করে।
  3. Card Layout: একাধিক প্যানেল বা কম্পোনেন্টকে একটি কার্ডের মতো পরিবর্তনশীল অবস্থায় দেখায়।
  4. VBox / HBox Layout: কম্পোনেন্টগুলিকে ভার্টিকালি (VBox) বা হরিজেন্টালি (HBox) সাজায়।
  5. Table Layout: টেবিলের মতো কম্পোনেন্টগুলিকে সারি এবং কলামে সাজায়।

Fit Layout উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Fit Layout Example',
    width: 400,
    height: 300,
    layout: 'fit',
    items: [{
        xtype: 'panel',
        html: 'This is a fit layout panel.',
        bodyPadding: 10
    }],
    renderTo: Ext.getBody()
});
  • layout: 'fit': এটি একমাত্র এক কম্পোনেন্টকে পুরো প্যানেলের মধ্যে ফিট করে।

Border Layout উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Border Layout Example',
    width: 600,
    height: 400,
    layout: 'border',
    items: [{
        region: 'north',
        xtype: 'panel',
        height: 50,
        html: 'North Region'
    }, {
        region: 'west',
        xtype: 'panel',
        width: 200,
        html: 'West Region'
    }, {
        region: 'center',
        xtype: 'panel',
        html: 'Center Region'
    }],
    renderTo: Ext.getBody()
});
  • layout: 'border': এতে বিভিন্ন region গুলি নির্দিষ্ট করে দেওয়া হয় (উত্তর, দক্ষিণ, পূর্ব, পশ্চিম, কেন্দ্র)।

VBox Layout উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'VBox Layout Example',
    width: 400,
    height: 300,
    layout: {
        type: 'vbox',
        align: 'stretch'  // stretch alignment
    },
    items: [{
        xtype: 'panel',
        title: 'Panel 1',
        html: 'This is the first panel.',
        flex: 1 // flex defines the space it will occupy
    }, {
        xtype: 'panel',
        title: 'Panel 2',
        html: 'This is the second panel.',
        flex: 2 // this panel will occupy double space compared to Panel 1
    }],
    renderTo: Ext.getBody()
});
  • layout: { type: 'vbox' }: এটি প্যানেলগুলিকে ভার্টিকালি সাজায়। flex ব্যবহার করে প্যানেলগুলির উচ্চতা নির্ধারণ করা হয়।

Nesting Layouts (নেস্টিং লেআউট)

Nesting Layouts হল একাধিক লেআউট একে অপরের মধ্যে স্থাপন করা। এর মাধ্যমে একটি কমপ্লেক্স UI তৈরি করা যায় যেখানে একাধিক লেআউট একে অপরের মধ্যে অন্তর্ভুক্ত থাকে।

Nesting Layout উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Nesting Layout Example',
    width: 600,
    height: 400,
    layout: 'border',
    items: [{
        region: 'north',
        xtype: 'panel',
        height: 50,
        html: 'North Region'
    }, {
        region: 'west',
        xtype: 'panel',
        width: 200,
        layout: 'vbox',  // Nested Layout
        items: [{
            xtype: 'panel',
            title: 'Panel 1',
            html: 'This is the first nested panel.',
            flex: 1
        }, {
            xtype: 'panel',
            title: 'Panel 2',
            html: 'This is the second nested panel.',
            flex: 1
        }]
    }, {
        region: 'center',
        xtype: 'panel',
        html: 'Center Region'
    }],
    renderTo: Ext.getBody()
});

এখানে, west রিজনে একটি vbox লেআউট ব্যবহার করা হয়েছে, যা দুটি প্যানেলকে ভার্টিকালি সাজায়। এর মাধ্যমে আপনি একাধিক লেআউট একে অপরের মধ্যে স্থাপন করতে পারেন, যা nesting layouts বলে পরিচিত।


ExtJS Layout Configuration এর সুবিধা

  1. ফ্লেক্সিবল ডিজাইন: লেআউট কনফিগারেশন বিভিন্ন ধরনের UI উপাদানকে সাজানোর জন্য ব্যবহার করা যায় এবং ইউজারের স্ক্রীন সাইজ অনুযায়ী উপাদানগুলি ডাইনামিকভাবে পরিবর্তন হয়।
  2. ব্যবহারকারী ইন্টারফেসের উন্নয়ন: নেস্টিং লেআউট ব্যবহার করে জটিল UI গঠন করা সহজ।
  3. রেসপন্সিভ ডিজাইন: বিভিন্ন লেআউট ডিভাইসের স্ক্রীনে সহজেই অ্যাডজাস্ট করা যায়, যেমন মোবাইল বা ট্যাবলেট।

সারাংশ

  • Layout Configuration ExtJS এর মাধ্যমে UI কম্পোনেন্টগুলিকে সঠিকভাবে সাজানোর জন্য ব্যবহৃত হয়। বিভিন্ন লেআউট ধরনের মধ্যে fit, border, vbox/hbox, এবং table layout অন্তর্ভুক্ত রয়েছে।
  • Nesting Layouts একাধিক লেআউট একে অপরের মধ্যে রাখা হয়, যা জটিল এবং ডাইনামিক UI ডিজাইন তৈরি করতে সাহায্য করে।

এই কনফিগারেশনগুলির মাধ্যমে আপনি আরও কার্যকরী এবং ব্যবহারকারী-বান্ধব ইন্টারফেস তৈরি করতে পারেন, যা বিভিন্ন প্ল্যাটফর্মে স্বয়ংক্রিয়ভাবে সঠিকভাবে কাজ করবে।

Content added By
Promotion