Drag and Drop API এর ভূমিকা

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Drag and Drop Functionalities |

Drag and Drop (D&D) একটি শক্তিশালী ইউজার ইন্টারফেস ফিচার যা ব্যবহারকারীদের UI উপাদানগুলিকে একটি স্থান থেকে অন্য স্থানে টেনে নিয়ে যাওয়ার ক্ষমতা প্রদান করে। ExtJS একটি অন্তর্নির্মিত Drag and Drop API সরবরাহ করে যা কম্পোনেন্টগুলিকে সহজেই ড্র্যাগ এবং ড্রপ করার মাধ্যমে ইন্টারঅ্যাক্টিভ অ্যাপ্লিকেশন তৈরি করতে সহায়ক।

Drag and Drop API এর ভূমিকা:

ExtJS এর Drag and Drop API ব্যবহারকারীদের জন্য সহজ এবং ইন্টারেক্টিভ উপায়ে UI উপাদানগুলির মধ্যে স্থানান্তর নিশ্চিত করে। এটি ব্যবহৃত হয়:

  • কম্পোনেন্টের মধ্যে তথ্য স্থানান্তর (যেমন, গ্রিডের মধ্যে রেকর্ড স্থানান্তর)।
  • ট্যাব, গ্রিড, প্যানেল বা অন্যান্য উপাদানগুলির মধ্যে ভিজ্যুয়াল এলিমেন্ট স্থানান্তর।
  • একটি ইন্টারঅ্যাকটিভ ড্র্যাগ এবং ড্রপ অভিজ্ঞতা প্রদান করা।

ExtJS Drag and Drop API এর মূল বৈশিষ্ট্য

  1. DragSource:
    • এটি এমন একটি উপাদান বা কম্পোনেন্ট নির্ধারণ করে যা ড্র্যাগ করা যাবে।
    • DragSource এর মাধ্যমে, আপনি কোন উপাদানকে ড্র্যাগ করার জন্য প্রস্তুত করতে পারবেন।
  2. DropTarget:
    • এটি একটি ড্রপ টার্গেট নির্ধারণ করে যেখানে ড্র্যাগ করা উপাদানটি ড্রপ হবে।
    • DropTarget এর মাধ্যমে আপনি ড্র্যাগ করা উপাদানটি কোথায় ড্রপ হবে তা কনফিগার করতে পারবেন।
  3. Events:
    • dragstart: ড্র্যাগ শুরু হওয়ার সময়।
    • dragend: ড্র্যাগ শেষ হওয়ার সময়।
    • dragover: ড্র্যাগ করা উপাদান যখন ড্রপ টার্গেটের উপর চলে যায়।
    • drop: ড্র্যাগ করা উপাদান টার্গেটে ড্রপ হওয়ার পর।

ExtJS Drag and Drop API ব্যবহার করা

নিম্নে একটি সাধারণ উদাহরণ দেখানো হচ্ছে যেখানে দুটি প্যানেল থাকবে, একটিকে ড্র্যাগ সোর্স এবং অপরটিকে ড্রপ টার্গেট হিসেবে ব্যবহার করা হয়েছে।

উদাহরণ: Panel Drag and Drop

Ext.create('Ext.panel.Panel', {
    title: 'Drag Me',
    width: 200,
    height: 200,
    html: 'Drag this panel!',
    renderTo: Ext.getBody(),
    draggable: true, // প্যানেলটিকে ড্র্যাগযোগ্য করতে
    listeners: {
        dragstart: function (dragSource) {
            console.log('Drag started!');
        },
        dragend: function (dragSource) {
            console.log('Drag ended!');
        }
    }
});

Ext.create('Ext.panel.Panel', {
    title: 'Drop Here',
    width: 200,
    height: 200,
    renderTo: Ext.getBody(),
    droppable: true, // ড্রপযোগ্য করার জন্য
    listeners: {
        dragover: function (dropTarget, e, data) {
            console.log('Dragging over the drop target!');
        },
        drop: function (dropTarget, e, data) {
            console.log('Dropped!');
        }
    }
});

এখানে:

  • draggable: true: প্রথম প্যানেলটিকে ড্র্যাগযোগ্য করেছে।
  • droppable: true: দ্বিতীয় প্যানেলটিকে ড্রপযোগ্য করেছে।
  • dragstart, dragend, dragover, এবং drop ইভেন্টগুলো ড্র্যাগ এবং ড্রপ প্রক্রিয়ার পর্যায় চিহ্নিত করে এবং তা কাস্টম কার্যক্রমে ট্রিগার করে।

DragSource এবং DropTarget কনফিগারেশন

DragSource এবং DropTarget কনফিগারেশন ব্যবহারের মাধ্যমে আপনি আরও অনেক নিয়ন্ত্রণ পেতে পারেন। এখানে একটি বিস্তারিত উদাহরণ দেওয়া হচ্ছে:

উদাহরণ: গ্রিডের মধ্যে ড্র্যাগ এবং ড্রপ

Ext.create('Ext.data.Store', {
    storeId: 'simpleStore',
    fields: ['name'],
    data: [
        { 'name': 'John' },
        { 'name': 'Jane' },
        { 'name': 'Peter' },
        { 'name': 'Mark' }
    ]
});

Ext.create('Ext.grid.Panel', {
    title: 'Drag and Drop Grid',
    store: Ext.data.StoreManager.lookup('simpleStore'),
    columns: [{ text: 'Name', dataIndex: 'name', flex: 1 }],
    width: 400,
    height: 250,
    renderTo: Ext.getBody(),
    draggable: true, // গ্রিডকে ড্র্যাগযোগ্য করতে
    droppable: true, // গ্রিডকে ড্রপযোগ্য করতে
    listeners: {
        drop: function (dropTarget, e, data) {
            var draggedRecord = data.records[0]; // ড্র্যাগ করা রেকর্ড
            var gridStore = this.getStore();
            gridStore.add(draggedRecord); // ড্রপ করা রেকর্ডটি গ্রিডে অ্যাড করা
        }
    }
});

এখানে:

  • DragSource: ড্র্যাগ সোর্স হিসেবে গ্রিডের রেকর্ড ব্যবহৃত হচ্ছে।
  • DropTarget: একটি ড্রপ টার্গেট নির্ধারণ করা হয়েছে যেখানে ড্র্যাগ করা রেকর্ডটি ড্রপ হবে।
  • drop ইভেন্ট ব্যবহার করে, যখন রেকর্ডটি ড্রপ করা হয় তখন সেটি স্টোরে অ্যাড করা হয়।

ExtJS Drag and Drop API এর মূল উপকারিতা

  1. ইউজার ইন্টারফেসে ইন্টারঅ্যাকটিভিটি: এটি ব্যবহারকারীদের কম্পোনেন্টগুলোর মধ্যে ডেটা স্থানান্তর করার সুযোগ দেয়, যা অ্যাপ্লিকেশনের ব্যবহারকারীর অভিজ্ঞতা উন্নত করে।
  2. ডেটার ম্যানিপুলেশন: ড্র্যাগ এবং ড্রপের মাধ্যমে ডেটা এক জায়গা থেকে অন্য জায়গায় স্থানান্তর করা সহজ হয়, যেমন: গ্রিডের মধ্যে রেকর্ড স্থানান্তর করা।
  3. প্রাকৃতিক উপায়ে যোগাযোগ: Drag and Drop API ইউজারের সাথে প্রাকৃতিক এবং ইন্টারঅ্যাকটিভ যোগাযোগের মাধ্যম হিসেবে কাজ করে।
  4. ডায়নামিক UI: ড্র্যাগ এবং ড্রপ ফিচার ব্যবহার করে ডায়নামিক এবং রেসপন্সিভ UI তৈরি করা যায়, যা ব্যবহারকারীদের তাদের কাজ আরও সহজভাবে সম্পন্ন করতে সহায়ক হয়।

সারাংশ

ExtJS এর Drag and Drop API ব্যবহারকারীদের জন্য একটি শক্তিশালী এবং ইন্টারঅ্যাকটিভ ইউজার ইন্টারফেস তৈরির উপকরণ। এটি DragSource এবং DropTarget কনফিগারেশন ব্যবহার করে কম্পোনেন্টগুলির মধ্যে ড্র্যাগ এবং ড্রপ ইভেন্টগুলো সহজভাবে পরিচালনা করে। এই API টির সাহায্যে, ডেটার স্থানান্তর এবং UI এর ইন্টারঅ্যাকশন সহজ এবং আরও কার্যকর হয়।

Content added By
Promotion