I have simple Gantt chart with labels inside bars, but they are not visible for subtasks.
Image:
I have the following code:
TaskSeries s1 = new TaskSeries("Z1");
Task task = new Task("M1", new SimpleTimePeriod(0, 55));
task.addSubtask(new Task("M1a", new SimpleTimePeriod(0, 5)));
task.addSubtask(new Task("M1b", new SimpleTimePeriod(15, 25)));
s1.add(task);
TaskSeries s2 = new TaskSeries("Z2");
s2.add(new Task("M1", new SimpleTimePeriod(5, 15)));
TaskSeries s3 = new TaskSeries("Z3");
s3.add(new Task("M1", new SimpleTimePeriod(25, 35)));
TaskSeriesCollection collection = new TaskSeriesCollection();
collection.add(s1);
collection.add(s2);
collection.add(s3);
JFreeChart chart = ChartFactory.createGanttChart(
"Gantt", "Machines",
"Time", collection, true, false, false);
CategoryPlot plot = chart.getCategoryPlot();
CategoryItemRenderer renderer = plot.getRenderer();
renderer.setBaseItemLabelGenerator(new CategoryItemLabelGenerator() {
@Override
public String generateRowLabel(CategoryDataset arg0,
int arg1) {
return arg0.getRowKey(arg1).toString();
}
@Override
public String generateLabel(CategoryDataset arg0, int arg1,
int arg2) {
return arg0.getRowKey(arg1).toString();
}
@Override
public String generateColumnLabel(CategoryDataset arg0,
int arg1) {
return arg0.getColumnKey(arg1).toString();//arg0.getRowKey(arg1).toString();
}
});
renderer.setBaseItemLabelsVisible(true);
renderer.setBaseItemLabelPaint(Color.BLACK);
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.INSIDE6, TextAnchor.BOTTOM_CENTER));
DateAxis axis = (DateAxis) plot.getRangeAxis();
axis.setDateFormatOverride(new SimpleDateFormat("S"));
axis.setMaximumDate(new Date(100));
ChartFrame frame = new ChartFrame("Gantt", chart);
frame.setPreferredSize(new java.awt.Dimension(500, 270));
frame.setVisible(true);
frame.setSize(750, 350);
Any ideas how to make these labels (with "Z1" string) visible?