zkoss mvc framework ejemplos java model-view-controller mvvm zk zul

java - framework - zk mvc



¿Es posible utilizar @NotifyChange en lugar de BindUtils.postNotifyChange? (1)

1) Si la "isDisabled" asociada a "isDisabled" no cambia en ningún caso, no es necesario.
Pero tal vez se loadFolderInfoList() dentro de loadFolderInfoList()
2) Puedes imaginar que @NotifyChange({"arg1","arg2",...,"argN"}) es lo mismo que

for(String arg : args){ BindUtils.postNotifyChange(null, null, refToClassCalledFrom, arg); }

3) Pero puede llamar a BindUtils.postNotifyChange(...) desde cualquier lugar siempre que BindUtils.postNotifyChange(...) una referencia a la VM.
4) Para mí, parece que este código pertenece a una clase anidada de FolderInfoEditViewModel , que en sí mismo es VM así como FolderInfoEditViewModel .
En este caso, se invoca @NotifyChage(...) para la clase anidada pero

BindUtils.postNotifyChange(null, null, FolderInfoEditViewModel.this, "folderInfoList");

se refiere a su clase externa FolderInfoEditViewModel y solo se puede archivar de esta manera.

Tengo un uso de confusión entre @NotifyChange y BindUtils.postNotifyChange, ¿Por qué utilizar este evento? Antes de leer esta pregunta En ZK ¿Podemos PostNotifyCambiar más de una variable ? Pero no puedo entender esta pregunta por qué usar esta más de una variable.

Aquí hay un ejemplo:

@Command @NotifyChange({ "folderInfoList", "isDisabled", "selectedFolderInfo" }) public void refreshFolderInfo() { logger.debug("Refresh Icon selected"); if (isDirty()) { Messagebox.show(pageResourceBundle.getText("JS_CONFIRM_DATAMODIFED"), pageResourceBundle.getText("JS_CONFIRM_DATAMODIFED_TYPE"), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION, new EventListener<Event>() { public void onEvent(Event event) throws Exception { if (Messagebox.ON_OK.equals(event.getName())) { loadFolderInfoList(); selectedFolderInfo = null; BindUtils.postNotifyChange(null, null, FolderInfoEditViewModel.this, "folderInfoList"); } else { } } }); } else { loadFolderInfoList(); selectedFolderInfo = null; } }

¿Alguien puede decirme:

Tengo cuatro preguntas:

1. ¿Por qué el uso está Deshabilitado en @NotifyChange?

2. ¿Este método puedo usar @NotifyChange en lugar de BindUtils.postNotifyChange?

3. ¿Cuál es la diferencia entre @NotifyChange y BindUtils.postNotifyChange?

4.Quiero usar solo un evento entre estos dos métodos @NotifyChange y BindUtils.postNotifyChange in. ¿Es posible para este método?