ItEr58S10CUAsignacionRecursosLimitantesItEr57S11: Initialize criteria for generic resource allocation and show criteria on list of unassigned queue elements

This commit is contained in:
Diego Pino Garcia 2010-05-16 00:26:48 +02:00 committed by Javier Moran Rua
parent 5d4d22e50e
commit a8169baa29
2 changed files with 38 additions and 5 deletions

View file

@ -60,6 +60,7 @@ import org.navalplanner.business.planner.entities.SpecificDayAssignment;
import org.navalplanner.business.planner.entities.SpecificResourceAllocation;
import org.navalplanner.business.planner.entities.Task;
import org.navalplanner.business.planner.entities.TaskElement;
import org.navalplanner.business.resources.entities.Criterion;
import org.navalplanner.business.resources.entities.LimitingResourceQueue;
import org.navalplanner.business.resources.entities.Resource;
import org.navalplanner.business.users.daos.IOrderAuthorizationDAO;
@ -263,15 +264,23 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
if (resourceAllocation instanceof HibernateProxy) {
resourceAllocation = (ResourceAllocation<?>) ((HibernateProxy) resourceAllocation)
.getHibernateLazyInitializer().getImplementation();
if (resourceAllocation instanceof SpecificResourceAllocation) {
SpecificResourceAllocation specific = (SpecificResourceAllocation) resourceAllocation;
Hibernate.initialize(specific.getAssignments());
if (resourceAllocation instanceof GenericResourceAllocation) {
GenericResourceAllocation generic = (GenericResourceAllocation) resourceAllocation;
initializeCriteria(generic.getCriterions());
}
Hibernate.initialize(resourceAllocation.getAssignments());
Hibernate.initialize(resourceAllocation.getLimitingResourceQueueElement());
}
return resourceAllocation;
}
private void initializeCriteria(Set<Criterion> criteria) {
for (Criterion each: criteria) {
Hibernate.initialize(each);
Hibernate.initialize(each.getType());
}
}
private void loadLimitingResourceQueues() {
limitingResourceQueues.clear();
limitingResourceQueues

View file

@ -27,13 +27,18 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.Validate;
import org.jfree.util.Log;
import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.planner.entities.GenericResourceAllocation;
import org.navalplanner.business.planner.entities.LimitingResourceQueueElement;
import org.navalplanner.business.planner.entities.ResourceAllocation;
import org.navalplanner.business.planner.entities.SpecificResourceAllocation;
import org.navalplanner.business.planner.entities.Task;
import org.navalplanner.business.resources.entities.Criterion;
import org.navalplanner.business.resources.entities.LimitingResourceQueue;
import org.navalplanner.business.resources.entities.Resource;
import org.navalplanner.web.common.Util;
@ -226,8 +231,27 @@ public class LimitingResourcesController implements Composer {
this.taskName = taskName;
this.date = DATE_FORMAT.format(date);
this.hoursToAllocate = element.getIntentedTotalHours();
final Resource resource = element.getResource();
this.resourceName = (resource != null) ? resource.getName() : "";
this.resourceName = getResourceName(element.getResourceAllocation());
}
private String getResourceName(ResourceAllocation<?> resourceAllocation) {
if (resourceAllocation instanceof SpecificResourceAllocation) {
final Resource resource = ((SpecificResourceAllocation) resourceAllocation)
.getResource();
return (resource != null) ? resource.getName() : "";
} else if (resourceAllocation instanceof GenericResourceAllocation) {
Set<Criterion> criteria = ((GenericResourceAllocation) resourceAllocation).getCriterions();
return getCriteriaNames(criteria);
}
return StringUtils.EMPTY;
}
private String getCriteriaNames(Set<Criterion> criteria) {
List<String> names = new ArrayList<String>();
for (Criterion each: criteria) {
names.add(each.getName());
}
return StringUtils.join(names, ",");
}
public LimitingResourceQueueElement getOriginal() {