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

📄 sorttasksalgorithm.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
package net.sourceforge.ganttproject.task.algorithm;import java.util.Collections;import java.util.Comparator;import java.util.List;import net.sourceforge.ganttproject.task.Task;import net.sourceforge.ganttproject.task.TaskActivity;import net.sourceforge.ganttproject.task.TaskLength;/** * @author bard */public class SortTasksAlgorithm {    private Comparator mySortActivitiesByStartDateComparator = new Comparator() {        public int compare(Object left, Object right) {            int result = 0;            TaskActivity leftTask = (TaskActivity) left;            TaskActivity rightTask = (TaskActivity) right;            if (!leftTask.equals(rightTask)) {                result = leftTask.getStart().compareTo(rightTask.getStart());                if (result == 0) {                    float longResult = 0;                    TaskLength leftLength = leftTask.getDuration();                    TaskLength rightLength = rightTask.getDuration();                    if (leftLength.getTimeUnit().isConstructedFrom(                            rightLength.getTimeUnit())) {                        longResult = leftLength.getLength(rightLength                                .getTimeUnit())                                - rightLength.getLength();                    } else if (rightLength.getTimeUnit().isConstructedFrom(                            leftLength.getTimeUnit())) {                        longResult = leftLength.getLength()                                - rightLength.getLength(leftLength                                        .getTimeUnit());                    } else {                        throw new IllegalArgumentException("Lengths="                                + leftLength + " and " + rightLength                                + " are not compatible");                    }                    if (longResult != 0) {                        result = (int) (longResult / Math.abs(longResult));                    }                }            }            return result;        }    };    private Comparator mySortTasksByStartDateComparator = new Comparator() {        public int compare(Object left, Object right) {            int result = 0;            Task leftTask = (Task) left;            Task rightTask = (Task) right;            if (!leftTask.equals(rightTask)) {                result = leftTask.getStart().compareTo(rightTask.getStart());                if (result == 0) {                    float longResult = 0;                    TaskLength leftLength = leftTask.getDuration();                    TaskLength rightLength = rightTask.getDuration();                    if (leftLength.getTimeUnit().isConstructedFrom(                            rightLength.getTimeUnit())) {                        longResult = leftLength.getLength(rightLength                                .getTimeUnit())                                - rightLength.getLength();                    } else if (rightLength.getTimeUnit().isConstructedFrom(                            leftLength.getTimeUnit())) {                        longResult = leftLength.getLength()                                - rightLength.getLength(leftLength                                        .getTimeUnit());                    } else {                        throw new IllegalArgumentException("Lengths="                                + leftLength + " and " + rightLength                                + " are not compatible");                    }                    if (longResult != 0) {                        result = (int) (longResult / Math.abs(longResult));                    }                }            }            return result;        }    };        public void sortByStartDate(List/* <TaskActivity> */tasks) {        Collections.sort(tasks, mySortActivitiesByStartDateComparator);    }        public void sortTasksByStartDate(List/* <Task> */tasks) {        Collections.sort(tasks, mySortTasksByStartDateComparator);    }    }

⌨️ 快捷键说明

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