ItEr24S10CUAsignacionCalendarioLaboralRecursoItEr23S13: Moving methods related with parent combo to the new controller.

This commit is contained in:
Manuel Rego Casasnovas 2009-09-04 12:40:39 +02:00 committed by Óscar González Fernández
parent ee71f16b57
commit a75fea2a6f
2 changed files with 50 additions and 64 deletions

View file

@ -3,7 +3,6 @@ package org.navalplanner.web.calendars;
import static org.navalplanner.web.I18nHelper._;
import java.util.Date;
import java.util.List;
import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.common.exceptions.ValidationException;
@ -19,8 +18,6 @@ import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Button;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Label;
import org.zkoss.zul.SimpleTreeNode;
import org.zkoss.zul.Treecell;
@ -85,11 +82,8 @@ public class BaseCalendarCRUDController extends GenericForwardComposer {
}
public void goToEditForm(BaseCalendar baseCalendar) {
assignEditionController();
baseCalendarModel.initEdit(baseCalendar);
if (baseCalendarModel.isDerived()) {
prepareParentCombo();
}
assignEditionController();
setSelectedDay(new Date());
highlightDaysOnCalendar();
getVisibility().showOnly(editWindow);
@ -167,8 +161,8 @@ public class BaseCalendarCRUDController extends GenericForwardComposer {
}
public void goToCreateForm() {
assignCreateController();
baseCalendarModel.initCreate();
assignCreateController();
setSelectedDay(new Date());
highlightDaysOnCalendar();
getVisibility().showOnly(createWindow);
@ -244,75 +238,21 @@ public class BaseCalendarCRUDController extends GenericForwardComposer {
}
public void goToCreateDerivedForm(BaseCalendar baseCalendar) {
assignCreateController();
baseCalendarModel.initCreateDerived(baseCalendar);
if (baseCalendarModel.isDerived()) {
prepareParentCombo();
}
assignCreateController();
setSelectedDay(new Date());
highlightDaysOnCalendar();
getVisibility().showOnly(createWindow);
Util.reloadBindings(createWindow);
}
private void prepareParentCombo() {
Combobox parentCalendars;
if (baseCalendarModel.isEditing()) {
parentCalendars = (Combobox) editWindow
.getFellow("parentCalendars");
} else {
parentCalendars = (Combobox) createWindow
.getFellow("parentCalendars");
}
fillParentComboAndMarkSelectedItem(parentCalendars);
addListenerParentCombo(parentCalendars);
}
private void fillParentComboAndMarkSelectedItem(Combobox parentCalendars) {
parentCalendars.getChildren().clear();
BaseCalendar parent = baseCalendarModel.getParent();
List<BaseCalendar> possibleParentCalendars = getParentCalendars();
for (BaseCalendar baseCalendar : possibleParentCalendars) {
Comboitem item = new Comboitem(baseCalendar.getName());
item.setValue(baseCalendar);
parentCalendars.appendChild(item);
if (baseCalendar.getId().equals(parent.getId())) {
parentCalendars.setSelectedItem(item);
}
}
}
private void addListenerParentCombo(final Combobox parentCalendars) {
parentCalendars.addEventListener(Events.ON_SELECT, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
BaseCalendar selected = (BaseCalendar) parentCalendars
.getSelectedItem()
.getValue();
baseCalendarModel.setParent(selected);
reloadCurrentWindow();
}
});
}
public List<BaseCalendar> getParentCalendars() {
return baseCalendarModel.getPossibleParentCalendars();
}
public boolean isEditing() {
return baseCalendarModel.isEditing();
}
public void goToCreateCopyForm(BaseCalendar baseCalendar) {
assignCreateController();
baseCalendarModel.initCreateCopy(baseCalendar);
if (baseCalendarModel.isDerived()) {
prepareParentCombo();
}
assignCreateController();
setSelectedDay(new Date());
highlightDaysOnCalendar();
getVisibility().showOnly(createWindow);

View file

@ -30,6 +30,8 @@ import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Button;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Intbox;
import org.zkoss.zul.Label;
import org.zkoss.zul.Listcell;
@ -78,6 +80,46 @@ public abstract class BaseCalendarEditionController extends
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
messagesForUser = new MessagesForUser(messagesContainer);
if (baseCalendarModel.isDerived()) {
prepareParentCombo();
}
}
private void prepareParentCombo() {
Combobox parentCalendars = (Combobox) window
.getFellow("parentCalendars");
fillParentComboAndMarkSelectedItem(parentCalendars);
addListenerParentCombo(parentCalendars);
}
private void fillParentComboAndMarkSelectedItem(Combobox parentCalendars) {
parentCalendars.getChildren().clear();
BaseCalendar parent = baseCalendarModel.getParent();
List<BaseCalendar> possibleParentCalendars = getParentCalendars();
for (BaseCalendar baseCalendar : possibleParentCalendars) {
Comboitem item = new Comboitem(baseCalendar.getName());
item.setValue(baseCalendar);
parentCalendars.appendChild(item);
if (baseCalendar.getId().equals(parent.getId())) {
parentCalendars.setSelectedItem(item);
}
}
}
private void addListenerParentCombo(final Combobox parentCalendars) {
parentCalendars.addEventListener(Events.ON_SELECT, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
BaseCalendar selected = (BaseCalendar) parentCalendars
.getSelectedItem().getValue();
baseCalendarModel.setParent(selected);
reloadCurrentWindow();
}
});
}
public boolean isEditing() {
@ -561,4 +603,8 @@ public abstract class BaseCalendarEditionController extends
// Just for ZK binding not needed
}
public List<BaseCalendar> getParentCalendars() {
return baseCalendarModel.getPossibleParentCalendars();
}
}