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

📄 finishfinishconstraintimpl.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
package net.sourceforge.ganttproject.task.dependency.constraint;import java.util.Date;import net.sourceforge.ganttproject.GanttCalendar;import net.sourceforge.ganttproject.GanttTaskRelationship;import net.sourceforge.ganttproject.language.GanttLanguage;import net.sourceforge.ganttproject.task.Task;import net.sourceforge.ganttproject.task.TaskActivity;import net.sourceforge.ganttproject.task.TaskMutator;import net.sourceforge.ganttproject.task.dependency.TaskDependency;import net.sourceforge.ganttproject.task.dependency.TaskDependencyConstraint;import net.sourceforge.ganttproject.task.dependency.TaskDependency.ActivityBinding;/** * Dependant task finishes not earlier than dependee finishes Created by * IntelliJ IDEA. User: bard */public class FinishFinishConstraintImpl extends ConstraintImpl implements        TaskDependencyConstraint {    public FinishFinishConstraintImpl() {        super(GanttTaskRelationship.FF, GanttLanguage.getInstance().getText(                "finishfinish"));    }    public TaskDependencyConstraint.Collision getCollision() {        TaskDependencyConstraint.Collision result = null;        Task dependee = getDependency().getDependee();        Task dependant = getDependency().getDependant();        GanttCalendar dependeeEnd = dependee.getEnd();        GanttCalendar dependantEnd = dependant.getEnd();        //                int difference = getDependency().getDifference();                GanttCalendar comparisonDate = dependeeEnd.Clone();        comparisonDate.add(difference);                boolean isActive = getDependency().getHardness()==TaskDependency.Hardness.RUBBER ? dependantEnd                .compareTo(comparisonDate) < 0 : dependantEnd                .compareTo(comparisonDate) != 0;        GanttCalendar acceptableStart = dependant.getStart().Clone();        // GanttCalendar acceptableStart = dependant.getStart();        if (isActive) {            Task clone = dependee.unpluggedClone();            TaskMutator mutator = clone.createMutator();            mutator.shift(-dependant.getDuration().getLength());            acceptableStart = clone.getEnd();        }        addDelay(acceptableStart);        result = new TaskDependencyConstraint.DefaultCollision(acceptableStart,                TaskDependencyConstraint.Collision.START_LATER_VARIATION,                isActive);                return result;    }    public ActivityBinding getActivityBinding() {        TaskActivity[] dependantActivities = getDependency().getDependant()                .getActivities();        TaskActivity[] dependeeActivities = getDependency().getDependee()                .getActivities();        TaskActivity theDependant = dependantActivities[dependantActivities.length - 1];        TaskActivity theDependee = dependeeActivities[dependeeActivities.length - 1];        return new DependencyActivityBindingImpl(theDependant, theDependee,                new Date[] { theDependant.getEnd(), theDependee.getEnd() });    }}

⌨️ 快捷键说明

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