📄 constraint.java
字号:
/** * Copyright 2004 Carlos Silva A. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */package jgantt.model;import java.util.Date;public class Constraint { public static final int MODE_END_BEGIN = 0; public static final int MODE_END_END= 1; public static final int MODE_BEGIN_BEGIN= 2; public static final int MODE_BEGIN_END= 3; // datos /** * Mode * <ul> * <li> 1 : EB * <li> 2 : EE * <li> 3 : BE * <li> 4 : BB * </ul> */ protected byte mode; protected int delay; // asociaciones protected Task masterTask=null; protected Task slaveTask=null; // transientes // metodos publicos /** * Genera un constraint. Ejecuta {@link Task#addConstraint} para terminar de anexar */ public Constraint(Task master, Task slave) throws GanttException { masterTask = master; slaveTask = slave; slaveTask.addConstraint(this); } /** * Retorna la fecha de partida de la tarea esclava de acuerdo a la informacion de * la tarea principal. * @return */ public Date getStartDate(){ //System.out.println("Constraint.getStartDate() mode="+mode+ " entre "+masterTask.getName()+" y "+ slaveTask.getName()); Date start=null; DateOrganizer dorg = masterTask.project.getDateOrganizer(); switch (mode) { case MODE_END_BEGIN: start = masterTask.getFinishDate(); start = dorg.getNextLaborableDate(start,delay); break; case MODE_BEGIN_BEGIN: start = masterTask.getStartDate(); start = dorg.getNextLaborableDate(start,delay); break; case MODE_END_END: start = masterTask.getFinishDate(); start = dorg.getNextLaborableDate(start,delay - slaveTask.getLength()); break; default: // BEGIN_END start = masterTask.getStartDate(); start = dorg.getNextLaborableDate(start, delay - slaveTask.getLength()); } //System.out.println(" "+start); return start; } /** * Remueve el constraint de los hijos y deja este constraint sin uso. */ public void remove(){ // Primero se asigna dirty slaveTask.setDirty(); masterTask.setDirty(); // y luego se remueven sus links masterTask.childConstraints.remove(this); slaveTask.constraints.remove(this); slaveTask.project.sendChange(new ProjectChange(ProjectChange.CONSTRAINT,slaveTask)); slaveTask=null; masterTask=null; } public Task getMasterTask() { return masterTask; } public Task getSlaveTask() { return slaveTask; } public byte getMode() { return mode; } public void setMode(byte newMode ) { mode = newMode; slaveTask.setDirty(); slaveTask.project.sendChange(new ProjectChange(ProjectChange.CONSTRAINT,slaveTask)); } public int getDelay() { return delay; } public void setDelay(int newDelay ) { delay = newDelay; slaveTask.setDirty(); slaveTask.project.sendChange(new ProjectChange(ProjectChange.CONSTRAINT,slaveTask)); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -