[Bug #912] You cannot delete an derived exception.

Disable delete icon in the exception which are inherited.
Include a column showing the type of exception (Inherited or Direct).

FEA : ItEr72S04BugFixing
This commit is contained in:
Susana Montes Pedreira 2011-03-07 13:13:45 +01:00
parent 488b3958a8
commit a43c0e8541
4 changed files with 27 additions and 2 deletions

View file

@ -934,6 +934,7 @@ public abstract class BaseCalendarEditionController extends
appendStandardEffortListcell(item, calendarException.getCapacity());
appendExtraEffortListcell(item, calendarException.getCapacity());
appendCodeListcell(item, calendarException);
appendOriginListcell(item, calendarException);
appendOperationsListcell(item, calendarException);
markAsSelected(item, calendarException);
@ -1017,6 +1018,17 @@ public abstract class BaseCalendarEditionController extends
item.appendChild(listcell);
}
private void appendOriginListcell(Listitem item,
CalendarException calendarException) {
Listcell listcell = new Listcell();
String origin = _("Inherited");
if (baseCalendarModel.isOwnException(calendarException)) {
origin = _("Direct");
}
listcell.appendChild(new Label(origin));
item.appendChild(listcell);
}
private void appendOperationsListcell(Listitem item, CalendarException calendarException) {
Listcell listcell = new Listcell();
listcell.appendChild(createRemoveButton(calendarException));
@ -1036,6 +1048,11 @@ public abstract class BaseCalendarEditionController extends
reloadDayInformation();
}
});
if (!baseCalendarModel.isOwnException(calendarException)) {
result.setDisabled(true);
result
.setTooltiptext(_("derived exception can not be removed"));
}
return result;
}

View file

@ -34,14 +34,14 @@ import org.joda.time.LocalDate;
import org.navalplanner.business.calendars.daos.IBaseCalendarDAO;
import org.navalplanner.business.calendars.daos.ICalendarExceptionTypeDAO;
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.Capacity;
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.common.IntegrationEntity;
import org.navalplanner.business.common.daos.IConfigurationDAO;
import org.navalplanner.business.common.entities.Configuration;
@ -564,6 +564,11 @@ public class BaseCalendarModel extends IntegrationEntityModel implements
return getBaseCalendar().getExceptions();
}
@Override
public boolean isOwnException(CalendarException exception) {
return getBaseCalendar().getOwnExceptions().contains(exception);
}
@Override
public void removeException(LocalDate date) {
if (getBaseCalendar() != null) {

View file

@ -205,4 +205,6 @@ public interface IBaseCalendarModel extends IIntegrationEntityModel {
void generateCalendarCodes();
boolean isLastActivationPeriod(CalendarAvailability calendarAvailability);
boolean isOwnException(CalendarException exception);
}

View file

@ -149,6 +149,7 @@
<listheader label="${i18n:_('Standard Effort')}" />
<listheader label="${i18n:_('Extra Effort')}" />
<listheader label="${i18n:_('Code')}" visible="@{calendarController.editionController.notResourceCalendar}"/>
<listheader label="${i18n:_('Origin')}" />
<listheader label="${i18n:_('Operations')}" />
</listhead>
</listbox>