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

import java.util.Calendar;

import com.dlsc.flexgantt.model.TimeSpan;
import com.dlsc.flexgantt.model.dateline.DatelineModelException;
import com.dlsc.flexgantt.model.dateline.TimeGranularity;
import com.dlsc.flexgantt.policy.layer.ICrosshairPolicy;
import com.dlsc.flexgantt.swing.GanttChart;
import com.dlsc.flexgantt.swing.timeline.TimeGranularityDatelineModel;

public class ResourceGanttChart extends GanttChart {

    public ResourceGanttChart() {
        super(new ResourceModel());
        getTreeTable().setRootVisible(false);
        getColumnModel().getKeyColumn().setWidth(200);
        getSplitPane().resetToPreferredSizes();
        try {
            TimeGranularityDatelineModel datelineModel = (TimeGranularityDatelineModel) getDatelineModel();
            datelineModel.setGranularity(TimeGranularity.DAY_SHORT);
        } catch (DatelineModelException e) {
            e.printStackTrace();
        }
        setLayerContainerRowHeaderWidth(45);
        getTreeTable().setCellRenderer(Resource.class,
                new ResourceTreeTableCellRenderer());
        getLayerContainerScrollPane().getRowHeader().setVisible(true);
        setLabelsVisible(false);
        getLayerContainer().getPolicyProvider().setPolicy(
                ICrosshairPolicy.class, new ResourceCrosshairPolicy());
        Calendar sc = Calendar.getInstance();
        TimeGranularity.DAY_SHORT.adjustCalendar(sc);
        Calendar ec = Calendar.getInstance();
        ec.add(Calendar.YEAR, 10);
        TimeSpan span = new TimeSpan(sc, ec);
        setTimeSpan(span);
    }
}
