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]

Reply via email to