~ryoji-kodakari/gt/trunk

« back to all changes in this revision

Viewing changes to src/com/tidspr/tsr/MailList.java

  • Committer: Ryoji Kodakari
  • Date: 2013-07-12 15:16:02 UTC
  • Revision ID: ryoji.kodakari@gmail.com-20130712151602-hgj89uk22ef4xqit
mail initializer, minor change

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
package com.tidspr.tsr;
2
2
 
3
 
import java.io.BufferedReader;
4
3
import java.io.IOException;
5
 
import java.io.InputStreamReader;
6
4
import java.io.PrintWriter;
7
 
import java.net.URL;
8
5
import java.text.SimpleDateFormat;
9
6
import java.util.List;
10
7
import javax.jdo.PersistenceManager;
11
 
import javax.servlet.ServletContext;
12
8
import javax.servlet.http.HttpServlet;
13
9
import javax.servlet.http.HttpServletRequest;
14
10
import javax.servlet.http.HttpServletResponse;
15
11
 
16
12
import com.google.appengine.api.datastore.KeyFactory;
17
13
import com.tidspr.tsr.entity.Mail;
 
14
import com.tidspr.tsr.entity.Tidder;
18
15
import com.tidspr.tsr.factory.PMF;
 
16
import com.tidspr.tsr.io.TidderIO;
19
17
import com.tidspr.tsr.toolbox.Miscellaneous;
20
18
 
21
19
public class MailList extends HttpServlet{
25
23
    @Override
26
24
    public void doGet(final HttpServletRequest req, final HttpServletResponse res)
27
25
    {
 
26
        Tidder _mpt = TidderIO.readTidder("MailTemplate");
 
27
        if(_mpt == null) return;
 
28
        
28
29
                String pageNumberStr = req.getParameter("page");
29
30
                int pageNumber = (pageNumberStr == null || !pageNumberStr.matches("[0-9]+"))? 0 : Integer.parseInt(pageNumberStr);
30
31
        final PersistenceManager pm = PMF.get().getPersistenceManager();
32
33
        que.setRange(0 + 50*pageNumber, 49 + 50*pageNumber);
33
34
        que.setOrdering("date descending");
34
35
        final List<Mail> list = (List<Mail>) que.execute();
 
36
        
35
37
        StringBuilder sb = new StringBuilder();
36
38
        for (final Mail m : list)
37
39
        {
38
40
                String ks = KeyFactory.keyToString(m.key());
39
 
                sb.append("<tr><td width='20em;'><a href='javascript:mailcontext(\""+ks+"\");' >"+m.getSubject()+"</a></td><td>" + encode(m.getFrom().substring(0,m.getFrom().indexOf('@')))+"</td><td>"+new SimpleDateFormat("yyyy.MM.dd hh:mm").format(m.getDate()) + "</td></tr>");
 
41
                sb.append("<tr><td width='20em;'><a href='javascript:mailcontext(\""+ks+"\");' >"+m.getSubject()+"</a></td><td>" + Miscellaneous.INSTANCE.htmlEncode(m.getFrom().substring(0,m.getFrom().indexOf('@')))+"</td><td>"+new SimpleDateFormat("yyyy.MM.dd hh:mm").format(m.getDate()) + "</td></tr>");
40
42
        }
41
43
        
42
44
        try
43
45
        {
44
46
            res.setContentType("text/html");
45
47
            res.setCharacterEncoding("UTF-8");
46
 
            final StringBuilder msb = new StringBuilder();
47
 
            try
48
 
            {
49
 
                ServletContext context = getServletContext();
50
 
                final URL u = context.getResource("/WEB-INF/mailtmpl.txt");
51
 
                final BufferedReader in = new BufferedReader(new InputStreamReader(u.openStream(), "UTF-8"));
52
 
                String inputLine;
53
 
                while ((inputLine = in.readLine()) != null)
54
 
                {
55
 
                    msb.append(inputLine + "\n");
56
 
                }
57
 
                in.close();
58
 
            }
59
 
            catch (final IOException e1)
60
 
            {
61
 
                e1.printStackTrace();
62
 
            }
63
48
                        final PrintWriter out = res.getWriter();
64
 
                        out.write(msb.toString().replace("{{{mailtable}}}", sb.toString()).replace("{{{nextpage}}}", Integer.toString(pageNumber+1)));
 
49
                        out.write(_mpt.html().replace("{{{mailtable}}}", sb.toString()).replace("{{{nextpage}}}", Integer.toString(pageNumber+1)));
65
50
        }
66
51
        catch (final IOException e)
67
52
        {
68
53
            e.printStackTrace();
69
54
        }
70
55
    }
71
 
 
72
 
    private String encode(final String str)
73
 
    {
74
 
        return str.replace("<", "&lt;").replace(">", "&gt;");
75
 
    }
76
56
}