i did it...was simple!I had to declare Folder folder field in ListView
Constructor...
now the systems opens the mails, but the problem is it not opens non-HTML
mails...How can i do the trick?

Davidoff wrote:
> 
> i resolved that problem...i put a label instead of
> MultiLineLabel...thanks.
> Now i want optimize the opening of the email.
> 
> MailAccount.java
> 
> package ajaxubimail.index;
> 
> import java.io.IOException;
> import java.util.Arrays;
> import java.util.List;
> import java.util.Properties;
> 
> import javax.mail.Address;
> import javax.mail.Folder;
> import javax.mail.Message;
> import javax.mail.MessagingException;
> import javax.mail.Session;
> import javax.mail.Store;
> import javax.mail.internet.InternetAddress;
> 
> import org.apache.commons.lang.RandomStringUtils;
> import org.apache.wicket.Component;
> import org.apache.wicket.ajax.AjaxRequestTarget;
> import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
> import org.apache.wicket.ajax.markup.html.AjaxLink;
> import org.apache.wicket.behavior.AttributeAppender;
> import org.apache.wicket.extensions.ajax.markup.html.AjaxLazyLoadPanel;
> import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
> 
> 
> 
> import org.apache.wicket.markup.html.WebPage;
> import org.apache.wicket.markup.html.basic.Label;
> import org.apache.wicket.markup.html.list.ListItem;
> import org.apache.wicket.markup.html.list.ListView;
> import org.apache.wicket.markup.repeater.Item;
> import org.apache.wicket.markup.repeater.data.IDataProvider;
> import org.apache.wicket.model.IModel;
> import org.apache.wicket.model.LoadableDetachableModel;
> import org.apache.wicket.model.Model;
> import org.apache.wicket.util.time.Duration;
> 
> import UbiMail.Manager;
> import UbiMail.User;
> 
> public class  MailAccount extends WebPage {
>       private ModalWindow modal;
>       private Message msg;
>       private int index;
>       public MailAccount(String username, String password) throws
> MessagingException, IOException
>     {
>       Manager manager=new Manager("AjaxUbiMailDB",1000);
>         User 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);
>       /*      Store store = session.getStore("pop3"); 
>               if (user.popServer()=="in.virgilio.it")
>               store.connect(user.popServer(), user.popUser() + "@virgilio.it",
> user.popPass());
>               else
>                       store.connect(user.popServer(), user.popUser(), 
> user.popPass());
> final Folder folder = store.getFolder("INBOX");     
>                folder.open(Folder.READ_ONLY); 
>                add(new Label("contains","Your MailBox contains "+
> folder.getMessageCount()));
>  Message[] messages = folder.getMessages();
> */
>               Folder folder=user.openPopServer();
> Message[] messages=   folder.getMessages();
>          List<Message> test=Arrays.asList(messages);
>          modal = new ModalWindow("modal");
> ListView listTable=new ListView("listview",test)      
> {
>       
> 
> 
>               /**
>        * 
>        */
>       private static final long serialVersionUID = 1L;
> 
>               public void populateItem(ListItem item)
>        {
>                                       try {
>                                       //      if (!folder.isOpen())
>                                       //              
> folder.open(Folder.READ_ONLY);
>                   final Message msg=(Message) item.getModelObject();
>                               Address[] add=msg.getFrom();
>                          index=msg.getMessageNumber();        
>                           AjaxLink rate = new AjaxLink("mess") {
>          
> 
>                                                       /**
>                                                        * 
>                                                        */
>                                                       private static final 
> long serialVersionUID = 1L;
> 
>                                                       public void 
> onClick(AjaxRequestTarget target) {
>                                               
>                                                               try {
>                                                                       
> GetMessage getMessage;
>                                                                       
> getMessage = new GetMessage(modal.getContentId(), msg, index){
> 
>                                                                               
> /**
>                                                                               
>  * 
>                                                                               
>  */
>                                                                               
> private static final long serialVersionUID = 1L;};
>                                                                       
> modal.setContent(getMessage);
>                                                                       
> modal.show(target);
>                                                                       
>                                                               } catch 
> (MessagingException e) {
>                                                                       // TODO 
> Auto-generated catch block
>                                                                       
> e.printStackTrace();
>                                                               } catch 
> (IOException e) {
>                                                                       // TODO 
> Auto-generated catch block
>                                                                       
> e.printStackTrace();
>                                                               }
>                                                       
>                                               
>                                               }
> 
>                                               };
>                                               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("number",String.valueOf(msg.getMessageNumber()))); 
>                                               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) {
>                                               // TODO Auto-generated catch 
> block
>                                               e.printStackTrace();
>                                       }
>                                       
>        }
> };
> 
> add(modal);
> 
> 
> 
> 
> add(listTable);
> user.closePopServer();
> //folder.close(false);
> 
>     }
> 
> With this code wicket says :
> 
> WicketMessage: Error attaching this container for rendering: [Page class =
> ajaxubimail.index.MailAccount, id = 7, version = 0]Root
> cause:java.lang.IllegalStateException: Folder is not Open     at
> com.sun.mail.pop3.POP3Folder.checkOpen(POP3Folder.java:422)     at
> com.sun.mail.pop3.POP3Folder.getProtocol(POP3Folder.java:449)     at
> com.sun.mail.pop3.POP3Message.loadHeaders(POP3Message.java:430)     at
> com.sun.mail.pop3.POP3Message.getHeader(POP3Message.java:255)     at
> javax.mail.internet.MimeMessage.getAddressHeader(MimeMessage.java:657)    
> at javax.mail.internet.MimeMessage.getFrom(MimeMessage.java:321)     at
> ajaxubimail.index.MailAccount$1.populateItem(MailAccount.java:85)     at
> org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:573)    
> at
> org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:127)
>     
> at org.apache.wicket.Component.internalBeforeRender(Component.java:1002)    
> at org.apache.wicket.Component.beforeRender(Component.java:1034)     at
> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1589)
>     
> at org.apache.wicket.Component.onBeforeRender(Component.java:3681)     at
> org.apache.wicket.Page.onBeforeRender(Page.java:1416)     at
> org.apache.wicket.Component.internalBeforeRender(Component.java:1002)    
> at org.apache.wicket.Component.beforeRender(Component.java:1034)     at
> org.apache.wicket.Component.prepareForRender(Component.java:2158)     at
> org.apache.wicket.Page.renderPage(Page.java:885)     at
> org.apache.wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:163)
>     
> at
> org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:58)
>     
> at
> org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104)
>     
> at
> org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1172)
>     
> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1243)     at
> org.apache.wicket.RequestCycle.steps(RequestCycle.java:1331)     at
> org.apache.wicket.RequestCycle.request(RequestCycle.java:493)     at
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:363)    
> at
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)  
>   
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>     
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>     
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>     
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>     
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
>    
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
>    
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>     
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)   
>  
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)    
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>     
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)    
> at java.lang.Thread.run(Thread.java:619)Complete
> stack:org.apache.wicket.WicketRuntimeException: Error attaching this
> container for rendering: [Page class = ajaxubimail.index.MailAccount, id =
> 7, version = 0]     at
> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1601)
>     
> at org.apache.wicket.Component.onBeforeRender(Component.java:3681)     at
> org.apache.wicket.Page.onBeforeRender(Page.java:1416)     at
> org.apache.wicket.Component.internalBeforeRender(Component.java:1002)    
> at org.apache.wicket.Component.beforeRender(Component.java:1034)     at
> org.apache.wicket.Component.prepareForRender(Component.java:2158)     at
> org.apache.wicket.Page.renderPage(Page.java:885)     at
> org.apache.wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:163)
>     
> at
> org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:58)
>     
> at
> org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104)
>     
> at
> org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1172)
>     
> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1243)     at
> org.apache.wicket.RequestCycle.steps(RequestCycle.java:1331)     at
> org.apache.wicket.RequestCycle.request(RequestCycle.java:493)     at
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:363)
> 
> 
> I've partially resolved the question putting in the ListView constructor
> the lines
> if (!folder.isOpen)
>    folder.open(Folder.READ_ONLY);
> 
> but the system is really slow to download all emails because opens and
> closes folder for each message in it
> How can i simplify this?
> 
> Excuse me for my poor English... :)
> 
> 
> jwcarman wrote:
>> 
>> How are you spitting out the contents of the mail?  Are you using a
>> stream of some sort?  Are you forgetting to flush/close the stream?
>> 
>> On Tue, May 20, 2008 at 6:45 AM, Davidoff <[EMAIL PROTECTED]> wrote:
>>>
>>> wonderful...the problem now is that some mail do not render
>>> completely...i
>>> don't see any tags now, i see the rendered mail, but some mails are half
>>> rendered, maybe a part of these contain text/plain?
>>>
>>> Michael Sparer wrote:
>>>>
>>>> i mean label.setEscapeModelStrings(false) ;-)
>>>>
>>>> Michael Sparer wrote:
>>>>>
>>>>> try label.setEscapeModelStrings(true)
>>>>>
>>>>>
>>>>> Davidoff wrote:
>>>>>>
>>>>>> I'm developing a simple webmail application...i want to render in
>>>>>> HTML
>>>>>> what is in a MIME multipart message...now here is the code:
>>>>>>
>>>>>> GetMessage.java
>>>>>>
>>>>>> public abstract class GetMessage extends Panel {
>>>>>>     private MultiLineLabel text;
>>>>>>     private String type;
>>>>>>
>>>>>>     public GetMessage(String id,Message msg,int index) throws
>>>>>> MessagingException, IOException {
>>>>>>     super(id);
>>>>>>     add(new Label("num",String.valueOf(index)));
>>>>>>     add(new Label("sub",msg.getSubject().toString()));
>>>>>>     add(new Label("sender",msg.getFrom()[0].toString()));
>>>>>>     add(new Label("dat",msg.getSentDate().toString()));
>>>>>>
>>>>>> Object content = msg.getContent();
>>>>>>
>>>>>>  if( content instanceof String){
>>>>>>     text=new MultiLineLabel("content",content.toString());
>>>>>>
>>>>>>
>>>>>>  }else{
>>>>>>   Multipart multi = (Multipart)content;
>>>>>>    for(int j=0; j<multi.getCount(); ++j){
>>>>>>        BodyPart part = multi.getBodyPart(j);
>>>>>>    type = part.getContentType();
>>>>>>     content = part.getContent();
>>>>>>      if( content instanceof String){
>>>>>>    text=new MultiLineLabel("content", content.toString());
>>>>>>     }
>>>>>>  }
>>>>>>  }
>>>>>>     add(text);
>>>>>>     add(new Label("prova1",type));
>>>>>>
>>>>>>     }
>>>>>>     }
>>>>>>
>>>>>> GetMessage.html
>>>>>>
>>>>>> <wicket:panel>
>>>>>>
>>>>>> <table>
>>>>>>     <tr><th>#</th><td class="even" wicket:id="num"></td></tr>
>>>>>>     <tr><th>Subject</th><td class="odd" wicket:id="sub"></td></tr>
>>>>>>     <tr><th>Sender</th><td class="even" wicket:id="sender"></td></tr>
>>>>>>     <tr><th>Date</th><td class="odd" wicket:id="dat"></td></tr>
>>>>>>     <tr><td colspan=2><div wicket:id="content"></div></td></tr>
>>>>>> </table>
>>>>>>
>>>>>> LAbel
>>>>>> </wicket:panel>
>>>>>>
>>>>>>
>>>>>> The problem is the MultiLineLabel shows  not the HTML resulting
>>>>>> rendering, but the HTML code itself!
>>>>>> My target is to render the html code that is in the
>>>>>> content.toString()
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Html-mail-representation-tp17337174p17337580.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/Html-mail-representation-tp17337174p17364247.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]

Reply via email to