Simple Drag and Drop তৈরি করা

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

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

এখানে আমরা একটি সাধারণ Drag and Drop উদাহরণ দেখব যেখানে একটি প্যানেলকে অন্য প্যানেলে ড্র্যাগ এবং ড্রপ করা যাবে।


১. ড্র্যাগ এবং ড্রপ অ্যাপ্লিকেশন তৈরি করা

ExtJS-এ ড্র্যাগ এবং ড্রপ করার জন্য আমরা Draggable এবং Droppable এর মত প্রপার্টি ব্যবহার করতে পারি। নিচে একটি বেসিক Drag and Drop উদাহরণ দেখানো হলো।

উদাহরণ: একটি প্যানেল ড্র্যাগ এবং ড্রপ করা

Ext.create('Ext.panel.Panel', {
    title: 'Drag Me!',
    width: 200,
    height: 100,
    draggable: true, // প্যানেলটি ড্র্যাগ করা যাবে
    renderTo: Ext.getBody(),
    html: '<p>Drag me to another area!</p>',
    listeners: {
        render: function(panel) {
            panel.getEl().on('drag', function(e, target) {
                console.log('Panel is being dragged');
            });
        }
    }
});

Ext.create('Ext.panel.Panel', {
    title: 'Drop Zone',
    width: 300,
    height: 200,
    renderTo: Ext.getBody(),
    style: 'border: 2px solid black; margin-top: 20px;',
    html: '<p>Drop here!</p>',
    listeners: {
        render: function(panel) {
            panel.getEl().on('drop', function(e, target) {
                console.log('Panel was dropped here');
            });
        }
    }
});

এখানে:

  • প্রথম panel ড্র্যাগযোগ্য (draggable: true), যার মানে এটি অন্য প্যানেলে ড্র্যাগ করা যাবে।
  • দ্বিতীয় প্যানেলটি drop zone হিসেবে ব্যবহৃত হচ্ছে এবং এটি ড্র্যাগ করা প্যানেলটি গ্রহণ করবে।
  • listeners ইভেন্ট ব্যবহার করে আমরা drag এবং drop ইভেন্ট হ্যান্ডল করছি।

২. Drag and Drop Grid Example

এখানে একটি Grid কম্পোনেন্ট ব্যবহার করে ড্র্যাগ এবং ড্রপ ইভেন্ট তৈরি করা হয়েছে, যেখানে আমরা গ্রিডের একটি রেকর্ড ড্র্যাগ করে অন্য গ্রিডে ড্রপ করতে পারি।

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

Ext.create('Ext.data.Store', {
    storeId: 'simpsonsStore',
    fields: ['name', 'email', 'phone'],
    data: [
        { 'name': 'Lisa', 'email': 'lisa@simpsons.com', 'phone': '555-111-1224' },
        { 'name': 'Bart', 'email': 'bart@simpsons.com', 'phone': '555-222-1234' },
        { 'name': 'Homer', 'email': 'homer@simpsons.com', 'phone': '555-222-1244' }
    ]
});

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    width: 400,
    height: 300,
    renderTo: Ext.getBody(),
    columns: [
        { text: 'Name', dataIndex: 'name', flex: 1 },
        { text: 'Email', dataIndex: 'email', flex: 1 },
        { text: 'Phone', dataIndex: 'phone', flex: 1 }
    ],
    viewConfig: {
        plugins: {
            ptype: 'gridviewdragdrop',
            dragText: 'Drag and drop to reorder'
        }
    }
});

এখানে:

  • gridviewdragdrop প্যানেলটি ড্র্যাগ এবং ড্রপ করার জন্য ব্যবহৃত প্লাগইন। এটি gridview এর মধ্যে ড্র্যাগ এবং ড্রপ কার্যকারিতা প্রদান করে।
  • dragText: ড্র্যাগ করতে থাকা রেকর্ডের জন্য একটি টেক্সট প্রদান করা হয়।
  • এটি গ্রিডের রেকর্ডগুলোকে একটি নতুন অবস্থানে ড্র্যাগ এবং ড্রপ করার জন্য সহায়ক।

৩. Drag and Drop Between Two Grids

এখন, আমরা দুটি গ্রিড তৈরি করব এবং এক গ্রিড থেকে অন্য গ্রিডে ডেটা ড্র্যাগ এবং ড্রপ করব।

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

Ext.create('Ext.data.Store', {
    storeId: 'firstStore',
    fields: ['name', 'email', 'phone'],
    data: [
        { 'name': 'Lisa', 'email': 'lisa@simpsons.com', 'phone': '555-111-1224' },
        { 'name': 'Bart', 'email': 'bart@simpsons.com', 'phone': '555-222-1234' }
    ]
});

Ext.create('Ext.data.Store', {
    storeId: 'secondStore',
    fields: ['name', 'email', 'phone'],
    data: [
        { 'name': 'Homer', 'email': 'homer@simpsons.com', 'phone': '555-222-1244' }
    ]
});

Ext.create('Ext.grid.Panel', {
    title: 'First Grid',
    store: Ext.data.StoreManager.lookup('firstStore'),
    width: 400,
    height: 300,
    renderTo: Ext.getBody(),
    columns: [
        { text: 'Name', dataIndex: 'name', flex: 1 },
        { text: 'Email', dataIndex: 'email', flex: 1 },
        { text: 'Phone', dataIndex: 'phone', flex: 1 }
    ],
    viewConfig: {
        plugins: {
            ptype: 'gridviewdragdrop',
            dragText: 'Drag and drop to reorder'
        }
    }
});

Ext.create('Ext.grid.Panel', {
    title: 'Second Grid',
    store: Ext.data.StoreManager.lookup('secondStore'),
    width: 400,
    height: 300,
    renderTo: Ext.getBody(),
    columns: [
        { text: 'Name', dataIndex: 'name', flex: 1 },
        { text: 'Email', dataIndex: 'email', flex: 1 },
        { text: 'Phone', dataIndex: 'phone', flex: 1 }
    ],
    viewConfig: {
        plugins: {
            ptype: 'gridviewdragdrop',
            dragText: 'Drag and drop items here'
        }
    }
});

এখানে, দুটি গ্রিড ব্যবহার করা হয়েছে:

  1. First Grid: প্রথম গ্রিড থেকে ডেটা ড্র্যাগ করা হবে।
  2. Second Grid: এখানে ড্রপ করা হবে।

gridviewdragdrop প্লাগইন ব্যবহার করা হয়েছে, যা গ্রিডে ড্র্যাগ এবং ড্রপ কার্যকারিতা সক্ষম করে।


সারাংশ

  1. ExtJS Drag and Drop: ExtJS তে ড্র্যাগ এবং ড্রপ ফিচারটি খুব সহজে অ্যাপ্লিকেশনে সংযুক্ত করা যায়। Draggable এবং Droppable ফিচারের মাধ্যমে আপনি যেকোনো কম্পোনেন্ট ড্র্যাগ এবং ড্রপ করতে পারেন।
  2. Grid Drag and Drop: গ্রিডে রেকর্ড ড্র্যাগ এবং ড্রপ করার জন্য gridviewdragdrop প্লাগইন ব্যবহার করা হয়।
  3. Multiple Grids: একাধিক গ্রিডের মধ্যে ডেটা ড্র্যাগ এবং ড্রপ করতে দুটি গ্রিডের মধ্যে সম্পর্ক স্থাপন করা হয়।

এটি আপনাকে একাধিক ভিউ বা ডেটা সেটের মধ্যে সহজে নেভিগেট করার সুযোগ দেয় এবং ইউজারের জন্য ইন্টারেক্টিভ অভিজ্ঞতা তৈরি করে।

Content added By
Promotion