Enter the duration instead of the hours.
The hours field is replaced by a EffortDurationPicker FEA: ItEr60S19TimeUnitDataType
This commit is contained in:
parent
4d7c03c8e0
commit
4c4cf6dc1b
4 changed files with 29 additions and 43 deletions
|
|
@ -35,17 +35,18 @@ import java.util.Map;
|
|||
import org.apache.commons.lang.StringUtils;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar.DayType;
|
||||
import org.navalplanner.business.calendars.entities.CalendarAvailability;
|
||||
import org.navalplanner.business.calendars.entities.CalendarData;
|
||||
import org.navalplanner.business.calendars.entities.CalendarData.Days;
|
||||
import org.navalplanner.business.calendars.entities.CalendarException;
|
||||
import org.navalplanner.business.calendars.entities.CalendarExceptionType;
|
||||
import org.navalplanner.business.calendars.entities.ResourceCalendar;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar.DayType;
|
||||
import org.navalplanner.business.calendars.entities.CalendarData.Days;
|
||||
import org.navalplanner.business.workingday.EffortDuration;
|
||||
import org.navalplanner.business.workingday.EffortDuration.Granularity;
|
||||
import org.navalplanner.web.common.Util;
|
||||
import org.navalplanner.web.common.components.CalendarHighlightedDays;
|
||||
import org.navalplanner.web.common.components.EffortDurationPicker;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.WrongValueException;
|
||||
import org.zkoss.zk.ui.event.Event;
|
||||
|
|
@ -223,42 +224,26 @@ public abstract class BaseCalendarEditionController extends
|
|||
labelListcell.appendChild(new Label(day.toString()));
|
||||
item.appendChild(labelListcell);
|
||||
|
||||
Listcell hoursListcell = new Listcell();
|
||||
final Intbox intBox = new Intbox();
|
||||
Intbox hoursIntbox = Util.bind(intBox, new Util.Getter<Integer>() {
|
||||
Listcell durationCell = new Listcell();
|
||||
EffortDurationPicker durationPicker = new EffortDurationPicker();
|
||||
durationCell.appendChild(durationPicker);
|
||||
durationPicker.bind(new Util.Getter<EffortDuration>() {
|
||||
|
||||
@Override
|
||||
public Integer get() {
|
||||
return baseCalendarModel.getHours(day);
|
||||
public EffortDuration get() {
|
||||
return baseCalendarModel.getDurationAt(day);
|
||||
}
|
||||
}, new Util.Setter<Integer>() {
|
||||
}, new Util.Setter<EffortDuration>() {
|
||||
|
||||
@Override
|
||||
public void set(Integer value) {
|
||||
try {
|
||||
baseCalendarModel.setHours(day, value);
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new WrongValueException(intBox, e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
hoursIntbox.addEventListener(Events.ON_CHANGE, new EventListener() {
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event) throws Exception {
|
||||
public void set(EffortDuration value) {
|
||||
baseCalendarModel.setDurationAt(day, value);
|
||||
reloadDayInformation();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
if (baseCalendarModel.isDerived()
|
||||
&& baseCalendarModel.isDefault(day)) {
|
||||
hoursIntbox.setDisabled(true);
|
||||
}
|
||||
|
||||
hoursListcell.appendChild(hoursIntbox);
|
||||
item.appendChild(hoursListcell);
|
||||
durationPicker.setDisabled(baseCalendarModel.isDerived()
|
||||
&& baseCalendarModel.isDefault(day));
|
||||
item.appendChild(durationCell);
|
||||
|
||||
if (baseCalendarModel.isDerived()) {
|
||||
Listcell defaultListcell = new Listcell();
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import org.navalplanner.business.common.daos.IConfigurationDAO;
|
|||
import org.navalplanner.business.common.entities.Configuration;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.workingday.EffortDuration;
|
||||
import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
|
|
@ -271,12 +272,11 @@ public class BaseCalendarModel implements IBaseCalendarModel {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Integer getHours(Days day) {
|
||||
public EffortDuration getDurationAt(Days day) {
|
||||
if (getBaseCalendar() == null) {
|
||||
return null;
|
||||
return EffortDuration.zero();
|
||||
}
|
||||
return BaseCalendar.roundToHours(getBaseCalendar().getDurationAt(
|
||||
selectedDate, day));
|
||||
return getBaseCalendar().getDurationAt(selectedDate, day);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -303,9 +303,9 @@ public class BaseCalendarModel implements IBaseCalendarModel {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setHours(Days day, Integer hours) {
|
||||
public void setDurationAt(Days day, EffortDuration value) {
|
||||
if (getBaseCalendar() != null) {
|
||||
getBaseCalendar().setHours(day, hours, selectedDate);
|
||||
getBaseCalendar().setDurationAt(day, value, selectedDate);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,13 +26,14 @@ import java.util.Set;
|
|||
|
||||
import org.joda.time.LocalDate;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar.DayType;
|
||||
import org.navalplanner.business.calendars.entities.CalendarAvailability;
|
||||
import org.navalplanner.business.calendars.entities.CalendarData;
|
||||
import org.navalplanner.business.calendars.entities.CalendarData.Days;
|
||||
import org.navalplanner.business.calendars.entities.CalendarException;
|
||||
import org.navalplanner.business.calendars.entities.CalendarExceptionType;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar.DayType;
|
||||
import org.navalplanner.business.calendars.entities.CalendarData.Days;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.workingday.EffortDuration;
|
||||
|
||||
/**
|
||||
* This interface contains the operations to create/edit a {@link BaseCalendar}.
|
||||
|
|
@ -112,10 +113,6 @@ public interface IBaseCalendarModel {
|
|||
void createException(CalendarExceptionType type, Date startDate,
|
||||
Date endDate, Integer hours);
|
||||
|
||||
Integer getHours(Days day);
|
||||
|
||||
void setHours(Days day, Integer hours);
|
||||
|
||||
Boolean isDefault(Days day);
|
||||
|
||||
void setDefault(Days day);
|
||||
|
|
@ -197,4 +194,8 @@ public interface IBaseCalendarModel {
|
|||
|
||||
void cancel();
|
||||
|
||||
EffortDuration getDurationAt(Days day);
|
||||
|
||||
void setDurationAt(Days day, EffortDuration value);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@
|
|||
itemRenderer="@{calendarController.editionController.hoursPerDayRenderer}">
|
||||
<listhead>
|
||||
<listheader label="${i18n:_('Day of week')}" />
|
||||
<listheader label="${i18n:_('Hours')}" />
|
||||
<listheader label="${i18n:_('Duration')}" />
|
||||
<listheader label="${i18n:_('By default')}" />
|
||||
</listhead>
|
||||
</listbox>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue