GWT এর মাধ্যমে চার্টে ইন্টারঅ্যাকশন যোগ করা

Interactive এবং Drilldown চার্ট - জিডব্লিউটি হাই চার্ট (GWT High Charts) - Web Development

925

Highcharts একটি অত্যন্ত শক্তিশালী লাইব্রেরি যা শুধুমাত্র ডেটা ভিজুয়ালাইজেশন নয়, বরং ইন্টারঅ্যাকটিভ ফিচার যোগ করতেও সাহায্য করে। GWT (Google Web Toolkit) এর মাধ্যমে আপনি Highcharts এর ইন্টারঅ্যাকটিভ ফিচারগুলো যেমন: হোভার ইফেক্ট, ক্লিক ইভেন্ট, জুম ইন/আউট, প্যানিং, টুলটিপ ইত্যাদি যুক্ত করতে পারেন। এগুলো ব্যবহারকারীর অভিজ্ঞতা উন্নত করে এবং চার্টের সাথে আরও যুক্তিযুক্ত ইন্টারঅ্যাকশন সম্ভব করে।

এই অংশে, আমরা আলোচনা করব কিভাবে GWT অ্যাপ্লিকেশনে Highcharts চার্টে ইন্টারঅ্যাকশন যোগ করা যায়।


১. ইন্টারঅ্যাকটিভ টুলটিপ (Interactive Tooltip)

Highcharts দিয়ে আপনি খুব সহজেই টুলটিপ যোগ করতে পারেন, যা ডেটা পয়েন্টের উপর হোভার করলে অতিরিক্ত তথ্য দেখায়। GWT দিয়ে এটি কাস্টমাইজ করা সম্ভব।

টুলটিপ কাস্টমাইজেশন

tooltip: {
    formatter: function () {
        return 'Month: ' + this.point.category + '<br>Value: ' + this.point.y;
    }
}

এই কনফিগারেশন দিয়ে আপনি টুলটিপে কাস্টম ইনফরমেশন যেমন মাস এবং মান প্রদর্শন করতে পারবেন।

GWT ক্লাসে টুলটিপ সেট করা

public native void createChartWithTooltip(JavaScriptObject chartData) /*-{
    $wnd.Highcharts.chart('container', {
        chart: {
            type: 'line'
        },
        title: {
            text: 'Sales Data'
        },
        tooltip: {
            formatter: function () {
                return 'Month: ' + this.point.category + '<br>Sales: ' + this.point.y;
            }
        },
        series: [{
            name: 'Sales',
            data: chartData
        }]
    });
}-*/;

এখানে, Highcharts এর tooltip.formatter মেথড ব্যবহার করে কাস্টম টুলটিপ কনফিগার করা হয়েছে।


২. ক্লিক ইভেন্ট (Click Event)

Highcharts ক্লিক ইভেন্টের মাধ্যমে ডেটা পয়েন্টের উপর ক্লিক করলে আপনি কিছু করতে পারেন, যেমন বিস্তারিত তথ্য প্রদর্শন বা অন্য কোন অ্যাকশন। GWT অ্যাপ্লিকেশনে ক্লিক ইভেন্টের মাধ্যমে আপনি ইন্টারঅ্যাকশন সহজেই যোগ করতে পারেন।

ক্লিক ইভেন্ট কনফিগারেশন

plotOptions: {
    series: {
        point: {
            events: {
                click: function () {
                    alert('You clicked on ' + this.category + ': ' + this.y);
                }
            }
        }
    }
}

এখানে, ক্লিক ইভেন্টে this.category এবং this.y ব্যবহার করে পয়েন্টের ক্যাটেগরি এবং মান (Value) প্রদর্শিত হচ্ছে।

GWT ক্লাসে ক্লিক ইভেন্ট

public native void createChartWithClickEvent(JavaScriptObject chartData) /*-{
    $wnd.Highcharts.chart('container', {
        chart: {
            type: 'line'
        },
        title: {
            text: 'Sales Data'
        },
        plotOptions: {
            series: {
                point: {
                    events: {
                        click: function () {
                            alert('You clicked on ' + this.category + ': ' + this.y);
                        }
                    }
                }
            }
        },
        series: [{
            name: 'Sales',
            data: chartData
        }]
    });
}-*/;

এখানে, click ইভেন্ট ব্যবহার করা হয়েছে যা ব্যবহারকারী যখন চার্টের পয়েন্টে ক্লিক করবে, তখন একটি পপ-আপ (অ্যালার্ট) প্রদর্শিত হবে।


৩. জুম ইন/আউট (Zoom In/Out)

Highcharts এর সাথে জুম ইন/আউট ফিচারও খুব সহজেই যোগ করা যায়। এটি গ্রাফের বিভিন্ন অংশে ডেটার গভীরে যাওয়ার জন্য বা এক্সেল ডেটা বিশ্লেষণের জন্য সাহায্য করে।

জুম কনফিগারেশন

chart: {
    zoomType: 'xy'  // X এবং Y অক্ষ উভয়ই জুম করা যাবে
}

GWT ক্লাসে জুম ইন/আউট যোগ করা

public native void createChartWithZoom(JavaScriptObject chartData) /*-{
    $wnd.Highcharts.chart('container', {
        chart: {
            type: 'line',
            zoomType: 'xy'  // X এবং Y অক্ষ উভয়েই জুম করা যাবে
        },
        title: {
            text: 'Sales Data'
        },
        series: [{
            name: 'Sales',
            data: chartData
        }]
    });
}-*/;

এখানে, zoomType: 'xy' এর মাধ্যমে X এবং Y উভয় অক্ষেই জুম ইন/আউট করা যাবে।


৪. প্যানিং (Panning)

Highcharts-এ প্যানিং ফিচার যোগ করা সম্ভব যা চার্টের একটি অংশ থেকে অন্য অংশে স্ক্রোল করার অনুমতি দেয়।

প্যানিং কনফিগারেশন

chart: {
    panning: true,  // প্যানিং সক্ষম করা
    panKey: 'shift'  // প্যানিং করার জন্য Shift কিপ্রেস ব্যবহার করা
}

GWT ক্লাসে প্যানিং যোগ করা

public native void createChartWithPanning(JavaScriptObject chartData) /*-{
    $wnd.Highcharts.chart('container', {
        chart: {
            type: 'line',
            panning: true,
            panKey: 'shift'  // Shift কিপ্রেস ব্যবহার করে প্যানিং করা যাবে
        },
        title: {
            text: 'Sales Data'
        },
        series: [{
            name: 'Sales',
            data: chartData
        }]
    });
}-*/;

এখানে, panning: true এবং panKey: 'shift' সেট করার মাধ্যমে আপনি Shift কিপ্রেস ব্যবহার করে চার্টে প্যানিং করতে পারবেন।


৫. লেজেন্ড ইন্টারঅ্যাকশন (Legend Interaction)

Highcharts এর লেজেন্ড ইন্টারঅ্যাকশন ফিচার ব্যবহার করে আপনি সিরিজের প্রদর্শন/অদৃশ্য করার জন্য ব্যবহারকারীকে সুযোগ দিতে পারেন। এটি বিশেষ করে লেজেন্ডের ক্লিক ইভেন্টে কার্যকর।

লেজেন্ড কাস্টমাইজেশন

legend: {
    enabled: true,
    itemClick: function(event) {
        alert('You clicked on ' + event.target.name);
    }
}

GWT ক্লাসে লেজেন্ড ইন্টারঅ্যাকশন

public native void createChartWithLegendInteraction(JavaScriptObject chartData) /*-{
    $wnd.Highcharts.chart('container', {
        chart: {
            type: 'line'
        },
        title: {
            text: 'Sales Data'
        },
        legend: {
            enabled: true,
            itemClick: function(event) {
                alert('You clicked on ' + event.target.name);
            }
        },
        series: [{
            name: 'Sales',
            data: chartData
        }]
    });
}-*/;

এখানে, itemClick ইভেন্ট ব্যবহার করে লেজেন্ডে ক্লিক করলে একটি পপ-আপ শো করবে যেখানে সিরিজের নাম প্রদর্শিত হবে।


সারাংশ

Highcharts এর মাধ্যমে GWT অ্যাপ্লিকেশনগুলোতে বিভিন্ন ধরনের ইন্টারঅ্যাকটিভ ফিচার যোগ করা সম্ভব। এর মধ্যে রয়েছে টুলটিপ কাস্টমাইজেশন, ক্লিক ইভেন্ট, জুম ইন/আউট, প্যানিং এবং লেজেন্ড ইন্টারঅ্যাকশন। GWT এবং Highcharts এর শক্তিশালী ইন্টিগ্রেশন ব্যবহার করে আপনি আপনার চার্টের ইন্টারঅ্যাকটিভিটি বৃদ্ধি করতে পারেন এবং ব্যবহারকারীদের জন্য আরও তথ্যপূর্ণ এবং ডায়নামিক অভিজ্ঞতা তৈরি করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...