ItEr09S09AdministracionGrupos: Shows the resources for a criterion
This commit is contained in:
parent
e797f6e350
commit
906c9763d9
5 changed files with 93 additions and 20 deletions
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
|||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
import org.navalplanner.business.resources.entities.ICriterionType;
|
||||
import org.navalplanner.business.resources.entities.Worker;
|
||||
import org.navalplanner.web.common.IMessagesForUser;
|
||||
import org.navalplanner.web.common.MessagesForUser;
|
||||
import org.navalplanner.web.common.OnlyOneVisible;
|
||||
|
|
@ -116,6 +117,15 @@ public class CriterionAdminController extends GenericForwardComposer {
|
|||
return criterionsModel.isEditing();
|
||||
}
|
||||
|
||||
public boolean isApplyableToWorkers() {
|
||||
return criterionsModel.isApplyableToWorkers();
|
||||
}
|
||||
|
||||
public List<Worker> getWorkersForCurrentCriterion() {
|
||||
return criterionsModel
|
||||
.getResourcesSatisfyingCurrentCriterionOfType(Worker.class);
|
||||
}
|
||||
|
||||
public boolean isCriterionActive() {
|
||||
return criterionsModel.isCriterionActive();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package org.navalplanner.web.resources;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -10,6 +11,8 @@ import org.navalplanner.business.common.exceptions.ValidationException;
|
|||
import org.navalplanner.business.resources.bootstrap.ICriterionsBootstrap;
|
||||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
import org.navalplanner.business.resources.entities.ICriterionType;
|
||||
import org.navalplanner.business.resources.entities.Resource;
|
||||
import org.navalplanner.business.resources.entities.Worker;
|
||||
import org.navalplanner.business.resources.services.CriterionService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
|
|
@ -34,7 +37,7 @@ public class CriterionsModel implements ICriterionsModel {
|
|||
@Autowired
|
||||
private CriterionService criterionService;
|
||||
|
||||
private ICriterionType<Criterion> criterionType;
|
||||
private ICriterionType<?> criterionType;
|
||||
|
||||
private Criterion criterion;
|
||||
|
||||
|
|
@ -63,7 +66,7 @@ public class CriterionsModel implements ICriterionsModel {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void prepareForCreate(ICriterionType<Criterion> criterionType) {
|
||||
public void prepareForCreate(ICriterionType<?> criterionType) {
|
||||
this.criterionType = criterionType;
|
||||
this.criterion = null;
|
||||
}
|
||||
|
|
@ -72,7 +75,7 @@ public class CriterionsModel implements ICriterionsModel {
|
|||
public void prepareForEdit(Criterion criterion) {
|
||||
Validate.notNull(criterion);
|
||||
this.criterion = criterion;
|
||||
this.criterionType = null;
|
||||
this.criterionType = getTypeFor(criterion);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -101,7 +104,8 @@ public class CriterionsModel implements ICriterionsModel {
|
|||
}
|
||||
|
||||
private void create() throws ValidationException {
|
||||
Criterion criterion = criterionType.createCriterion(nameForCriterion);
|
||||
Criterion criterion = (Criterion) criterionType
|
||||
.createCriterion(nameForCriterion);
|
||||
InvalidValue[] invalidValues = criterionValidator
|
||||
.getInvalidValues(criterion);
|
||||
if (invalidValues.length > 0)
|
||||
|
|
@ -133,4 +137,18 @@ public class CriterionsModel implements ICriterionsModel {
|
|||
public void setCriterionActive(boolean active) {
|
||||
criterion.setActive(active);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isApplyableToWorkers() {
|
||||
return criterionType != null
|
||||
&& criterionType.criterionCanBeRelatedTo(Worker.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Resource> List<T> getResourcesSatisfyingCurrentCriterionOfType(
|
||||
Class<T> klass) {
|
||||
if (criterion == null)
|
||||
return new ArrayList<T>();
|
||||
return criterionService.getResourcesSatisfying(klass, criterion);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import java.util.List;
|
|||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
import org.navalplanner.business.resources.entities.ICriterionType;
|
||||
import org.navalplanner.business.resources.entities.Resource;
|
||||
|
||||
/**
|
||||
* CriterionsModel contract <br />
|
||||
|
|
@ -19,7 +20,7 @@ public interface ICriterionsModel {
|
|||
|
||||
Criterion getCriterion();
|
||||
|
||||
void prepareForCreate(ICriterionType<Criterion> criterionType);
|
||||
void prepareForCreate(ICriterionType<?> criterionType);
|
||||
|
||||
void prepareForEdit(Criterion criterion);
|
||||
|
||||
|
|
@ -37,4 +38,9 @@ public interface ICriterionsModel {
|
|||
|
||||
void setCriterionActive(boolean active);
|
||||
|
||||
boolean isApplyableToWorkers();
|
||||
|
||||
<T extends Resource> List<T> getResourcesSatisfyingCurrentCriterionOfType(
|
||||
Class<T> klass);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,55 @@
|
|||
<zk>
|
||||
<vbox id="${arg.top_id}">
|
||||
<hbox>
|
||||
<label value="name" />
|
||||
<textbox value="@{controller.criterionName}" />
|
||||
<checkbox checked="@{controller.criterionActive}" visible="@{controller.editing}"></checkbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<button onClick="controller.save();"
|
||||
label="${arg.save_button_label}" />
|
||||
<button onClick="controller.cancel();"
|
||||
label="${arg.cancel_button_label}" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
<tabbox id="${arg.top_id}">
|
||||
<tabs>
|
||||
<tab label="Edición" closable="false" />
|
||||
<tab label="Trabajadores" closable="false"
|
||||
visible="@{controller.isApplyableToWorkers}" />
|
||||
</tabs>
|
||||
<tabpanels>
|
||||
<tabpanel>
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label value="name" />
|
||||
<textbox value="@{controller.criterionName}" />
|
||||
<checkbox
|
||||
checked="@{controller.criterionActive}"
|
||||
visible="@{controller.editing}">
|
||||
</checkbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<button onClick="controller.save();"
|
||||
label="${arg.save_button_label}" />
|
||||
<button onClick="controller.cancel();"
|
||||
label="${arg.cancel_button_label}" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
</tabpanel>
|
||||
<tabpanel>
|
||||
<grid
|
||||
model="@{controller.workersForCurrentCriterion}"
|
||||
mold="paging" pageSize="5">
|
||||
<columns>
|
||||
<column label="operations" />
|
||||
<column label="First Name"
|
||||
sort="auto(firstName)" />
|
||||
<column label="Surname" sort="auto(surname)" />
|
||||
<column label="nif" sort="auto(nif)" />
|
||||
</columns>
|
||||
<rows>
|
||||
<row self="@{each='worker'}"
|
||||
value="@{worker}">
|
||||
<label value="@{worker.firstName}" />
|
||||
<label value="@{worker.surname}" />
|
||||
<label value="@{worker.nif}" />
|
||||
<hbox>
|
||||
<button label="Edit">
|
||||
</button>
|
||||
</hbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</tabpanel>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
|
||||
</zk>
|
||||
|
|
@ -20,8 +20,7 @@
|
|||
</row>
|
||||
<row>
|
||||
<label value="daily_hours" />
|
||||
<textbox value="@{controller.worker.dailyHours}"
|
||||
/>
|
||||
<textbox value="@{controller.worker.dailyHours}"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue