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

📄 projectresource.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
/* * ProjectResource.java * * Created on 27. Mai 2003, 08:11 */package net.sourceforge.ganttproject.resource;import java.util.ArrayList;import java.util.List;import net.sourceforge.ganttproject.roles.Role;import net.sourceforge.ganttproject.task.ResourceAssignment;import net.sourceforge.ganttproject.task.Task;/** * @author barmeier */public abstract class ProjectResource {    private int id = -1;    protected String name;    private double costsPerUnit;    private int maximumUnitsPerDay;    private String unitMeasure; // means hours, days, meter, ...    private String description;    protected ProjectResource() {    	this(-1);    }    protected ProjectResource(int id) {    	this.id = id;     }    public void setName(String name) {        this.name = name;    }    public String getName() {        return name;    }    public void setDescription(String description) {        this.description = description;    }    public String getDescription() {        return description;    }    public void setUnitMeasure(String unitMeasure) {        this.unitMeasure = unitMeasure;    }    public String getUnitMeasure() {        return unitMeasure;    }    public void setCostsPerUnit(double costsPerUnit) {        this.costsPerUnit = costsPerUnit;    }    public double getCostsPerUnit() {        return costsPerUnit;    }    public void setMaximumUnitsPerDay(int maximumUnitsPerDay) {        this.maximumUnitsPerDay = maximumUnitsPerDay;    }    public int getMaximumUnitsPerDay() {        return maximumUnitsPerDay;    }    public void setId(int id) {        if (this.id == -1) // setting the id is only allowed when id is not            // assigned            this.id = id;    }    public int getId() {        return id;    }    public boolean equals(Object obj) {        boolean res = false;        if (obj instanceof ProjectResource) {            ProjectResource pr = (ProjectResource) obj;            res = pr.id == id;        }        return res;    }    public String toString() {        return name;    }    public abstract ProjectResource unpluggedClone();    public ResourceAssignment createAssignment(            ResourceAssignment assignmentToTask) {        for (int i = 0; i < myAssignments.size(); i++) {            if (((ResourceAssignment) myAssignments.get(i)).getTask().equals(                    assignmentToTask.getTask())) {                // throw new IllegalStateException("An attemp to assign resource                // to the same task twice");            }        }        ResourceAssignment result = new ResourceAssignmentImpl(assignmentToTask);        myAssignments.add(result);        return result;    }    /** Removes the assignment objects associated to this ProjectResource      *  and those associated to it's Tasks */    private void removeAllAssignments() {        List copy = new ArrayList(myAssignments);        for (int i=0; i<copy.size(); i++) {            ResourceAssignmentImpl next = (ResourceAssignmentImpl) copy.get(i);            next.myAssignmentToTask.delete();        }    }    public void delete() {        removeAllAssignments();    }    protected abstract void fireAssignmentsChanged();        private List myAssignments = new ArrayList();    private class ResourceAssignmentImpl implements ResourceAssignment {        private final ResourceAssignment myAssignmentToTask;        private float myLoad;        private boolean myCoordinator;        private Role myRoleForAssignment;                private String myLineNumber;        private ResourceAssignmentImpl(ResourceAssignment assignmentToTask) {            myAssignmentToTask = assignmentToTask;        }        public void setLineNumber(String lineNumber){    		myLineNumber=lineNumber;        }        public String getLineNumber(){    		return myLineNumber;	        }        public Task getTask() {            return myAssignmentToTask.getTask();        }        public ProjectResource getResource() {            return ProjectResource.this;        }        public float getLoad() {            return myLoad;        }        public void setLoad(float load) {            myLoad = load;        }        /** Removes all related assignments */        public void delete() {            ProjectResource.this.myAssignments.remove(this);            fireAssignmentsChanged();        }        public void setCoordinator(boolean responsible) {            myCoordinator = responsible;        }        public boolean isCoordinator() {            return myCoordinator;        }        public Role getRoleForAssignment() {            return myRoleForAssignment;        }        public void setRoleForAssignment(Role role) {            myRoleForAssignment = role;        }        public String toString() {            return this.getResource().getName() + " -> "                    + this.getTask().getName();        }    }    public ResourceAssignment[] getAssignments() {        return (ResourceAssignment[]) myAssignments                .toArray(new ResourceAssignment[0]);    }}

⌨️ 快捷键说明

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