Port client enhacements of BandboxMultipleSearch to ZK5

Now it closes automatically when clicking in a row as it was doing in
ZK3.

FEA: ItEr75S04BugFixing
This commit is contained in:
Óscar González Fernández 2011-07-22 18:38:11 +02:00
parent f031dd5a7f
commit 3e44be3899
2 changed files with 20 additions and 18 deletions

View file

@ -35,6 +35,8 @@ import org.navalplanner.web.common.components.finders.FilterPair;
import org.navalplanner.web.common.components.finders.IMultipleFiltersFinder;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.zkoss.zk.au.AuRequest;
import org.zkoss.zk.au.AuService;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.HtmlMacroComponent;
import org.zkoss.zk.ui.WrongValueException;
@ -92,21 +94,24 @@ public class BandboxMultipleSearch extends HtmlMacroComponent {
listbox.setItemRenderer(multipleFiltersFinder.getItemRenderer());
addHeaders();
// Close bandbox for events onClick and onOK
listbox.addEventListener(Events.ON_CLICK, new EventListener() {
@Override
public void onEvent(Event event) {
pickElementFromListAndCloseBandbox();
setAuService(new AuService() {
@Override
public boolean service(AuRequest request, boolean everError) {
String command = request.getCommand();
if (command.equals("closeBandbox")) {
pickElementFromListAndCloseBandbox();
return true;
}
});
return false;
}
});
listbox.addEventListener(Events.ON_OK, new EventListener() {
@Override
public void onEvent(Event event) {
@Override
public void onEvent(Event event) {
pickElementFromListAndCloseBandbox();
}
});
}
});
}
private void initBandbox() {

View file

@ -19,7 +19,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<zk id="bandboxsearch" xmlns:n="http://www.zkoss.org/2005/zk/native">
<zk id="bandboxsearch" xmlns:n="http://www.zkoss.org/2005/zk/native" xmlns:c="http://www.zkoss.org/2005/zk/client">
<zscript>
<![CDATA[
@ -29,11 +29,8 @@
<n:script language="javascript">
function closeBandbox(listbox) {
zkau.send({
uuid : listbox.id,
cmd : "onClick"
});
function closeBandbox(bandbox) {
zAu.send(new zk.Event(bandbox, "closeBandbox"));
}
</n:script>
@ -43,7 +40,7 @@
<vbox height="50px">
<listbox id="listbox" width="200px" sclass="bandbox-search" height="100px"
vflex="true" model="${arg.model}"
action="onClick: closeBandbox(#{listbox})">
c:onClick="closeBandbox(this.$f().bandbox.parent);">
<listhead id="listhead" />
</listbox>
</vbox>