package com.dlsc.flexgantt.showcase.demo.resources;

import java.util.Calendar;

import com.dlsc.flexgantt.model.TimeSpan;
import com.dlsc.flexgantt.model.dateline.TimeGranularity;
import com.dlsc.flexgantt.model.gantt.DefaultCapacityObject;
import com.dlsc.flexgantt.model.gantt.DefaultResourceNode;
import com.dlsc.flexgantt.model.gantt.ITimelineObject;

public class ResourceNode extends
        DefaultResourceNode<Resource, ITimelineObject> {
    private Calendar c1 = Calendar.getInstance();
    private Calendar c2 = Calendar.getInstance();

    public ResourceNode(Resource res) {
        super(res, false);
        setRowHeight(100);
        setKey(res);
        TimeGranularity.DAY_SHORT.adjustCalendar(c1);
        TimeGranularity.DAY_SHORT.adjustCalendar(c2);
        int count = 365 * 3; // data for 3 years, one tlo per day
        DefaultCapacityObject[] tlo = new DefaultCapacityObject[count];
        for (int i = 0; i < count; i++) {
            c2.add(Calendar.DAY_OF_YEAR, 1);
            double cap = Math.round(Math.random() * 130);
            TimeSpan span = new TimeSpan(c1, c2);
            tlo[i] = new DefaultCapacityObject(span);
            tlo[i].setCapacityUsed(cap);
            tlo[i].setPopupObject(cap + "%", false);
            tlo[i].setPopupObject("Resource: " + res.getName() + "\n" + cap
                    + "%", true);
            c1.add(Calendar.DAY_OF_YEAR, 1);
        }
        setPopupTitleObject("Resource");
        setPopupObject("Name: " + res.getName(), false);
        setPopupObject("Name: " + res.getName() + "\nCapacity: "
                + res.getCapacity() + "\nLocation:" + res.getLocation(), true);
        setTimelineObjects(ResourceModel.CAP_LAYER, tlo);
    }
}
