/*
* 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 demo.editing;
import java.util.Calendar;
import java.util.Date;
import ilog.views.gantt.IlvActivity;
import ilog.views.gantt.IlvActivityFactory;
import ilog.views.gantt.IlvDuration;
import ilog.views.gantt.IlvGanttModel;
import ilog.views.gantt.IlvHierarchyChart;
import ilog.views.gantt.IlvHierarchyNode;
import ilog.views.gantt.IlvTimeInterval;
import ilog.views.gantt.faces.dhtml.component.IlvFacesGanttPropertyAccessor;
import ilog.views.util.time.IlvCalendarUtil;
/**
* The bean that contains the logic of the JSF Gantt Chart Editing sample.
*/
public class EditingBean {
/**
* The property accessor used to get and set properties of Gantt model
* elements.
*/
private IlvFacesGanttPropertyAccessor propertyAccessor = new PropertyAccessor();
/**
* Creates a <code>EditingBean</code>.
*/
public EditingBean() {
}
// Getters and Setters.
/**
* Returns the property accessor used to get and set properties of Gantt model
* elements.
*
* @return The property accessor.
*/
public IlvFacesGanttPropertyAccessor getPropertyAccessor() {
return propertyAccessor;
}
public void insertActivity(IlvHierarchyChart chart, String[] params) {
IlvGanttModel model = chart.getGanttModel();
if (model == null) {
return;
}
IlvActivityFactory factory = chart.getActivityFactory();
Calendar calendar = Calendar.getInstance();
IlvCalendarUtil.dayFloor(calendar);
Date today = calendar.getTime();
IlvTimeInterval interval = new IlvTimeInterval(today, IlvDuration.ONE_DAY.multiply(4));
IlvActivity newact = factory.createActivity(interval);
IlvActivity root = model.getRootActivity();
if (root == null) {
model.setRootActivity(newact);
} else {
IlvHierarchyNode[] selected = chart.getSelectedRows();
if (selected.length > 0 && selected[0] != root) {
IlvActivity curact = (IlvActivity) selected[0];
IlvActivity parent = model.getParentActivity(curact);
int index = model.getParentActivityIndex(curact);
interval = new IlvTimeInterval(curact.getStartTime(), IlvDuration.ONE_DAY.multiply(4));
newact.setTimeInterval(interval);
model.addActivity(newact, parent, index + 1);
} else {
int index = model.getChildActivityCount(root);
interval = new IlvTimeInterval(root.getStartTime(), IlvDuration.ONE_DAY.multiply(4));
newact.setTimeInterval(interval);
model.addActivity(newact, root, index);
}
}
chart.deSelectAllRows();
chart.selectRow(newact, true);
}
public void deleteSelectedActivity(IlvHierarchyChart chart, String[] params) {
IlvGanttModel model = chart.getGanttModel();
if (model == null) {
return;
}
IlvHierarchyNode[] selected = chart.getSelectedRows();
for (int i = 0; i < selected.length; i++) {
IlvActivity curact = (IlvActivity) selected[i];
model.removeActivity(curact);
}
chart.deSelectAllRows();
}
}