⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 overviewrendererimpl.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 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 + -