/*
 * Licensed Materials - Property of Perforce Software, Inc. 
 * © Copyright Perforce Software, Inc. 2014, 2021 
 * © Copyright IBM Corp. 2009, 2014
 * © Copyright ILOG 1996, 2009
 * All Rights Reserved.
 *
 * Note to U.S. Government Users Restricted Rights:
 * The Software and Documentation were developed at private expense and
 * are "Commercial Items" as that term is defined at 48 CFR 2.101,
 * consisting of "Commercial Computer Software" and
 * "Commercial Computer Software Documentation", as such terms are
 * used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
 * as applicable.
 */
package ganttviewer.views;

import ganttviewer.viewer.Viewer;
import ilog.views.gantt.IlvActivity;
import ilog.views.gantt.IlvActivityFactory;
import ilog.views.gantt.IlvConstraintFactory;
import ilog.views.gantt.IlvGanttChart;

/**
 * <code>GanttTableView</code> is the Gantt table view.
 */
public class GanttTableView extends AbstractTableView {

  /**
   * Builds a <code>GanttTableView</code>.
   * @param viewer The viewer.
   * @param iD The ID of the view.
   * @param name The name of the view.
   * @param activityFactory An activity factory.
   * @param constraintFactory A constraint factory.
   */
  public GanttTableView(Viewer viewer, String iD, String name,
      IlvActivityFactory activityFactory, IlvConstraintFactory constraintFactory) {
    super(viewer, iD, name, activityFactory, constraintFactory);
    // set the chart.
    setMainComponent(new IlvGanttChart());
  }

  /**
   * Activity selection implementation.
   * @param obj The object to (de)select.
   * @param selected The selection status.
   */
  Override
  protected void setSelectedImpl(Object obj, boolean selected) {
    if (obj instanceof IlvActivity) {
      ((IlvGanttChart) getHierarchyChart()).select((IlvActivity) obj, selected);
    }
  }

}