Revision: 7547
http://languagetool.svn.sourceforge.net/languagetool/?rev=7547&view=rev
Author: dnaber
Date: 2012-06-28 20:58:57 +0000 (Thu, 28 Jun 2012)
Log Message:
-----------
Wikipedia check: index sub id so we can correctly link the rule; show rule
descriptions instead of ids
Modified Paths:
--------------
trunk/JLanguageTool/src/dev/org/languagetool/dev/wikipedia/DatabaseDumpHandler.java
trunk/ltcommunity/grails-app/controllers/org/languagetool/CorpusMatchController.groovy
trunk/ltcommunity/grails-app/domain/org/languagetool/CorpusMatch.groovy
trunk/ltcommunity/grails-app/views/corpusMatch/list.gsp
Modified:
trunk/JLanguageTool/src/dev/org/languagetool/dev/wikipedia/DatabaseDumpHandler.java
===================================================================
---
trunk/JLanguageTool/src/dev/org/languagetool/dev/wikipedia/DatabaseDumpHandler.java
2012-06-28 20:47:07 UTC (rev 7546)
+++
trunk/JLanguageTool/src/dev/org/languagetool/dev/wikipedia/DatabaseDumpHandler.java
2012-06-28 20:58:57 UTC (rev 7547)
@@ -6,10 +6,7 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
+import java.sql.*;
import java.util.Date;
import java.util.List;
import java.util.Properties;
@@ -17,7 +14,9 @@
import org.languagetool.JLanguageTool;
import org.languagetool.Language;
import org.languagetool.gui.Tools;
+import org.languagetool.rules.Rule;
import org.languagetool.rules.RuleMatch;
+import org.languagetool.rules.patterns.PatternRule;
/**
* Writes result of LanguageTool check to database. Used for
community.languagetool.org.
@@ -64,7 +63,7 @@
private String getProperty(Properties prop, String key) {
final String value = prop.getProperty(key);
if (value == null) {
- throw new RuntimeException("required key '" +key+ "' not found in
properties");
+ throw new RuntimeException("required key '" + key + "' not found in
properties");
}
return value;
}
@@ -73,20 +72,30 @@
protected void handleResult(String title, List<RuleMatch> ruleMatches,
String text, Language language) throws SQLException {
final String sql = "INSERT INTO corpus_match " +
- "(version, language_code, ruleid, message, error_context,
corpus_date, " +
+ "(version, language_code, ruleid, rule_subid, rule_description,
message, error_context, corpus_date, " +
"check_date, sourceuri, is_visible) "+
- "VALUES (0, ?, ?, ?, ?, ?, ?, ?, 1)";
+ "VALUES (0, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)";
final PreparedStatement prepSt = conn.prepareStatement(sql);
try {
+ final java.sql.Date dumpSqlDate = new
java.sql.Date(dumpDate.getTime());
+ final java.sql.Date nowDate = new java.sql.Date(new Date().getTime());
for (RuleMatch match : ruleMatches) {
prepSt.setString(1, language.getShortName());
- prepSt.setString(2, match.getRule().getId());
- prepSt.setString(3, match.getMessage());
- prepSt.setString(4, Tools.getContext(match.getFromPos(),
+ final Rule rule = match.getRule();
+ prepSt.setString(2, rule.getId());
+ if (rule instanceof PatternRule) {
+ final PatternRule patternRule = (PatternRule) rule;
+ prepSt.setString(3, patternRule.getSubId());
+ } else {
+ prepSt.setNull(3, Types.VARCHAR);
+ }
+ prepSt.setString(4, rule.getDescription());
+ prepSt.setString(5, match.getMessage());
+ prepSt.setString(6, Tools.getContext(match.getFromPos(),
match.getToPos(), text, CONTEXT_SIZE, MARKER_START,
MARKER_END));
- prepSt.setDate(5, new java.sql.Date(dumpDate.getTime()));
- prepSt.setDate(6, new java.sql.Date(new Date().getTime()));
- prepSt.setString(7, URL_PREFIX.replaceAll(LANG_MARKER, langCode) +
title);
+ prepSt.setDate(7, dumpSqlDate);
+ prepSt.setDate(8, nowDate);
+ prepSt.setString(9, URL_PREFIX.replaceAll(LANG_MARKER, langCode) +
title);
prepSt.executeUpdate();
}
} finally {
Modified:
trunk/ltcommunity/grails-app/controllers/org/languagetool/CorpusMatchController.groovy
===================================================================
---
trunk/ltcommunity/grails-app/controllers/org/languagetool/CorpusMatchController.groovy
2012-06-28 20:47:07 UTC (rev 7546)
+++
trunk/ltcommunity/grails-app/controllers/org/languagetool/CorpusMatchController.groovy
2012-06-28 20:58:57 UTC (rev 7547)
@@ -56,6 +56,7 @@
projections {
groupProperty("ruleID")
count "ruleID", 'mycount'
+ property("ruleDescription")
}
order 'mycount', 'desc'
}
Modified:
trunk/ltcommunity/grails-app/domain/org/languagetool/CorpusMatch.groovy
===================================================================
--- trunk/ltcommunity/grails-app/domain/org/languagetool/CorpusMatch.groovy
2012-06-28 20:47:07 UTC (rev 7546)
+++ trunk/ltcommunity/grails-app/domain/org/languagetool/CorpusMatch.groovy
2012-06-28 20:58:57 UTC (rev 7547)
@@ -26,8 +26,15 @@
*/
class CorpusMatch {
+ static constraints = {
+ ruleDescription(nullable: true) // nullable because it was introduced
later
+ ruleSubID(nullable: true) // nullable because it was introduced later
+ }
+
String languageCode
String ruleID
+ String ruleSubID
+ String ruleDescription
String message
String sourceURI
String errorContext
Modified: trunk/ltcommunity/grails-app/views/corpusMatch/list.gsp
===================================================================
--- trunk/ltcommunity/grails-app/views/corpusMatch/list.gsp 2012-06-28
20:47:07 UTC (rev 7546)
+++ trunk/ltcommunity/grails-app/views/corpusMatch/list.gsp 2012-06-28
20:58:57 UTC (rev 7547)
@@ -27,11 +27,12 @@
<select name="filter">
<option value="">- all rules -</option>
<g:each in="${matchesByRule}" var="rule">
+ <g:set var="ruleDesc" value="${rule[2]}"/>
<g:if test="${params.filter == rule[0]}">
- <option selected
value="${rule[0].encodeAsHTML()}">${rule[0].encodeAsHTML()}
(${rule[1].encodeAsHTML()} matches)</option>
+ <option selected
value="${rule[0].encodeAsHTML()}">${ruleDesc.encodeAsHTML()}
(${rule[1].encodeAsHTML()} matches)</option>
</g:if>
<g:else>
- <option
value="${rule[0].encodeAsHTML()}">${rule[0].encodeAsHTML()}
(${rule[1].encodeAsHTML()} matches)</option>
+ <option
value="${rule[0].encodeAsHTML()}">${ruleDesc.encodeAsHTML()}
(${rule[1].encodeAsHTML()} matches)</option>
</g:else>
</g:each>
</select>
@@ -56,7 +57,7 @@
<span class="additional">URI: <g:link
class="additional"
url="${match.sourceURI}">${match.sourceURI.encodeAsHTML()}</g:link></span>
<span class="additional"> - check date:
${StringTools.formatDate(match.checkDate).encodeAsHTML()}
- <g:link controller="rule" action="show"
id="${match.ruleID}"
-
params="${[lang: lang, textToCheck: cleanText]}"><span
class="additional"><g:message
code="ltc.check.visit.rule"/></span></g:link></span>
+
params="${[lang: lang, subId: match.ruleSubID, textToCheck: cleanText]}"><span
class="additional"><g:message
code="ltc.check.visit.rule"/></span></g:link></span>
</td>
</tr>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs