annotate software/mpdl-services-new/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/lt/GetDictionaryEntries.java @ 25:e9fe3186670c default tip

letzter Stand eingecheckt
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Tue, 21 May 2013 10:19:32 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 package de.mpg.mpiwg.berlin.mpdl.servlets.lt;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
2
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 import java.io.IOException;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
4 import java.io.PrintWriter;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 import java.util.ArrayList;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
6 import java.util.Arrays;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
7 import java.util.Collections;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
8 import java.util.Date;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
9
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
10 import javax.servlet.ServletConfig;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
11 import javax.servlet.ServletException;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 import javax.servlet.http.HttpServlet;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
13 import javax.servlet.http.HttpServletRequest;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 import javax.servlet.http.HttpServletResponse;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
15
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 import org.apache.commons.lang3.StringEscapeUtils;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
17
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
18 import de.mpg.mpiwg.berlin.mpdl.exception.ApplicationException;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
19 import de.mpg.mpiwg.berlin.mpdl.lt.dict.app.Lexica;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
20 import de.mpg.mpiwg.berlin.mpdl.lt.dict.app.Lexicon;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
21 import de.mpg.mpiwg.berlin.mpdl.lt.dict.app.LexiconEntry;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
22 import de.mpg.mpiwg.berlin.mpdl.lt.dict.db.LexHandler;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
23 import de.mpg.mpiwg.berlin.mpdl.lt.general.Language;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
24 import de.mpg.mpiwg.berlin.mpdl.lt.morph.app.Form;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
25 import de.mpg.mpiwg.berlin.mpdl.lt.morph.app.Lemma;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 import de.mpg.mpiwg.berlin.mpdl.lt.text.norm.Normalizer;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
27 import de.mpg.mpiwg.berlin.mpdl.servlets.util.ServletUtil;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
28
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
29 public class GetDictionaryEntries extends HttpServlet {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
30 private static final long serialVersionUID = 1L;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
31 private LexHandler lexHandler;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
32
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
33 public GetDictionaryEntries() {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
34 super();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
35 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
36
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
37 public void init(ServletConfig config) throws ServletException {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
38 super.init(config);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
39 try {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
40 lexHandler = LexHandler.getInstance();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
41 } catch (ApplicationException e) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
42 throw new ServletException(e);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
43 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
44 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
45
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
46 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
47 Date begin = new Date();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
48 request.setCharacterEncoding("utf-8");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
49 response.setCharacterEncoding("utf-8");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
50 String query = request.getParameter("query");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
51 String queryDisplay = request.getParameter("queryDisplay");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
52 String language = request.getParameter("language");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
53 String inputType = request.getParameter("inputType");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
54 String outputFormat = request.getParameter("outputFormat");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
55 String[] outputTypesArray = request.getParameterValues("outputType");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
56 String dictionary = request.getParameter("dictionary");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
57 String normalization = request.getParameter("normalization");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
58 String normalizationType = request.getParameter("normalizationType");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
59 String resultPageNumber = request.getParameter("resultPageNumber");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
60 String resultPageSize = request.getParameter("resultPageSize");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
61 if (query == null)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
62 query = "a*";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
63 boolean isRangeQuery = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
64 if (query.endsWith("*"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
65 isRangeQuery = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
66 if (queryDisplay == null)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
67 queryDisplay = query;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
68 if (language == null)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
69 language = "eng";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
70 if (inputType == null || ! (inputType.equals("form") || inputType.equals("lemma")))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
71 inputType = "form";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
72 if (outputFormat == null || ! (outputFormat.equals("xml") || outputFormat.equals("html") || outputFormat.equals("htmlFragment")))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
73 outputFormat = "xml";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
74 ArrayList<String> outputTypes = new ArrayList<String>();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
75 if (outputTypesArray == null) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
76 outputTypes.add("allCompact");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
77 } else if (isRangeQuery) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
78 outputTypes.add("dictCompact");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
79 } else {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
80 outputTypes = new ArrayList<String>(Arrays.asList(outputTypesArray));
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
81 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
82 if (normalization == null || ! (normalization.equals("none") || normalization.equals("reg") || normalization.equals("reg norm")))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
83 normalization = "norm";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
84 if (normalizationType == null || ! (normalizationType.equals("display") || normalizationType.equals("dictionary")))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
85 normalizationType = "dictionary";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
86 String xmlDict = "all";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
87 if (dictionary != null)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
88 xmlDict = dictionary;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
89 int pageNumber = 1;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
90 int pageSize = 50;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
91 if (resultPageNumber != null)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
92 pageNumber = new Integer(resultPageNumber);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
93 if (resultPageSize != null)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
94 pageSize = new Integer(resultPageSize);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
95 String xmlQueryString = "<query>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
96 xmlQueryString = xmlQueryString + "<name>" + query + "</name>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
97 xmlQueryString = xmlQueryString + "<display>" + queryDisplay + "</display>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
98 xmlQueryString = xmlQueryString + "<language>" + language + "</language>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
99 xmlQueryString = xmlQueryString + "<inputType>" + inputType + "</inputType>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
100 xmlQueryString = xmlQueryString + "<outputFormat>" + outputFormat + "</outputFormat>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
101 xmlQueryString = xmlQueryString + "<outputTypes>" + outputTypes + "</outputTypes>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
102 xmlQueryString = xmlQueryString + "<dictionary>" + xmlDict + "</dictionary>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
103 xmlQueryString = xmlQueryString + "<normalization>" + normalization + "</normalization>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
104 xmlQueryString = xmlQueryString + "<normalizationType>" + normalizationType + "</normalizationType>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
105 if (isRangeQuery) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
106 xmlQueryString = xmlQueryString + "<resultPageNumber>" + pageNumber + "</resultPageNumber>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
107 xmlQueryString = xmlQueryString + "<resultPageSize>" + pageSize + "</resultPageSize>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
108 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
109 xmlQueryString = xmlQueryString + "</query>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
110 try {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
111 if (outputFormat.equals("xml"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
112 response.setContentType("text/xml");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
113 else if (outputFormat.equals("html") || outputFormat.equals("htmlFragment"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
114 response.setContentType("text/html");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
115 else
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
116 response.setContentType("text/xml");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
117 PrintWriter out = response.getWriter();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
118 if (query == null || query.isEmpty()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
119 out.print("request parameter \"query\" is empty. Please specify a query.");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
120 out.close();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
121 return;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
122 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
123 ArrayList<Lemma> lemmas = null;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
124 ArrayList<Lexicon> dictionaries = null;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
125 if (isRangeQuery) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
126 String queryTmp = query.substring(0, query.length() - 1); // without last star
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
127 if (dictionary != null)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
128 dictionaries = lexHandler.getLexEntriesByLexiconBeginningWith(dictionary, queryTmp, pageNumber, pageSize);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
129 else
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
130 dictionaries = lexHandler.getLexEntriesBeginningWith(language, queryTmp, pageNumber, pageSize);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
131 } else {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
132 String lang = language;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
133 if (dictionary != null) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
134 Lexicon lexicon = Lexica.getInstance().getLexicon(dictionary);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
135 if (lexicon != null)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
136 lang = lexicon.getSourceLanguage();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
137 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
138 int normMode = Normalizer.DICTIONARY;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
139 if (normalization.equals("none"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
140 normMode = Normalizer.NONE;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
141 else if (normalizationType.equals("display"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
142 normMode = Normalizer.DISPLAY;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
143 lemmas = lexHandler.getLemmas(query, inputType, lang, normMode, true);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
144 dictionaries = lexHandler.getLexEntries(lemmas, lang, dictionary, query);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
145 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
146 String baseUrl = ServletUtil.getInstance().getBaseUrl(request);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
147 Date end = new Date();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
148 String elapsedTime = String.valueOf(end.getTime() - begin.getTime());
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
149 String result = "";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
150 if (outputFormat == null || outputFormat.equals("xml"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
151 result = createXmlOutputString(query, lemmas, dictionaries, outputTypes, baseUrl, xmlQueryString, elapsedTime);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
152 else if (outputFormat.equals("html") || outputFormat.equals("htmlFragment"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
153 result = createHtmlOutputString(query, queryDisplay, language, lemmas, dictionaries, pageNumber, pageSize, isRangeQuery, outputFormat, outputTypes, elapsedTime);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
154 else
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
155 result = createXmlOutputString(query, lemmas, dictionaries, outputTypes, baseUrl, xmlQueryString, elapsedTime);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
156 out.print(result);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
157 out.close();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
158 } catch (ApplicationException e) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
159 throw new ServletException(e);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
160 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
161 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
162
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
163 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
164 doGet(request, response);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
165 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
166
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
167 private String createXmlOutputString(String query, ArrayList<Lemma> lemmas, ArrayList<Lexicon> lexicons, ArrayList<String> outputTypes, String baseUrl, String xmlQueryString, String elapsedTime) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
168 boolean outputTypeMorphCompact = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
169 if (outputTypes.contains("allCompact") || outputTypes.contains("morphCompact"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
170 outputTypeMorphCompact = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
171 boolean outputTypeMorphFull = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
172 if (outputTypes.contains("allFull") || outputTypes.contains("morphFull"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
173 outputTypeMorphFull = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
174 boolean outputTypeDictCompact = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
175 if (outputTypes.contains("allCompact") || outputTypes.contains("dictCompact"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
176 outputTypeDictCompact = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
177 boolean outputTypeDictFull = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
178 if (outputTypes.contains("allFull") || outputTypes.contains("dictFull"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
179 outputTypeDictFull = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
180 boolean outputTypeWikiCompact = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
181 if (outputTypes.contains("allCompact") || outputTypes.contains("wikiCompact"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
182 outputTypeWikiCompact = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
183 boolean outputTypeWikiFull = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
184 if (outputTypes.contains("allFull") || outputTypes.contains("wikiFull"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
185 outputTypeWikiFull = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
186 String result = "<result>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
187 result = result + "<provider>" + "MPIWG MPDL language technology service (see: " + "" + baseUrl + "), Max Planck Institute for the History of Science, Berlin." + "</provider>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
188 result = result + xmlQueryString;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
189 result = result + "<elapsed-time-ms>" + elapsedTime + "</elapsed-time-ms>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
190 if ((outputTypeMorphCompact || outputTypeMorphFull) && lemmas != null && ! lemmas.isEmpty()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
191 result = result + "<morphology>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
192 for (int i=0; i<lemmas.size(); i++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
193 Lemma lemma = lemmas.get(i);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
194 String lemmaName = lemma.getLemmaName();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
195 String language = lemma.getLanguage();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
196 result = result + "<lemma>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
197 result = result + "<name>" + lemmaName + "</name>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
198 if (outputTypeMorphFull) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
199 String lemmaProvider = lemma.getProvider();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
200 result = result + "<provider>" + lemmaProvider + "</provider>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
201 result = result + "<language>" + language + "</language>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
202 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
203 if (Language.getInstance().isArabic(language) || Language.getInstance().isLatin(language)) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
204 String remoteUrl = "http://www.perseus.tufts.edu/hopper/morph?l=" + lemmaName + "&amp;la=" + language;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
205 result = result + "<remoteUrl>" + remoteUrl + "</remoteUrl>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
206 } else if (Language.getInstance().isGreek(language)) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
207 String remoteUrl = "http://www.perseus.tufts.edu/hopper/morph?l=" + lemmaName + "&amp;la=" + "greek";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
208 result = result + "<remoteUrl>" + remoteUrl + "</remoteUrl>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
209 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
210 if (outputTypeMorphFull) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
211 ArrayList<Form> forms = lemma.getFormsList();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
212 Collections.sort(forms);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
213 if (forms != null && ! forms.isEmpty()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
214 result = result + "<forms>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
215 for (int j=0; j<forms.size(); j++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
216 result = result + "<form>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
217 Form f = forms.get(j);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
218 String formName = f.getFormName();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
219 String formProvider = f.getProvider();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
220 result = result + "<provider>" + formProvider + "</provider>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
221 result = result + "<language>" + language + "</language>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
222 result = result + "<name>" + formName + "</name>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
223 result = result + "</form>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
224 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
225 result = result + "</forms>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
226 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
227 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
228 result = result + "</lemma>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
229 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
230 result = result + "</morphology>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
231 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
232 if ((outputTypeDictCompact || outputTypeDictFull) && lexicons != null) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
233 result = result + "<dictionaries>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
234 for (int i=0; i<lexicons.size(); i++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
235 Lexicon lexicon = lexicons.get(i);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
236 if (outputTypeDictFull)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
237 result = result + lexicon.toXmlString();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
238 else if (outputTypeDictCompact)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
239 result = result + lexicon.toXmlStringCompact();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
240 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
241 result = result + "</dictionaries>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
242 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
243 if ((outputTypeWikiCompact || outputTypeWikiFull) && lemmas != null && ! lemmas.isEmpty()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
244 result = result + "<wikipedia>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
245 String language = null;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
246 for (int i=0; i<lemmas.size(); i++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
247 Lemma lemma = lemmas.get(i);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
248 String lemmaName = lemma.getLemmaName();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
249 language = Language.getInstance().getLanguageId(lemma.getLanguage());
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
250 result = result + "<article>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
251 result = result + "<name>" + lemmaName + "</name>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
252 String wikiHrefExact = "http://" + language + ".wikipedia.org/wiki/" + lemmaName;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
253 String wikiHrefSearch = "http://" + language + ".wikipedia.org/wiki/index.php?search=" + lemmaName;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
254 result = result + "<remoteUrl>" + wikiHrefExact + "</remoteUrl>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
255 result = result + "<remoteUrlSearch>" + wikiHrefSearch + "</remoteUrlSearch>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
256 result = result + "</article>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
257 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
258 if (language != null && Language.getInstance().isGerman(language) && query != null) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
259 String[] queryFormNames = query.split(" ");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
260 for (int j=0; j<queryFormNames.length; j++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
261 String queryFormName = queryFormNames[j];
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
262 result = result + "<article>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
263 result = result + "<name>" + queryFormName + "</name>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
264 String wikiHrefExact = "http://" + language + ".wikipedia.org/wiki/" + queryFormName;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
265 String wikiHrefSearch = "http://" + language + ".wikipedia.org/wiki/index.php?search=" + queryFormName;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
266 result = result + "<remoteUrl>" + wikiHrefExact + "</remoteUrl>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
267 result = result + "<remoteUrlSearch>" + wikiHrefSearch + "</remoteUrlSearch>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
268 result = result + "</article>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
269 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
270 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
271 result = result + "</wikipedia>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
272 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
273 result = result + "</result>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
274 return result;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
275 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
276
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
277 private String createHtmlOutputString(String query, String queryDisplay, String language, ArrayList<Lemma> lemmas, ArrayList<Lexicon> lexicons, int pageNumber, int pageSize, boolean isRangeQuery, String outputFormat, ArrayList<String> outputTypes, String elapsedTime) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
278 boolean outputTypeMorphCompact = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
279 if (outputTypes.contains("allCompact") || outputTypes.contains("morphCompact"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
280 outputTypeMorphCompact = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
281 boolean outputTypeMorphFull = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
282 if (outputTypes.contains("allFull") || outputTypes.contains("morphFull"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
283 outputTypeMorphFull = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
284 boolean outputTypeDictCompact = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
285 if (outputTypes.contains("allCompact") || outputTypes.contains("dictCompact"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
286 outputTypeDictCompact = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
287 boolean outputTypeDictFull = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
288 if (outputTypes.contains("allFull") || outputTypes.contains("dictFull"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
289 outputTypeDictFull = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
290 boolean outputTypeWikiCompact = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
291 if (outputTypes.contains("allCompact") || outputTypes.contains("wikiCompact"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
292 outputTypeWikiCompact = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
293 boolean outputTypeWikiFull = false;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
294 if (outputTypes.contains("allFull") || outputTypes.contains("wikiFull"))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
295 outputTypeWikiFull = true;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
296 String result = "";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
297 result = result + "<html>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
298 result = result + "<head>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
299 result = result + "<title>WordInfo for: \"" + queryDisplay + "\"</title>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
300 result = result + "<link rel=\"stylesheet\" type=\"text/css\" href=\"/mpiwg-mpdl-cms-web/css/getDictionaryEntries.css\"/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
301 result = result + getJavascriptFunctions();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
302 result = result + "</head>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
303 result = result + "<body class=\"body\">";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
304 result = result + "<table align=\"right\" valign=\"top\">";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
305 result = result + "<td>[<i>This is a MPIWG MPDL language technology service</i>] <a href=\"/mpiwg-mpdl-cms-web/index.html\"><img src=\"/mpiwg-mpdl-cms-web/images/info.png\" valign=\"bottom\" width=\"15\" height=\"15\" border=\"0\" alt=\"MPIWG MPDL language technology service\"/></a></td>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
306 result = result + "</table>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
307 result = result + "<p/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
308 result = result + "<div class=\"title\">WordInfo</div>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
309
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
310 result = result + "<form name=\"getDictionaryEntries\" action=\"GetDictionaryEntries\" method=\"get\">";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
311 result = result + "Query: <input name=\"query\" class=\"query\" type=\"text\" size=\"20\" value=\"" + query + "\"/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
312 String htmlSelectBox = Language.getInstance().getHtmlSelectBox(language);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
313 result = result + " Language: " + htmlSelectBox;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
314 result = result + "<input type=\"hidden\" name=\"outputFormat\" value=\"" + outputFormat + "\"/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
315 for (int i=0; i<outputTypes.size(); i++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
316 String type = outputTypes.get(i);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
317 result = result + "<input type=\"hidden\" name=\"outputType\" value=\"" + type + "\"/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
318 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
319 result = result + " <button type=\"submit\" onclick=\"var query = document.getDictionaryEntries.query.value; if(query.substring(query.length-1, query.length) == '*') {document.getDictionaryEntries.outputType.value = 'dictCompact';}\">Query</button>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
320 result = result + "</form>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
321 result = result + "<hr/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
322
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
323 if ((outputTypeMorphCompact || outputTypeMorphFull) && lemmas != null && ! lemmas.isEmpty()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
324 result = result + "<span class=\"inputType\">Morphology</span>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
325 result = result + "<span class=\"tree\">";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
326 result = result + "<ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
327 result = result + "<li>" + "<b>" + "Lemmata" + "</b>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
328 result = result + "<ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
329 for (int i=0; i<lemmas.size(); i++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
330 Lemma lemma = lemmas.get(i);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
331 String lemmaName = lemma.getLemmaName();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
332 String providerText = "";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
333 String externalLinkText = "";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
334 String formsText = "";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
335 if (outputTypeMorphFull) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
336 String lemmaProvider = lemma.getProvider();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
337 providerText = " (data provider: " + lemmaProvider + ")";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
338 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
339 if (Language.getInstance().isArabic(language) || Language.getInstance().isLatin(language))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
340 externalLinkText = " (external link: <a href=\"http://www.perseus.tufts.edu/hopper/morph?l=" + lemmaName + "&amp;la=" + language + "\">" + lemmaName + "</a>)";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
341 else if (Language.getInstance().isGreek(language))
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
342 externalLinkText = " (external link: <a href=\"http://www.perseus.tufts.edu/hopper/morph?l=" + lemmaName + "&amp;la=" + "greek" + "\">" + lemmaName + "</a>)";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
343 ArrayList<Form> forms = lemma.getFormsList();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
344 Collections.sort(forms);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
345 if (forms != null && ! forms.isEmpty()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
346 formsText = formsText + "<ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
347 formsText = formsText + "<b>" + "Forms: " + "</b>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
348 for (int j=0; j<forms.size(); j++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
349 Form f = forms.get(j);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
350 String formName = f.getFormName();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
351 String formProvider = f.getProvider();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
352 formsText = formsText + formName + " (data provider: " + formProvider + "), ";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
353 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
354 formsText = formsText.substring(0, formsText.length() - 2); // without last comma and blank
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
355 formsText = formsText + "</ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
356 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
357 if (outputTypeMorphFull) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
358 result = result + "<li><input type=\"checkbox\" checked=\"checked\"/><label>" + lemmaName + providerText + externalLinkText + "</label>" + formsText + "</li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
359 } else if (outputTypeMorphCompact) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
360 result = result + "<li><input type=\"checkbox\"/><label>" + "<a href=\"GetDictionaryEntries?query=" + lemmaName + "&language=" + language + "&inputType=lemma" + "&outputFormat=html" + "&outputType=morphFull" + "\">" + lemmaName + "</a>" + providerText + externalLinkText + "</label>" + formsText + "</li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
361 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
362 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
363 result = result + "</ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
364 result = result + "</li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
365 result = result + "</ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
366 result = result + "</span>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
367 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
368 if ((outputTypeDictCompact || outputTypeDictFull) && lexicons != null && ! lexicons.isEmpty()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
369 if (isRangeQuery) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
370 int pageNumberUp = 1;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
371 if (pageNumber > 1)
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
372 pageNumberUp = pageNumber - 1;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
373 int pageNumberDown = pageNumber + 1;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
374 int from = (pageNumber * pageSize) - pageSize + 1;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
375 int to = pageNumber * pageSize;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
376 result = result + "<table align=\"right\">";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
377 result = result + "<tr>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
378 result = result + "<td valign=\"middle\">Page: </td>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
379 result = result + "<td valign=\"middle\"><a href=\"/mpiwg-mpdl-cms-web/lt/GetDictionaryEntries?query=" + query + "&amp;language=" + language + "&amp;resultPageNumber=" + pageNumberUp + "&amp;outputFormat=html\"><img alt=\"page up\" src=\"/mpiwg-mpdl-cms-web/images/left.gif\" height=\"20\" width=\"20\"></a></td>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
380 result = result + "<td valign=\"middle\">" + pageNumber + "</td>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
381 result = result + "<td valign=\"middle\"><a href=\"/mpiwg-mpdl-cms-web/lt/GetDictionaryEntries?query=" + query + "&amp;language=" + language + "&amp;resultPageNumber=" + pageNumberDown + "&amp;outputFormat=html\"><img alt=\"page down\" src=\"/mpiwg-mpdl-cms-web/images/right.gif\" height=\"20\" width=\"20\"></a></td>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
382 result = result + "<td valign=\"middle\">(" + from + " - " + to + ")</td>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
383 result = result + "</tr>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
384 result = result + "</table>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
385 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
386 result = result + "<span class=\"inputType\">Dictionary</span>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
387 result = result + "<span class=\"tree\">";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
388 result = result + "<ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
389 for (int i=0; i<lexicons.size(); i++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
390 Lexicon lexicon = lexicons.get(i);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
391 result = result + "<li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
392 result = result + "<b>" + lexicon.getDescription() + "</b>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
393 result = result + "<ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
394 ArrayList<LexiconEntry> entries = lexicon.getEntries();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
395 for (int j=0; j<entries.size(); j++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
396 String entryContent = "";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
397 LexiconEntry entry = entries.get(j);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
398 if (lexicon.isLocalLexicon()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
399 if (entry.isXmlValid()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
400 String repairedEntry = entry.getRepairedEntry();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
401 repairedEntry = repairedEntry.replaceAll("<repaired-entry>", "");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
402 repairedEntry = repairedEntry.replaceAll("</repaired-entry>", "");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
403 entryContent = entryContent + repairedEntry; // valid unicode content of the original entry
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
404 } else {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
405 entryContent = entryContent + "[Remark: <i> this dictionary entry has no valid XML/HTML content in database so a text version of this entry is shown.</i>]: <br/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
406 String originalEntry = entry.getOriginalEntry();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
407 originalEntry = originalEntry.replaceAll("<original-entry>", "");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
408 originalEntry = originalEntry.replaceAll("</original-entry>", "");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
409 originalEntry = StringEscapeUtils.escapeXml(originalEntry); // create text version of the invalid xml content
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
410 entryContent = entryContent + originalEntry;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
411 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
412 if (entry.getRemoteUrl() != null) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
413 entryContent = entryContent + "<div>(external link: <a href=\"" + entry.getRemoteUrl() + "\">" + entry.getFormName() + "</a>)</div>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
414 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
415 } else {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
416 if (entry.getRemoteUrl() != null) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
417 entryContent = entryContent + "external link: <a href=\"" + entry.getRemoteUrl() + "\">" + entry.getFormName() + "</a>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
418 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
419 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
420 String formName = entry.getFormName();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
421 String dictName = lexicon.getName();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
422 if (outputTypeDictFull) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
423 result = result + "<li><input type=\"checkbox\" checked=\"checked\"/><label><b>" + formName + "</b></label><ul><li>" + entryContent + "</li></ul></li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
424 } else if (outputTypeDictCompact) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
425 result = result + "<li><input type=\"checkbox\"/><label>" + "<a href=\"GetDictionaryEntries?query=" + formName + "&language=" + language + "&dictionary=" + dictName + "&inputType=lemma" + "&outputFormat=html" + "&outputType=dictFull" + "\">" + formName + "</a>" + "</label><ul><li>" + entryContent + "</li></ul></li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
426 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
427 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
428 result = result + "</ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
429 result = result + "</li>"; // lexicon entry
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
430 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
431 result = result + "</ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
432 result = result + "</span>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
433 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
434 if ((outputTypeWikiCompact || outputTypeWikiFull) && lemmas != null && ! lemmas.isEmpty()) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
435 String langId = Language.getInstance().getLanguageId(language);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
436 String wikiUrl = langId + ".wikipedia.org";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
437 result = result + "<span class=\"inputType\">Wikipedia</span>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
438 result = result + "<span class=\"tree\">";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
439 result = result + "<ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
440 result = result + "<li>" + "<b>" + wikiUrl + "</b>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
441 result = result + "<ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
442 for (int i=0; i<lemmas.size(); i++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
443 Lemma lemma = lemmas.get(i);
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
444 String lemmaName = lemma.getLemmaName();
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
445 String wikiHrefExact = "http://" + wikiUrl + "/wiki/" + lemmaName;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
446 String wikiHrefSearch = "http://" + wikiUrl + "/wiki/index.php?search=" + lemmaName;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
447 result = result + "<li><input type=\"checkbox\" checked=\"checked\"/><label>" + "External link: <a href=\"" + wikiHrefExact + "\">" + lemmaName + "</a> (or search for <a href=\"" + wikiHrefSearch + "\">" + lemmaName + "</a>)" + "</label>" + "</li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
448 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
449 if (language != null && Language.getInstance().isGerman(language) && query != null) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
450 String[] queryFormNames = query.split(" ");
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
451 for (int j=0; j<queryFormNames.length; j++) {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
452 String queryFormName = queryFormNames[j];
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
453 result = result + "<li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
454 String wikiHrefExact = "http://" + wikiUrl + "/wiki/" + queryFormName;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
455 String wikiHrefSearch = "http://" + wikiUrl + "/wiki/index.php?search=" + queryFormName;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
456 result = result + "<li><input type=\"checkbox\" checked=\"checked\"/><label>" + "External link: <a href=\"" + wikiHrefExact + "\">" + queryFormName + "</a> (or search for <a href=\"" + wikiHrefSearch + "\">" + queryFormName + "</a>)" + "</label>" + "</li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
457 result = result + "</li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
458 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
459 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
460 result = result + "</ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
461 result = result + "</li>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
462 result = result + "</ul>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
463 result = result + "</span>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
464 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
465 result = result + "<p/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
466 result = result + "[* external links may not function]";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
467 result = result + "<hr/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
468 result = result + "<p/>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
469 result = result + "Elapsed time: " + elapsedTime + " ms, see the <a href=\"/mpiwg-mpdl-cms-web/index.html\">service description</a> of this page, if you find a bug <a href=\"https://it-dev.mpiwg-berlin.mpg.de/tracs/mpdl-project-software/newticket\">let us know</a>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
470 result = result + "</body>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
471 result = result + "</html>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
472 return result;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
473 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
474
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
475 private String getJavascriptFunctions() {
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
476 String result = "<script type=\"text/javascript\">";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
477 result = result + "<!-- ";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
478 result = result + "function strEndsWith(str, suffix) {";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
479 result = result + " return str.match(suffix + \"$\") == suffix;";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
480 result = result + "}";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
481 result = result + " -->";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
482 result = result + "</script>";
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
483 return result;
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
484 }
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
485 }