package schools; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zkplus.databind.AnnotateDataBinder; import org.zkoss.zul.api.Window; public class SchoolEditorController extends GenericForwardComposer { private static final long serialVersionUID = 1L; private AnnotateDataBinder binder; private School selectedSchool; private Window parentWindow; private Window winEditor; @Override public void doAfterCompose(Component comp) throws Exception { try { super.doAfterCompose(comp); } catch (Exception e) { e.printStackTrace(); } /* * create the data binder and bind this composer as the base model bean */ binder = new AnnotateDataBinder(comp); binder.bindBean("controller", this); /* * retrieve parameters passed here by the caller */ selectedSchool = (School)arg.get("SELECTED_SCHOOL"); parentWindow = (Window)arg.get("PARENT_WINDOW"); } public void onCreate(Event event) { /* * populate ui with data */ binder.loadAll(); } /** * Event handler for closing this dialog using the "exit" toolbar button */ public void onClick$tbtnExit() { winEditor.detach(); } /** * Event handler for saving the model values */ public void onClick$tbtnSave() { binder.saveAll(); winEditor.detach(); Events.sendEvent(new Event("onSchoolSaved", parentWindow)); } public AnnotateDataBinder getBinder() { return binder; } public void setBinder(AnnotateDataBinder binder) { this.binder = binder; } public School getSelectedSchool() { return selectedSchool; } public void setSelectedSchool(School selectedSchool) { this.selectedSchool = selectedSchool; } }