ExtJS এর Panel, Container, এবং Box Layout ব্যবস্থাপনা ইউজার ইন্টারফেসের লেআউট এবং উপাদানগুলোর বিন্যাস নিয়ন্ত্রণ করতে সহায়ক। এগুলি সাধারণত UI উপাদানগুলোকে একটি কনটেইনারের মধ্যে আছড়ে ফেলতে ব্যবহৃত হয়, যেখানে কম্পোনেন্টগুলো যথাযথভাবে সাজানো ও সজ্জিত করা হয়।
এগুলো ব্যবহার করে আপনি খুব সহজে ফ্লেক্সিবল, রেসপন্সিভ এবং কাস্টমাইজড লেআউট তৈরি করতে পারেন।
Panel কম্পোনেন্ট একটি কনটেইনার যা অন্য কম্পোনেন্ট এবং UI উপাদান ধারণ করতে পারে। এটি সাধারণত একটি বর্ডার, শিরোনাম এবং বডি ধারণ করে এবং html
, items
ইত্যাদি কনফিগারেশন দিয়ে অন্যান্য উপাদান যুক্ত করা হয়।
Ext.create('Ext.panel.Panel', {
title: 'My Panel', // প্যানেলের শিরোনাম
width: 300, // প্যানেলের প্রস্থ
height: 200, // প্যানেলের উচ্চতা
html: '<p>Welcome to ExtJS!</p>', // প্যানেলের ভিতরের HTML কনটেন্ট
renderTo: Ext.getBody() // DOM এর body তে রেন্ডার হবে
});
এখানে:
title
: প্যানেলের শিরোনাম নির্ধারণ করে।width
/ height
: প্যানেলের আকার নির্ধারণ করে।html
: প্যানেলের ভিতরের HTML কনটেন্ট।renderTo
: প্যানেলটি কোন DOM এলিমেন্টে রেন্ডার হবে তা নির্ধারণ করে।Panel সাধারণত ব্যবহারকারীর তথ্য প্রদর্শন করতে, তথ্য ফর্ম বা ডেটা ভিউ সংক্রান্ত কাজের জন্য ব্যবহৃত হয়।
Container একটি মৌলিক কম্পোনেন্ট, যা অন্যান্য কম্পোনেন্টের জন্য কন্টেইনার হিসেবে কাজ করে। এটি layout
কনফিগারেশনের মাধ্যমে অন্তর্ভুক্ত কম্পোনেন্টগুলোর পজিশন এবং বিন্যাস নিয়ন্ত্রণ করে। Container
কম্পোনেন্টটি সাধারণত Panel
, Window
এবং অন্যান্য উইন্ডো টাইপ কম্পোনেন্টের ভিত্তি।
Ext.create('Ext.container.Container', {
renderTo: Ext.getBody(),
layout: 'hbox', // হরিজেন্টাল বক্স লেআউট
items: [{
xtype: 'panel',
title: 'Panel 1',
width: 150,
height: 100
}, {
xtype: 'panel',
title: 'Panel 2',
width: 150,
height: 100
}]
});
এখানে:
layout
: কন্টেইনারের ভেতরে কম্পোনেন্টগুলোর বিন্যাস নিয়ন্ত্রণ করে। এখানে hbox
লেআউট ব্যবহৃত হয়েছে, যা উপাদানগুলোকে একে অপরের পাশে রেখেছে।items
: কন্টেইনারে রাখা কম্পোনেন্টগুলো (যেমন Panel
)।Box Layout একটি লেআউট ম্যানেজার, যা এক বা একাধিক কম্পোনেন্টকে একটি এক্সিসে (অথবা অনুভূমিক বা উল্লম্বভাবে) সাজায়। এটি দুটি প্রধান টাইপে আসে:
hbox (Horizontal Box Layout) উদাহরণ:
Ext.create('Ext.container.Container', {
renderTo: Ext.getBody(),
layout: 'hbox', // অনুভূমিক বক্স লেআউট
items: [{
xtype: 'panel',
title: 'Panel 1',
width: 150,
height: 100
}, {
xtype: 'panel',
title: 'Panel 2',
width: 150,
height: 100
}]
});
এখানে, hbox
লেআউটের মাধ্যমে দুটি প্যানেল অনুভূমিকভাবে একে অপরের পাশে সাজানো হয়েছে।
vbox (Vertical Box Layout) উদাহরণ:
Ext.create('Ext.container.Container', {
renderTo: Ext.getBody(),
layout: 'vbox', // উল্লম্ব বক্স লেআউট
items: [{
xtype: 'panel',
title: 'Panel 1',
width: 150,
height: 100
}, {
xtype: 'panel',
title: 'Panel 2',
width: 150,
height: 100
}]
});
এখানে, vbox
লেআউটের মাধ্যমে দুটি প্যানেল উল্লম্বভাবে একে অপরের উপরে সাজানো হয়েছে।
Box Layout ব্যবহারে কিছু গুরুত্বপূর্ণ কনফিগারেশন যেমন pack
, align
ইত্যাদি ব্যবহার করা হয়।
pack
: উপাদানগুলির স্থান নির্ধারণ করে (উদাহরণস্বরূপ, start
, center
, end
ইত্যাদি)।align
: উপাদানগুলির ভারটিক্যাল অ্যালাইনমেন্ট নির্ধারণ করে (উদাহরণস্বরূপ, stretch
, center
, start
ইত্যাদি)।Ext.create('Ext.container.Container', {
renderTo: Ext.getBody(),
layout: {
type: 'hbox',
pack: 'center', // উপাদানগুলোকে কেন্দ্রীভূত করবে
align: 'middle' // উপাদানগুলোকে উল্লম্বভাবে মাঝখানে রাখবে
},
items: [{
xtype: 'panel',
title: 'Panel 1',
width: 150,
height: 100
}, {
xtype: 'panel',
title: 'Panel 2',
width: 150,
height: 100
}]
});
এখানে:
pack: 'center'
: উপাদানগুলোকে কেন্দ্রে রেখেছে।align: 'middle'
: উপাদানগুলোকে উল্লম্বভাবে মাঝখানে রেখেছে।layout
এর মাধ্যমে উপাদানগুলোর বিন্যাস নিয়ন্ত্রণ করে।Panel, Container, এবং Box Layout ব্যবহারের মাধ্যমে আপনি খুব সহজে এবং কার্যকরভাবে UI উপাদানগুলি সাজাতে এবং কাস্টমাইজ করতে পারবেন। ExtJS এর এই বৈশিষ্ট্যগুলি ডেভেলপারদের শক্তিশালী এবং রেসপন্সিভ ইউজার ইন্টারফেস তৈরিতে সাহায্য করে।