Skip to content

Instantly share code, notes, and snippets.

@tony1223
Created April 16, 2011 07:01
Show Gist options
  • Save tony1223/922937 to your computer and use it in GitHub Desktop.
Save tony1223/922937 to your computer and use it in GitHub Desktop.
package org.zkoss.usergroup.composer;
import org.zkoss.usergroup.dao.IMessageDao;
import org.zkoss.usergroup.dao.MessageDaoImpl;
import org.zkoss.usergroup.model.Message;
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.event.ForwardEvent;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
public class AddOrUpdateMessageComposer extends GenericForwardComposer {
private Textbox name;
private Textbox email;
private Textbox content;
private Long id;
public void onShowAdd$addForm(ForwardEvent e) {
self.setVisible(true);
id = null;
try {
((Window) self).doModal();
} catch (Exception e1) {
e1.printStackTrace();
throw new RuntimeException(e1);
}
}
public void onShowUpdate$addForm(ForwardEvent e) {
self.setVisible(true);
if(e.getOrigin()!=null)
id = (Long) e.getOrigin().getData();
IMessageDao dao = new MessageDaoImpl();
Message current = dao.get(id);
name.setRawValue(current.getName());
email.setRawValue(current.getEmail());
content.setRawValue(current.getContent());
try {
((Window) self).doModal();
} catch (Exception e1) {
e1.printStackTrace();
throw new RuntimeException(e1);
}
}
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
}
public void onOK$addForm(Event e) {
MessageDaoImpl dao = new MessageDaoImpl();
Message m = null;
if(id!= null){
m = dao.get(id);
m.setContent(content.getText());
m.setEmail(email.getText());
m.setName(name.getText());
}else{
m = new Message(id, name.getText(), email.getText(), content.getText(), null);
}
dao.saveOrUdate(m);
Events.postEvent(new Event("onAfterInsert", self));
name.setRawValue("");
email.setRawValue("");
content.setRawValue("");
self.setVisible(false);
}
}
<?page title="Hello ZK Messageboard"?>
<window title="Hello World!!" border="normal" >
<label value="Welcome to ZK Messageboard." />
<grid id="list">
<columns>
<column label="Messages "/>
</columns>
</grid>
<zscript><![CDATA[
import java.util.*;
import org.zkoss.usergroup.model.*;
import org.zkoss.usergroup.dao.*;
MessageDaoImpl dao = new MessageDaoImpl();
list.setModel(new ListModelList(dao.list()));
//it might be a bug for ZK studio.
list.setRowRenderer(new RowRenderer() {
public void render(Row row, Object obj) {
Message model = (Message) obj;
Vlayout layout = new Vlayout();
layout.appendChild(new Label("#" + model.getId() + " " +
model.getName() +
"("+ model.getEmail() +") "+ model.getCreateDate().toString() ));
layout.appendChild(new Html("<div>"+model.getContent()+"</div>"));
row.appendChild(layout);
}
});
]]></zscript>
<button label="add new message" onClick="addForm.doModal();" />
<window id="addForm" visible="false" closable="true" title="hello">
<label value="hello " />
</window>
</window>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment