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

📄 chartmodelimpl.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * Created on 17.06.2004 * */package net.sourceforge.ganttproject.chart;import java.awt.Color;import java.awt.Graphics;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.Set;import net.sourceforge.ganttproject.chart.GraphicPrimitiveContainer.Rectangle;import net.sourceforge.ganttproject.chart.item.ChartItem;import net.sourceforge.ganttproject.chart.item.TaskBoundaryChartItem;import net.sourceforge.ganttproject.chart.item.TaskProgressChartItem;import net.sourceforge.ganttproject.chart.item.TaskRegularAreaChartItem;import net.sourceforge.ganttproject.gui.UIConfiguration;import net.sourceforge.ganttproject.gui.options.model.ColorOption;import net.sourceforge.ganttproject.gui.options.model.DefaultColorOption;import net.sourceforge.ganttproject.gui.options.model.GP1XOptionConverter;import net.sourceforge.ganttproject.gui.options.model.GPOption;import net.sourceforge.ganttproject.gui.options.model.GPOptionGroup;import net.sourceforge.ganttproject.task.Task;import net.sourceforge.ganttproject.task.TaskActivity;import net.sourceforge.ganttproject.task.TaskContainmentHierarchyFacade;import net.sourceforge.ganttproject.task.TaskManager;import net.sourceforge.ganttproject.time.TimeUnitStack;/** * @author bard */public class ChartModelImpl extends ChartModelBase implements ChartModel {    private java.util.List/* <Task> */myVisibleTasks;    private final TaskRendererImpl myTaskRendererImpl;    private TaskContainmentHierarchyFacade myTaskContainment;    private final TaskGridRendererImpl myTaskGridRendererImpl;    //private final ResourcesRendererImpl myResourcesRendererImpl;    // private final TaskProgressRendererImpl myTaskProgressRendererImpl;    private TaskManager taskManager;    private boolean isOnlyDown = false;    private boolean isOnlyUp = false;    private boolean isPreviousState = false;    private int rowHeight = 20;    private final ColorOption myTaskDefaultColorOption;        private final ChartOptionGroup myDefaultColorOptions;    private final ColorOption myTaskAheadOfScheduleColor;    private final ColorOption myTaskBehindScheduleColor;    private final ColorOption myTaskOnScheduleColor;//    //        private final ChartOptionGroup myStateDiffOptions;    private Set myHiddenTasks;        public static class TuningOptions {        private final boolean renderProgress;        private final boolean renderDependencies;        public TuningOptions(boolean renderProgress, boolean renderDependencies) {            this.renderProgress = renderProgress;            this.renderDependencies = renderDependencies;        }        public static final TuningOptions DEFAULT = new TuningOptions(true,                true);    }    public ChartModelImpl(TaskManager taskManager, TimeUnitStack timeUnitStack,            final UIConfiguration projectConfig) {        super(taskManager, timeUnitStack, projectConfig);        this.taskManager = taskManager;        myTaskRendererImpl = new TaskRendererImpl(this);        myTaskGridRendererImpl = new TaskGridRendererImpl(this);        //myResourcesRendererImpl = new ResourcesRendererImpl(this);        // myTaskProgressRendererImpl = new TaskProgressRendererImpl(this);        myTimeUnitVisitors.add(myTaskGridRendererImpl);        myTimeUnitVisitors.add(myTaskRendererImpl);                class NewTaskColorOption extends DefaultColorOption implements GP1XOptionConverter {            private NewTaskColorOption() {                super("newTaskDefaultColor");            }            public String getTagName() {                return "colors";            }            public String getAttributeName() {                return "tasks";            }            public void loadValue(String legacyValue) {                lock();                loadPersistentValue(legacyValue);                commit();            }            public void commit() {                super.commit();                projectConfig.setTaskColor(getValue());            }                    };        myTaskDefaultColorOption = new NewTaskColorOption();        myDefaultColorOptions = new ChartOptionGroup("ganttChartDefaultColors", new GPOption[] {myTaskDefaultColorOption, projectConfig.getWeekendAlphaRenderingOption()}, getOptionEventDispatcher());        {            myTaskAheadOfScheduleColor = new DefaultColorOption(                    "ganttChartStateDiffColors.taskAheadOfScheduleColor") {                public void commit() {                    super.commit();                    projectConfig.setEarlierPreviousTaskColor(getValue());                }            };            myTaskAheadOfScheduleColor.lock();            myTaskAheadOfScheduleColor.setValue(new Color(50, 229, 50));            myTaskAheadOfScheduleColor.commit();            //            myTaskBehindScheduleColor = new DefaultColorOption(                    "ganttChartStateDiffColors.taskBehindScheduleColor") {                public void commit() {                    super.commit();                    projectConfig.setLaterPreviousTaskColor(getValue());                }            };            myTaskBehindScheduleColor.lock();            myTaskBehindScheduleColor.setValue(new Color(229, 50, 50));            myTaskBehindScheduleColor.commit();            //            myTaskOnScheduleColor = new DefaultColorOption(                    "ganttChartStateDiffColors.taskOnScheduleColor") {                public void commit() {                    super.commit();                    projectConfig.setPreviousTaskColor(getValue());                }            };            myTaskOnScheduleColor.lock();            myTaskOnScheduleColor.setValue(Color.LIGHT_GRAY);            myTaskOnScheduleColor.commit();            //            myStateDiffOptions = new ChartOptionGroup(                    "ganttChartStateDiffColors", new GPOption[] {                            myTaskOnScheduleColor, myTaskAheadOfScheduleColor,                            myTaskBehindScheduleColor },                    getOptionEventDispatcher());        }        // myTimeUnitVisitors.add(myResourcesRendererImpl);        // myTimeUnitVisitors.add(myTaskProgressRendererImpl);    }    protected void enableRenderers1() {        super.enableRenderers1();        myTaskRendererImpl.setEnabled(true);    }    protected void enableRenderers2() {        super.enableRenderers2();        myTaskRendererImpl.setEnabled(false);    }    protected void paintMainArea(Graphics mainArea, Painter p) {        super.paintMainArea(mainArea, p);        mainArea.translate(0, -getVerticalOffset());        myTaskRendererImpl.getPrimitiveContainer().paint(p, mainArea);        myTaskGridRendererImpl.getPrimitiveContainer().paint(p, mainArea);        myTaskRendererImpl.getPrimitiveContainer().getLayer(1).paint(p, mainArea);        myTaskRendererImpl.getPrimitiveContainer().getLayer(2).paint(p, mainArea);//        //        myTaskRendererImpl.getPrimitiveContainer().paint(p, mainArea);//        myTaskRendererImpl.getPrimitiveContainer().getLayer(1).paint(p,//                mainArea);//        super.paintMainArea(mainArea, p);//        myTaskRendererImpl.getPrimitiveContainer().getLayer(2).paint(p,//                mainArea);//        myTaskGridRendererImpl.getPrimitiveContainer().paint(p, mainArea);            }    public void setVisibleTasks(java.util.List/* <Task> */visibleTasks) {        myVisibleTasks = visibleTasks;    }        public void setExplicitlyHiddenTasks(Set hiddenTasks) {        myHiddenTasks = hiddenTasks;    }    public Task findTaskWithCoordinates(int x, int y) {    	y = y + getVerticalOffset();        GraphicPrimitiveContainer.GraphicPrimitive primitive = myTaskRendererImpl                .getPrimitiveContainer().getPrimitive(x,                        y - getChartUIConfiguration().getHeaderHeight());        if (primitive instanceof GraphicPrimitiveContainer.Rectangle) {            TaskActivity activity = (TaskActivity) primitive.getModelObject();            return activity == null ? null : activity.getTask();        }        return null;    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -