IITDU Forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Gantt Chart

2 posters

Go down

Gantt Chart Empty Gantt Chart

Post by BIT0112-Rokon Wed Jul 21, 2010 1:00 am

আমাদের মধ্যে অনেকেই সিডিউলার সিমুলেশান এ গ্রাফিক্যাল ভিও নিয়ে আগ্রহী। আমি একটু খুজাখুজি করলাম। বেশি দেখি নাই। তিনটা জার পেয়েছি। একটা প্রজেক্ট পেয়েছি jfreechart নামে। কিন্তু সমস্যা হলো এই প্রজেক্ট টা অনেক বড়ো এবং এই তিনটা জার ছাড়াও আরও অসংখ্যা ক্লাস লিখতে হয়। যেমন -
com.keypoint
org.jfree
org.jfree.base
org.jfree.base.config
org.jfree.base.log
org.jfree.base.modules
org.jfree.chart
org.jfree.chart.annotations
org.jfree.chart.annotations.junit
org.jfree.chart.axis
org.jfree.chart.axis.junit
org.jfree.chart.block
org.jfree.chart.block.junit
org.jfree.chart.demo
org.jfree.chart.demo.resources
org.jfree.chart.encoders
org.jfree.chart.entity
org.jfree.chart.entity.junit
org.jfree.chart.event
org.jfree.chart.imagemap
org.jfree.chart.junit
org.jfree.chart.labels
org.jfree.chart.labels.junit
org.jfree.chart.needle
org.jfree.chart.plot
org.jfree.chart.plot.junit
org.jfree.chart.renderer
org.jfree.chart.renderer.category
org.jfree.chart.renderer.category.junit
org.jfree.chart.renderer.junit
org.jfree.chart.renderer.xy
org.jfree.chart.renderer.xy.junit
org.jfree.chart.resources
org.jfree.chart.servlet
org.jfree.chart.title
org.jfree.chart.title.junit
org.jfree.chart.tooltips
org.jfree.chart.ui
org.jfree.chart.ui.junit
org.jfree.chart.urls
org.jfree.chart.urls.junit
org.jfree.data
org.jfree.data.category
org.jfree.data.category.junit
org.jfree.data.contour
org.jfree.data.function
org.jfree.data.gantt
org.jfree.data.gantt.junit
org.jfree.data.general
org.jfree.data.general.junit
org.jfree.data.io
org.jfree.data.jdbc
org.jfree.data.junit
org.jfree.data.resources
org.jfree.data.statistics
org.jfree.data.statistics.junit
org.jfree.data.time
org.jfree.data.time.junit
org.jfree.data.xml
org.jfree.data.xy
org.jfree.data.xy.junit
org.jfree.date
org.jfree.date.junit
org.jfree.demo
org.jfree.io
org.jfree.io.junit
org.jfree.junit
org.jfree.layout
org.jfree.resources
org.jfree.text
org.jfree.text.junit
org.jfree.threads
org.jfree.ui
org.jfree.ui.about
org.jfree.ui.about.resources
org.jfree.ui.action
org.jfree.ui.junit
org.jfree.ui.tabbedui
org.jfree.util
org.jfree.util.junit
org.jfree.xml
org.jfree.xml.attributehandlers
org.jfree.xml.factory.objects
org.jfree.xml.generator
org.jfree.xml.generator.model
org.jfree.xml.parser
org.jfree.xml.parser.coretypes
org.jfree.xml.util
org.jfree.xml.writer
org.jfree.xml.writer.coretypes

উপরের গুলো মুলত প্যকেজ .. এইগুলো লাগবে। এর মধ্যে সব গুলো প্রয়োজনীয় নাও হতে পারে। কোনগুলো প্রয়োজনীয় না তা সর্ট আউট করে বের করা একটু সময় সাপেক্ষ। আমি চেষ্টা করবো সেটি। তবে আপাতত যেহেতু সময় কম, তাই সব গুলোই এড করবো। তো এতোগুলো প্যকেজ এড করা কিছুটা ঝামেলার। তাই আমি সিদ্ধান্ত নিয়েছি, এই সব প্রয়োজনীয় প্যাকেজ গুলোকে নিয়ে একটি জার তৈরি করবো। যাতে সহজেই ব্যবহার করা যায়।

আর চার্ট তৈরি করার জন্য কিছু টিউটোরিয়াল পেয়েছি .. এগুলো নিচে দিয়েছি।

[You must be registered and logged in to see this link.]

আগ্রহীরা উপরের লিংক গুলো দেখতে পারে। যাহোক, একত্রিকৃত জারটি পাওয়া যাবে [You must be registered and logged in to see this link.]

আর জার কিভাবে এড করতে হয়, তা মনে হয় সবাই ইতিমধ্যে জানে। না জানলে [You must be registered and logged in to see this link.] থেকে দেখে নিতে পারে।

এখন একটি ডেমো দেখা যাক-



Code:

package org.jfree.chart.demo;

import java.util.Calendar;
import java.util.Date;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import org.jfree.data.time.SimpleTimePeriod;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;


public class GanttDemo1 extends ApplicationFrame {

 
    public GanttDemo1(final String title) {

        super(title);

        final IntervalCategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset);

        // add the chart to a panel...
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 470));
        setContentPane(chartPanel);

    }

                                                     
             
   
    /**
    * Creates a sample dataset for a Gantt chart.
    *
    * @return The dataset.
    */
    public static IntervalCategoryDataset createDataset() {

        final TaskSeries s1 = new TaskSeries("Scheduled");
        s1.add(new Task("Write Proposal",
              new SimpleTimePeriod(date(1, Calendar.APRIL, 2010),
                                    date(5, Calendar.APRIL, 2010))));
        s1.add(new Task("Obtain Approval",
              new SimpleTimePeriod(date(9, Calendar.APRIL, 2010),
                                    date(9, Calendar.APRIL, 2010))));
        s1.add(new Task("Requirements Analysis",
              new SimpleTimePeriod(date(10, Calendar.APRIL, 2010),
                                    date(5, Calendar.MAY, 2010))));
        s1.add(new Task("Design Phase",
              new SimpleTimePeriod(date(6, Calendar.MAY, 2010),
                                    date(30, Calendar.MAY, 2010))));
        s1.add(new Task("Design Signoff",
              new SimpleTimePeriod(date(2, Calendar.JUNE, 2010),
                                    date(2, Calendar.JUNE, 2010))));
        s1.add(new Task("Alpha Implementation",
              new SimpleTimePeriod(date(3, Calendar.JUNE, 2010),
                                    date(31, Calendar.JULY, 2010))));
        s1.add(new Task("Design Review",
              new SimpleTimePeriod(date(1, Calendar.AUGUST, 2010),
                                    date(8, Calendar.AUGUST, 2010))));
        s1.add(new Task("Revised Design Signoff",
              new SimpleTimePeriod(date(10, Calendar.AUGUST, 2010),
                                    date(10, Calendar.AUGUST, 2010))));
        s1.add(new Task("Beta Implementation",
              new SimpleTimePeriod(date(12, Calendar.AUGUST, 2010),
                                    date(12, Calendar.SEPTEMBER, 2010))));
        s1.add(new Task("Testing",
              new SimpleTimePeriod(date(13, Calendar.SEPTEMBER, 2010),
                                    date(31, Calendar.OCTOBER, 2010))));
        s1.add(new Task("Final Implementation",
              new SimpleTimePeriod(date(1, Calendar.NOVEMBER, 2010),
                                    date(15, Calendar.NOVEMBER, 2010))));
        s1.add(new Task("Signoff",
              new SimpleTimePeriod(date(28, Calendar.NOVEMBER, 2010),
                                    date(30, Calendar.NOVEMBER, 2010))));

        final TaskSeries s2 = new TaskSeries("Actual");
        s2.add(new Task("Write Proposal",
              new SimpleTimePeriod(date(1, Calendar.APRIL, 2010),
                                    date(5, Calendar.APRIL, 2010))));
        s2.add(new Task("Obtain Approval",
              new SimpleTimePeriod(date(9, Calendar.APRIL, 2010),
                                    date(9, Calendar.APRIL, 2010))));
        s2.add(new Task("Requirements Analysis",
              new SimpleTimePeriod(date(10, Calendar.APRIL, 2010),
                                    date(15, Calendar.MAY, 2010))));
        s2.add(new Task("Design Phase",
              new SimpleTimePeriod(date(15, Calendar.MAY, 2010),
                                    date(17, Calendar.JUNE, 2010))));
        s2.add(new Task("Design Signoff",
              new SimpleTimePeriod(date(30, Calendar.JUNE, 2010),
                                    date(30, Calendar.JUNE, 2010))));
        s2.add(new Task("Alpha Implementation",
              new SimpleTimePeriod(date(1, Calendar.JULY, 2010),
                                    date(12, Calendar.SEPTEMBER, 2010))));
        s2.add(new Task("Design Review",
              new SimpleTimePeriod(date(12, Calendar.SEPTEMBER, 2010),
                                    date(22, Calendar.SEPTEMBER, 2010))));
        s2.add(new Task("Revised Design Signoff",
              new SimpleTimePeriod(date(25, Calendar.SEPTEMBER, 2010),
                                    date(27, Calendar.SEPTEMBER, 2010))));
        s2.add(new Task("Beta Implementation",
              new SimpleTimePeriod(date(27, Calendar.SEPTEMBER, 2010),
                                    date(30, Calendar.OCTOBER, 2010))));
        s2.add(new Task("Testing",
              new SimpleTimePeriod(date(31, Calendar.OCTOBER, 2010),
                                    date(17, Calendar.NOVEMBER, 2010))));
        s2.add(new Task("Final Implementation",
              new SimpleTimePeriod(date(18, Calendar.NOVEMBER, 2010),
                                    date(5, Calendar.DECEMBER, 2010))));
        s2.add(new Task("Signoff",
              new SimpleTimePeriod(date(10, Calendar.DECEMBER, 2010),
                                    date(11, Calendar.DECEMBER, 2010))));

        final TaskSeriesCollection collection = new TaskSeriesCollection();
        collection.add(s1);
        collection.add(s2);

        return collection;
    }

    /**
    * Utility method for creating <code>Date</code> objects.
    *
    * @param day  the date.
    * @param month  the month.
    * @param year  the year.
    *
    * @return a date.
    */
    private static Date date(final int day, final int month, final int year) {

        final Calendar calendar = Calendar.getInstance();
        calendar.set(year, month, day);
        final Date result = calendar.getTime();
        return result;

    }
       
    /**
    * Creates a chart.
    *
    * @param dataset  the dataset.
    *
    * @return The chart.
    */
    private JFreeChart createChart(final IntervalCategoryDataset dataset) {
        final JFreeChart chart = ChartFactory.createGanttChart(
            "Gantt Chart Demo",  // chart title
            "Task",              // domain axis label
            "Date",              // range axis label
            dataset,            // data
            true,                // include legend
            true,                // tooltips
            false                // urls
        );   
//        chart.getCategoryPlot().getDomainAxis().setMaxCategoryLabelWidthRatio(10.0f);
        return chart;   
    }
   
    /**
    * Starting point for the demonstration application.
    *
    * @param args  ignored.
    */
    public static void main(final String[] args) {

        final GanttDemo1 demo = new GanttDemo1("Gantt Chart Demo 1");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);

    }

}

আশাকরি, এটি সবাই কাস্টোমাইজ করতে পারবে।
ধন্যবাদ সবাইকে সবাইকে ।



Credit Line
[You must be registered and logged in to see this link.]
BIT0112-Rokon
BIT0112-Rokon
Programmer
Programmer

Course(s) :
  • BIT

Blood Group : O+
Posts : 673
Points : 1269

http://blog.codexplo.org

Back to top Go down

Gantt Chart Empty Re: Gantt Chart

Post by BIT0109-Jobaer Wed Jul 21, 2010 2:21 am

Thanx a lot dost....khub kajer ekta post.... [You must be registered and logged in to see this image.]
BIT0109-Jobaer
BIT0109-Jobaer
Beta Release
Beta Release

Course(s) :
  • BIT

Blood Group : B+
Posts : 91
Points : 191

Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum