ItEr30S06CUAltaMaquina: Assign valid Criterion to Resource

This commit is contained in:
Diego Pino Garcia 2009-10-19 09:37:07 +02:00 committed by Javier Moran Rua
parent e6799f46f6
commit a7cfc28034
3 changed files with 72 additions and 4 deletions

View file

@ -11,18 +11,24 @@ import java.util.List;
import java.util.Set;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.resources.entities.Criterion;
import org.navalplanner.business.resources.entities.CriterionType;
import org.navalplanner.business.resources.entities.CriterionWithItsType;
import org.navalplanner.business.resources.entities.Machine;
import org.navalplanner.business.resources.entities.ResourceEnum;
import org.navalplanner.web.common.Util;
import org.navalplanner.web.resources.machine.IAssignedMachineCriterionsModel;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.WrongValueException;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Bandbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Constraint;
import org.zkoss.zul.Grid;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.Row;
@ -38,6 +44,8 @@ public class CriterionsMachineController extends GenericForwardComposer {
private Grid listingCriterions;
private Listbox lbCriterions;
public CriterionsMachineController() {
}
@ -46,6 +54,37 @@ public class CriterionsMachineController extends GenericForwardComposer {
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
comp.setVariable("assignedCriterionsController", this, true);
lbCriterions.addEventListener("onChange", new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
System.out.println("### onChange");
final Criterion criterion = (Criterion) event.getData();
System.out.println("### criterion: " + criterion);
final String resource = criterion.getType().getResource();
if (!isValid(resource)) {
throw new WrongValueException(event.getTarget(),
_("resource not valid"));
}
}
});
lbCriterions.addEventListener("onSelect", new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
// System.out.println("### onSelect");
// final Criterion criterion = (Criterion) event.getData();
// Listitem item = lbCriterions.getSelectedItem();
// System.out.println("### selected item: " + item);
// System.out.println("### criterion: " + criterion);
// final String resource = criterion.getType().getResource();
// if (!isValid(resource)) {
// throw new WrongValueException(event.getTarget(),
// _("resource not valid"));
// }
}
});
}
public void prepareForEdit(Machine machine) {
@ -79,18 +118,46 @@ public class CriterionsMachineController extends GenericForwardComposer {
reload();
}
public void selectCriterionAndType(Listitem item,Bandbox bandbox,
public void selectCriterionAndType(Listitem item, Bandbox bandbox,
CriterionSatisfactionDTO criterionSatisfactionDTO){
if(item != null){
CriterionWithItsType criterionAndType = (CriterionWithItsType)item.getValue();
CriterionType criterionType = (CriterionType) criterionAndType
.getType();
final String resource = criterionType.getResource();
// System.out.println("### criterionType: " + criterionType);
// System.out.println("### resource: " + resource);
if (!isValid(resource)) {
throw new WrongValueException(item,
_("cannot apply criterion to machine"));
}
bandbox.setValue(criterionAndType.getNameAndType());
setCriterionWithItsType(criterionAndType,criterionSatisfactionDTO,bandbox);
}else{
} else {
bandbox.setValue("");
}
bandbox.close();
}
private boolean isValid(String resource) {
// return (ResourceEnum.RESOURCE.toString().equals(resource) ||
// ResourceEnum.MACHINE
// .toString().equals(resource));
return isValid(ResourceEnum.valueOf(resource));
}
/**
* Can only apply criterion types of resource type RESOURCE or MACHINE
*
* @param resource
* @return
*/
private boolean isValid(ResourceEnum resource) {
return (ResourceEnum.RESOURCE.equals(resource) || ResourceEnum.MACHINE
.equals(resource));
}
public void setCriterionWithItsType(CriterionWithItsType criterionAndType,
CriterionSatisfactionDTO satisfaction,Bandbox bandbox) throws WrongValueException{
this.assignedMachineCriterionsModel.setCriterionWithItsType(

View file

@ -27,11 +27,12 @@
<rows>
<row self="@{each='criterionSatisfactionDTO'}" value="@{criterionSatisfactionDTO}">
<hbox>
<!-- Select criterion -->
<bandbox width="500px"
visible="@{criterionSatisfactionDTO.isNewObject}"
value = "@{criterionSatisfactionDTO.criterionAndType}">
<bandpopup>
<listbox width="500px" height="150px" fixedLayout="true"
<listbox id="lbCriterions" width="500px" height="150px" fixedLayout="true"
model="@{assignedCriterionsController.criterionWithItsTypes}"
onSelect="assignedCriterionsController.selectCriterionAndType(self.selectedItem,
self.parent.parent,self.parent.parent.parent.parent.value);">

View file

@ -78,7 +78,7 @@
<!-- Naval Planner environment properties -->
<navalplanner.mode>dev</navalplanner.mode>
<!-- Hibernate properties -->
<hibernate.show_sql>true</hibernate.show_sql>
<hibernate.show_sql>false</hibernate.show_sql>
<hibernate.format_sql>true</hibernate.format_sql>
<hibernate.use_sql_comments>true</hibernate.use_sql_comments>
<hibernate.hbm2ddl.auto>update</hibernate.hbm2ddl.auto>