Map<Machine, OHLCSeries> machineSeriesMap = new LinkedHashMap<Machine, OHLCSeries>(
solution.getMachineList().size());
HighLowRenderer renderer = new HighLowRenderer();
renderer.setTickLength(0.0);
int seriesIndex = 0;
OHLCSeries unassignedProjectSeries = new OHLCSeries("Unassigned");
seriesCollection.addSeries(unassignedProjectSeries);
machineSeriesMap.put(null, unassignedProjectSeries);
renderer.setSeriesStroke(seriesIndex, new BasicStroke(3.0f));
seriesIndex++;
for (Machine machine : solution.getMachineList()) {
OHLCSeries projectSeries = new OHLCSeries(machine.getLabel());
seriesCollection.addSeries(projectSeries);
machineSeriesMap.put(machine, projectSeries);
renderer.setSeriesStroke(seriesIndex, new BasicStroke(3.0f));
seriesIndex++;
}
List<TaskAssignment> taskAssignmentList = new ArrayList<TaskAssignment>(solution.getTaskAssignmentList());
Collections.sort(taskAssignmentList, plotTaskAssignmentComparator);
int pixelIndex = 0;
for (TaskAssignment taskAssignment : taskAssignmentList) {
Integer startPeriod = taskAssignment.getStartPeriod();
Integer endPeriod = taskAssignment.getEndPeriod();
if (startPeriod == null) {
startPeriod = 0;
endPeriod = 0;
}
OHLCSeries machineSeries = machineSeriesMap.get(taskAssignment.getMachine());
Task task = taskAssignment.getTask();
machineSeries.add(new FixedMillisecond(pixelIndex), task.getStartPeriodRangeFrom(),
startPeriod, endPeriod, task.getStartPeriodRangeTo() + task.getDuration());
pixelIndex++;
}
NumberAxis domainAxis = new NumberAxis("Task");
domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());