ItEr35S08CUAsignacionCalendarioLaboralRecursoItEr25S09: Removed options to create resource calendars.

This commit is contained in:
Manuel Rego Casasnovas 2009-11-24 13:28:50 +01:00 committed by Javier Moran Rua
parent 097e46d686
commit 2079c7d38b
4 changed files with 67 additions and 87 deletions

View file

@ -124,4 +124,7 @@ public interface IWorkerModel {
ResourceCalendar getCalendar();
IAssignedCriterionsModel getAssignedCriterionsModel();
BaseCalendar getDefaultCalendar();
}

View file

@ -22,6 +22,7 @@ package org.navalplanner.web.resources.worker;
import static org.navalplanner.web.I18nHelper._;
import static org.navalplanner.web.common.ConcurrentModificationDetector.addAutomaticHandlingOfConcurrentModification;
import java.util.Date;
import java.util.List;
@ -45,7 +46,7 @@ import org.zkoss.zk.ui.WrongValueException;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Radio;
import org.zkoss.zul.ComboitemRenderer;
import org.zkoss.zul.api.Window;
/**
@ -95,6 +96,8 @@ public class WorkerCRUDController extends GenericForwardComposer implements
private Window createNewVersionWindow;
private BaseCalendarsComboitemRenderer baseCalendarsComboitemRenderer = new BaseCalendarsComboitemRenderer();
public WorkerCRUDController() {
}
@ -136,6 +139,9 @@ public class WorkerCRUDController extends GenericForwardComposer implements
if (baseCalendarEditionController != null) {
baseCalendarEditionController.save();
}
if (workerModel.getCalendar() == null) {
createCalendar();
}
if(criterionsController != null){
if(!criterionsController.validate()){
return;
@ -310,25 +316,6 @@ public class WorkerCRUDController extends GenericForwardComposer implements
return workerModel.getBaseCalendars();
}
public void calendarChecked(Radio radio) {
Combobox comboboxDerived = (Combobox) radio
.getFellow("createDerivedCalendar");
Combobox comboboxCopy = (Combobox) radio
.getFellow("createCopyCalendar");
String selectedId = radio.getId();
if (selectedId.equals("createFromScratch")) {
comboboxDerived.setDisabled(true);
comboboxCopy.setDisabled(true);
} else if (selectedId.equals("createDerived")) {
comboboxDerived.setDisabled(false);
comboboxCopy.setDisabled(true);
} else if (selectedId.equals("createCopy")) {
comboboxDerived.setDisabled(true);
comboboxCopy.setDisabled(false);
}
}
public boolean isCalendarNull() {
if (workerModel.getCalendar() != null) {
return false;
@ -340,50 +327,23 @@ public class WorkerCRUDController extends GenericForwardComposer implements
return !isCalendarNull();
}
public void createCalendar(String optionId) {
if (optionId.equals("createFromScratch")) {
resourceCalendarModel.initCreate();
} else if (optionId.equals("createDerived")) {
Combobox combobox = (Combobox) getCurrentWindow().getFellow(
"createDerivedCalendar");
Comboitem selectedItem = combobox.getSelectedItem();
if (selectedItem == null) {
throw new WrongValueException(combobox,
"You should select one calendar");
}
BaseCalendar parentCalendar = (BaseCalendar) combobox
.getSelectedItem().getValue();
resourceCalendarModel.initCreateDerived(parentCalendar);
} else if (optionId.equals("createCopy")) {
Combobox combobox = (Combobox) getCurrentWindow().getFellow(
"createCopyCalendar");
Comboitem selectedItem = combobox.getSelectedItem();
if (selectedItem == null) {
throw new WrongValueException(combobox,
"You should select one calendar");
}
BaseCalendar origCalendar = (BaseCalendar) combobox
.getSelectedItem().getValue();
resourceCalendarModel.initCreateCopy(origCalendar);
} else {
throw new RuntimeException(
"Unknow option '" + optionId
+ "' to create a resource calendar");
private void createCalendar() {
Combobox combobox = (Combobox) getCurrentWindow().getFellow(
"createDerivedCalendar");
Comboitem selectedItem = combobox.getSelectedItem();
if (selectedItem == null) {
throw new WrongValueException(combobox,
"You should select one calendar");
}
BaseCalendar parentCalendar = (BaseCalendar) combobox.getSelectedItem()
.getValue();
if (parentCalendar == null) {
parentCalendar = workerModel.getDefaultCalendar();
}
resourceCalendarModel.initCreateDerived(parentCalendar);
updateCalendarController();
workerModel.setCalendar((ResourceCalendar) resourceCalendarModel
.getBaseCalendar());
try {
baseCalendarEditionController.doAfterCompose(editCalendarWindow);
} catch (Exception e) {
throw new RuntimeException(e);
}
baseCalendarEditionController.setSelectedDay(new Date());
Util.reloadBindings(editCalendarWindow);
Util.reloadBindings(createNewVersionWindow);
reloadCurrentWindow();
}
public void editCalendar() {
@ -453,4 +413,30 @@ public class WorkerCRUDController extends GenericForwardComposer implements
editCalendarWindow.setVariable("calendarController", this, true);
createNewVersionWindow.setVariable("calendarController", this, true);
}
public BaseCalendarsComboitemRenderer getBaseCalendarsComboitemRenderer() {
return baseCalendarsComboitemRenderer;
}
private class BaseCalendarsComboitemRenderer implements ComboitemRenderer {
@Override
public void render(Comboitem item, Object data) throws Exception {
BaseCalendar calendar = (BaseCalendar) data;
item.setLabel(calendar.getName());
item.setValue(calendar);
if (isDefaultCalendar(calendar)) {
Combobox combobox = (Combobox) item.getParent();
combobox.setSelectedItem(item);
}
}
private boolean isDefaultCalendar(BaseCalendar calendar) {
BaseCalendar defaultCalendar = workerModel.getDefaultCalendar();
return defaultCalendar.getId().equals(calendar.getId());
}
}
}

View file

@ -37,6 +37,7 @@ import org.navalplanner.business.calendars.daos.IBaseCalendarDAO;
import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.calendars.entities.CalendarData;
import org.navalplanner.business.calendars.entities.ResourceCalendar;
import org.navalplanner.business.common.daos.IConfigurationDAO;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.resources.daos.ICriterionDAO;
@ -89,6 +90,9 @@ public class WorkerModel implements IWorkerModel {
@Autowired
private IAssignedCriterionsModel assignedCriterionsModel;
@Autowired
private IConfigurationDAO configurationDAO;
@Autowired
public WorkerModel(IResourceDAO resourceDAO,
ICriterionDAO criterionDAO) {
@ -480,4 +484,12 @@ public class WorkerModel implements IWorkerModel {
return assignedCriterionsModel;
}
@Override
@Transactional(readOnly = true)
public BaseCalendar getDefaultCalendar() {
BaseCalendar defaultCalendar = configurationDAO.getConfiguration().getDefaultCalendar();
forceLoadCalendar(defaultCalendar);
return defaultCalendar;
}
}

View file

@ -24,33 +24,12 @@
<div visible="@{controller.isCalendarNull}">
<radiogroup id="createCalendarOptions"
onCheck="controller.calendarChecked(self.selectedItem)">
<hbox>
<radio id="createFromScratch"
label="${i18n:_('Create calendar from scratch')}"
checked="true" />
</hbox>
<hbox>
<radio id="createDerived" label="${i18n:_('Create derived calendar')}" />
<combobox id="createDerivedCalendar" disabled="true"
model="@{controller.baseCalendars}">
<comboitem self="@{each='baseCalnedar'}" value="@{baseCalnedar}"
label="@{baseCalnedar.name}" />
</combobox>
</hbox>
<hbox>
<radio id="createCopy" label="${i18n:_('Create copy of calendar')}" />
<combobox id="createCopyCalendar" disabled="true"
model="@{controller.baseCalendars}">
<comboitem self="@{each='baseCalnedar'}" value="@{baseCalnedar}"
label="@{baseCalnedar.name}" />
</combobox>
</hbox>
</radiogroup>
<button label="${i18n:_('Create')}"
onClick="controller.createCalendar(createCalendarOptions.selectedItem.id);" />
<hbox>
<label value="${i18n:_('Select parent calendar')}" />
<combobox id="createDerivedCalendar"
model="@{controller.baseCalendars}"
itemRenderer="@{controller.baseCalendarsComboitemRenderer}" />
</hbox>
</div>