you should use a loadable detachable model for your listview, that way
it will work transparently.
-igor
On Fri, May 23, 2008 at 9:25 AM, Davidoff <[EMAIL PROTECTED]> wrote:
>
> this is code for the mail list (i implemented modal windows in order to show
> emails but JWebUnit tests returned errors then i have to find some other way
> to show mails...my priority now is to find the way to refresh the mail
> listview:
>
> public class MailAccount extends WebPage {
> private ModalWindow modal;
> private Folder folder;
> private User user;
> private ListView listTable;
> private List<Message> test;
> private Message[] messages;
> private Message msg;
> private int index;
> public MailAccount(String username, String password)
> {
> Manager manager=new Manager("AjaxUbiMailDB",1000);
> user=manager.authenticate(username, password);
> add(new Label("message","Hello " + user.firstName() +" "+
> user.lastName()));
> Properties sysProperties = System.getProperties();
> Session session=Session.getDefaultInstance(sysProperties,
> null);
> session.setDebug(false);
>
> folder=user.openPopServer();
> try {
>
> add(new Label("contains","Your MailBox contains "+
> folder.getMessageCount() + " messages."));
>
>
> } catch (MessagingException e) {
> // TODO Auto-generated catch block
> add(new Label("contains","Wrong Username or
> password"));
> System.out.println("Error on opening pop folder or
> something else");
> //e.printStackTrace();
> }
>
>
> initMailList();
>
> WebMarkupContainer listContainer = new
> WebMarkupContainer("theContainer");
> //generate a markup-id so the contents can be updated through
> an AJAX call
> listContainer.setOutputMarkupId(true);
> listContainer.add(new
> AjaxSelfUpdatingTimerBehavior(Duration.seconds(5)));
> // add the list view to the container
> listContainer.add(listTable);
> // finally add the container to the page
> add(listContainer);
> user.closePopServer();
> modal = new ModalWindow("modal");
> addOrReplace(modal);
> }
>
> public void initMailList(){
> listTable=new ListView("listview",mailList)
> {
> private Folder folder=user.openPopServer();
>
> public void populateItem(ListItem item)
> {
> try {
> final Message msg=(Message)
> item.getModelObject();
> Address[] add=msg.getFrom();
> index=msg.getMessageNumber();
> AjaxLink rate = new
> AjaxLink("mess") {
> public void
> onClick(AjaxRequestTarget target) {
>
>
> GetMessage getMessage;
>
> getMessage = new GetMessage(modal.getContentId(), msg){};
>
> modal.setContent(getMessage);
>
> modal.setInitialHeight(600);
>
> modal.setInitialWidth(1000);
>
> modal.show(target);
>
> modal.setTitle("Mail View");
>
> }
> };
> rate.add(new
> Label("prova",String.valueOf(msg.getMessageNumber())));
> item.add(rate);
> item.add(new
> AttributeAppender("class", true, new
> Model(index % 2 ==0 ? "odd": "even"), " "));
> item.add(new
> Label("subject",
> msg.getSubject().toString()));
> item.add(new
> Label("from", add[0].toString()));
> if
> (msg.getSentDate()!=null)
>
> item.add(new Label("date",
> msg.getSentDate().toString()));
> else
>
> item.add(new Label("date", "Nothing"));
> } catch (MessagingException e) {
> System.out.println("Error
> populate item");
> //
> e.printStackTrace();
> }
>
> }
> };
> }
> IModel mailList = new LoadableDetachableModel()
> {
>
>
> protected Object load() {
>
> user.openPopServer();
> try {
> messages=folder.getMessages();
> } catch (MessagingException e) {
> // TODO Auto-generated catch block
>
> e.printStackTrace();
> }
> List mailList1=Arrays.asList(messages);
> return mailList1;
> }
> };
> }
>
>
>
>
> igor.vaynberg wrote:
>>
>> On Fri, May 23, 2008 at 2:20 AM, Davidoff <[EMAIL PROTECTED]> wrote:
>>>
>>> I'm creating a simple webmail application: i've created a listview where
>>> the
>>> items are rows containing the number of the message, the subject and so
>>> on... my target is to reproduce what Gmail does: clicking on the number
>>> of a
>>> mail i wanto to read it's content, and clicking again i want to return to
>>> the list (the content collapses).How can i do this?
>>
>> include a hidden webmarkupcontainer which you then replace with some
>> other component that contains the mail content when the header is
>> clicked. replace it back with a webmarkupcontianer to collapse.
>>
>>> Second question: i created a list like this
>>> http://www.google.it/search?q=ajax+listview&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:it:official&client=firefox-a
>>> but even if i send emails to the address in list, the listview will not
>>> refresh(the messages are always the same).
>>
>> show us some code
>>
>> -igor
>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Ajax-ListView-as-Gmail-tp17421986p17421986.html
>>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Ajax-ListView-as-Gmail-tp17421986p17428158.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]