Allow CapacityPicker to work without bindings

Add methods to get the current value and set it.

FEA: ItEr68OTS05IntroducionLimiteSobreasignacionCalendarios
This commit is contained in:
Óscar González Fernández 2011-01-17 20:55:22 +01:00
parent 691218a617
commit 36703525f1

View file

@ -35,24 +35,41 @@ public class CapacityPicker {
public static CapacityPicker workWith(Checkbox checkbox,
EffortDurationPicker standardEffortPicker,
EffortDurationPicker extraHoursPicker,
final Getter<Capacity> getter,
EffortDurationPicker extraHoursPicker, Getter<Capacity> getter,
Setter<Capacity> setter) {
return new CapacityPicker(checkbox, standardEffortPicker,
extraHoursPicker, getter.get(), setter);
}
public static CapacityPicker workWith(Checkbox checkbox,
EffortDurationPicker standardEffortPicker,
EffortDurationPicker extraHoursPicker,
final Capacity initialCapacity) {
return new CapacityPicker(checkbox, standardEffortPicker,
extraHoursPicker, initialCapacity, null);
}
private Capacity currentCapacity;
private final Setter<Capacity> setter;
private CapacityPicker(Checkbox checkbox,
private final Checkbox overAssignableWithoutLimitCheckbox;
private final EffortDurationPicker standardEffortPicker;
private final EffortDurationPicker extraEffortPicker;
private CapacityPicker(Checkbox overAssignableWithoutLimitCheckbox,
EffortDurationPicker standardEffortPicker,
final EffortDurationPicker extraEffortPicker,
Capacity initialCapacity,
Setter<Capacity> setter) {
this.overAssignableWithoutLimitCheckbox = overAssignableWithoutLimitCheckbox;
this.standardEffortPicker = standardEffortPicker;
this.extraEffortPicker = extraEffortPicker;
this.currentCapacity = initialCapacity;
this.setter = setter;
standardEffortPicker.bind(new Getter<EffortDuration>() {
@Override
@ -82,7 +99,7 @@ public class CapacityPicker {
updateCapacity(currentCapacity.extraEffort(value));
}
});
Util.bind(checkbox, new Getter<Boolean>() {
Util.bind(overAssignableWithoutLimitCheckbox, new Getter<Boolean>() {
@Override
public Boolean get() {
@ -108,7 +125,22 @@ public class CapacityPicker {
private void updateCapacity(Capacity newCapacity) {
this.currentCapacity = newCapacity;
this.setter.set(currentCapacity);
if (this.setter != null) {
this.setter.set(currentCapacity);
}
}
public Capacity getValue() {
return currentCapacity;
}
public void setValue(Capacity capacity) {
overAssignableWithoutLimitCheckbox.setChecked(capacity
.isOverAssignable());
standardEffortPicker.setValue(capacity.getStandardEffort());
extraEffortPicker.setValue(capacity.getAllowedExtraEffort());
currentCapacity = capacity;
updateExtraEffortDisability(extraEffortPicker);
}
}