Выполнить метод класса из кнопки ZK в сетке - PullRequest
0 голосов
/ 13 марта 2019

Нужна помощь в этом.

Post.java - это объект, у которого есть Пользователь, который его опубликовал, Строка информации и Инт с числом лайков. PostData.java сохраняет список всех сообщений в ArrayList. PostViewModel.java связывается с зул.

Зул:

<zk>
<window apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('fb.PostViewModel')">
<grid height="550px" model="@load(vm.postData.posts)" emptyMessage="Nothing in Posts.">
<template name="model">
<row>
<window border="normal">
<caption label="@load(each.user.getNombre())"/> 
<label value="@load(each.info)" />
<separator bar="true"/>
<button label="Like" onClick="addLike()"/>.
<textbox id="likeTB" disabled="true" value="@load(each.likes)" width="30px;"/>
<zscript>
public void addLike(){
//Somehow add to the object Post's likes one.
//Temporary fix that just modifies the textbox.
//String test = likeTB.getValue();
//Integer num = Integer.parseInt(test);
//num++;
//likeTB.setValue(num+"");
}
</zscript></window></row></template></grid></window>
</zk>

Мой вопрос: как я могу, используя кнопку «Нравится», перейти к объекту «Сообщение»где я дал Like и использую метод addOneLike ()?

1 Ответ

0 голосов
/ 13 марта 2019

Я собираюсь предположить, что ваше сообщение имеет id или какой-то другой способ быть уникальным. Я также собираюсь предположить, что ваш код zscript будет перемещен в модель представления. Вы можете сделать следующее в своем коде zul:

<button label="Like" onClick="@command('addLike', id=each.id)"/>

А потом по вашему мнению модель:

@Command
public void addLike(@BindingParam("id") long id) {
    // post with id like++
}
...