Bug #1369: Fix problems in previous patch due to bandbox listener

FEA: ItEr76S04BugFixing
This commit is contained in:
Manuel Rego Casasnovas 2012-06-27 11:39:54 +02:00
parent ecbd5bbd46
commit fc9800ae9e
2 changed files with 26 additions and 49 deletions

View file

@ -45,9 +45,6 @@ import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.SuspendNotAllowedException;
import org.zkoss.zk.ui.WrongValueException;
import org.zkoss.zk.ui.event.Event;
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.Checkbox;
import org.zkoss.zul.ComboitemRenderer;
@ -84,8 +81,6 @@ public class ProjectDetailsController extends GenericForwardComposer {
private Datebox initDate;
private BandboxSearch bdExternalCompanies;
private BandboxSearch bdProjectTemplate;
private Textbox txtName;
@ -97,6 +92,8 @@ public class ProjectDetailsController extends GenericForwardComposer {
@Autowired
private IOrderDAO orderDAO;
private OrderTemplate template;
public ProjectDetailsController() {
Window window = (Window) Executions.createComponents(
"/orders/_projectDetails.zul", null,
@ -122,7 +119,6 @@ public class ProjectDetailsController extends GenericForwardComposer {
this.defaultCalendar = orderController.getOrder().getCalendar();
this.isCodeAutogeneratedInit = orderController.getOrder()
.isCodeAutogenerated();
loadComponents();
try {
Util.reloadBindings(window);
Util.createBindingsFor(gridProjectDetails);
@ -260,47 +256,7 @@ public class ProjectDetailsController extends GenericForwardComposer {
};
}
private void loadComponents() {
bdExternalCompanies.setListboxEventListener(Events.ON_SELECT,
new EventListener() {
@Override
public void onEvent(Event event) {
final Object object = bdExternalCompanies
.getSelectedElement();
getOrder().setCustomer((ExternalCompany) object);
}
});
bdExternalCompanies.setListboxEventListener(Events.ON_OK,
new EventListener() {
@Override
public void onEvent(Event event) {
final Object object = bdExternalCompanies
.getSelectedElement();
getOrder().setCustomer((ExternalCompany) object);
bdExternalCompanies.close();
}
});
bdProjectTemplate.setBandboxEventListener(Events.ON_BLUR,
new EventListener() {
@Override
public void onEvent(Event event) {
if (bdProjectTemplate.getSelectedElement() == null) {
generateCode.setDisabled(false);
} else {
setCodeAutogenerated(true);
generateCode.setDisabled(true);
generateCode.setChecked(true);
calculateProjectDates();
}
}
});
}
public void calculateProjectDates() {
OrderTemplate template = (OrderTemplate) bdProjectTemplate.getSelectedElement();
if (template == null) {
return;
}
public void calculateProjectDates(OrderTemplate template) {
initDate.setValue(new LocalDate().plusDays(template.getStartAsDaysFromBeginning()).toDateTimeAtStartOfDay().toDate());
if (template.getDeadlineAsDaysFromBeginning() != null ) {
deadline.setValue( new LocalDate(initDate.getValue()).plusDays(template.getDeadlineAsDaysFromBeginning()).toDateTimeAtStartOfDay().toDate());
@ -308,4 +264,24 @@ public class ProjectDetailsController extends GenericForwardComposer {
deadline.setText("");
}
}
public OrderTemplate getTemplate() {
return template;
}
public void setTemplate(OrderTemplate template) {
this.template = template;
if (template == null) {
generateCode.setDisabled(false);
generateCode.setTooltiptext("");
} else {
setCodeAutogenerated(true);
generateCode.setDisabled(true);
generateCode
.setTooltiptext(_("Code has to be autogenerated to create a new project from templates"));
generateCode.setChecked(true);
calculateProjectDates(template);
}
}
}

View file

@ -40,7 +40,8 @@
</row>
<row>
<label value="${i18n:_('Template')}" />
<bandboxSearch id="bdProjectTemplate" finder="templatesEligibleForOrder"
<bandboxSearch id="bdProjectTemplate" finder="TemplatesEligibleForOrder"
selectedElement="@{projectController.template, access='both'}"
widthBandbox="400px" widthListbox="500px" />
</row>
<row>
@ -69,7 +70,7 @@
<bandboxSearch id="bdExternalCompanies" widthBandbox="485px" widthListbox="500px"
finder="ExternalCompanyBandboxFinder"
model="@{projectController.externalCompaniesAreClient}"
selectedElement="@{projectController.order.customer}"/>
selectedElement="@{projectController.order.customer, access='both'}"/>
</row>
<row>
<label value="${i18n:_('Calendar')}" />