📄 overviewrendererimpl.java
字号:
package net.sourceforge.ganttproject.chart.overview;import java.awt.Color;import java.util.ArrayList;import java.util.Collections;import java.util.Date;import java.util.List;import net.sourceforge.ganttproject.chart.BottomUnitLineRendererImpl;import net.sourceforge.ganttproject.chart.GraphicPrimitiveContainer;import net.sourceforge.ganttproject.chart.Renderer;import net.sourceforge.ganttproject.chart.GraphicPrimitiveContainer.Rectangle;import net.sourceforge.ganttproject.task.Task;import net.sourceforge.ganttproject.task.TaskLength;import net.sourceforge.ganttproject.task.TaskManager;import net.sourceforge.ganttproject.time.TimeUnitStack;public class OverviewRendererImpl extends BottomUnitLineRendererImpl implements Renderer { private Date myEndDate; private Date myStartDate; public OverviewRendererImpl() { super(); } @Override public void afterProcessingTimeFrames() { TaskLength tillToday = getChartModel().getTaskManager().createLength(getChartModel().getTimeUnitStack().getDefaultTimeUnit(), getChartModel().getStartDate(), myStartDate); int pixelsTillToday = toPixels(tillToday); // TaskLength fromTodayTillEnd = getChartModel().getTaskManager().createLength(getChartModel().getTimeUnitStack().getDefaultTimeUnit(), myStartDate, myEndDate); int pixelsFromTodayTillEnd = toPixels(fromTodayTillEnd); Rectangle rectangle = getPrimitiveContainer().createRectangle(pixelsTillToday, 0, pixelsFromTodayTillEnd, getHeight()); rectangle.setBackgroundColor(Color.CYAN); // // { TaskManager taskManager = getChartModel().getTaskManager(); List<Task> milestones = new ArrayList<Task>(); for (final Task nextTask : taskManager.getTasks()) { if (nextTask.isMilestone()) { milestones.add(nextTask); } } if (milestones.size()!=0) { int nextY = getChartModel().getChartUIConfiguration().getHeaderHeight(); final int milestoneHeight = (getHeight()-nextY)/milestones.size()+1; for (final Task nextMilestone : milestones) { nextY+=3; TaskLength fromStart_tillMilestone = taskManager.createLength(getTimeUnitStack().getDefaultTimeUnit(), getOverviewStartDate(), nextMilestone.getStart().getTime()); int pixels = toPixels(fromStart_tillMilestone); Rectangle milestoneRectangle = getPrimitiveContainer().createRectangle(pixels-1, nextY, milestoneHeight/2, milestoneHeight/2); milestoneRectangle.setBackgroundColor(Color.BLACK); nextY+=milestoneHeight; } } } super.afterProcessingTimeFrames(); } private int toPixels(TaskLength taskLength) { return (int) (getChartModel().getBottomUnitWidth()*taskLength.getLength(getChartModel().getBottomUnit())); } private TimeUnitStack getTimeUnitStack() { return getChartModel().getTimeUnitStack(); } private Date getOverviewStartDate() { return getChartModel().getStartDate(); } public GraphicPrimitiveContainer paint() { return getPrimitiveContainer(); } public void setEndDate(Date endDate) { myEndDate = endDate; } public void setStartDate(Date date) { myStartDate = date; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -