diff options
| author | krasimir <krasimir@chalmers.se> | 2015-11-16 14:57:32 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2015-11-16 14:57:32 +0000 |
| commit | 105db47ee4869358e4c7b066ad2947bc5a7681b9 (patch) | |
| tree | 81b9efa7204fc358c875baa9997f502e957a77e9 /src/ui/android | |
| parent | 279fdb74b78a7601643a40829c963b9d4b82b1c3 (diff) | |
now the Documentation module contains a category Definition which is used to generate definitions and examples for words in the App.
Diffstat (limited to 'src/ui/android')
| -rw-r--r-- | src/ui/android/src/org/grammaticalframework/ui/android/SemanticGraphManager.java | 31 | ||||
| -rw-r--r-- | src/ui/android/src/org/grammaticalframework/ui/android/Translator.java | 21 |
2 files changed, 37 insertions, 15 deletions
diff --git a/src/ui/android/src/org/grammaticalframework/ui/android/SemanticGraphManager.java b/src/ui/android/src/org/grammaticalframework/ui/android/SemanticGraphManager.java index 19080dfef..0d5d5e227 100644 --- a/src/ui/android/src/org/grammaticalframework/ui/android/SemanticGraphManager.java +++ b/src/ui/android/src/org/grammaticalframework/ui/android/SemanticGraphManager.java @@ -76,22 +76,39 @@ public class SemanticGraphManager implements Closeable { } } - public Expr getGloss(Expr lemma) { - Expr obj = null; + public Expr getDefinition(Expr lemma, boolean withExample) { + Expr gloss = null; + Expr example = null; try { createDatabaseFromAssets(); - TripleResult res = mDB.queryTriple(lemma, Expr.readExpr("gloss"), null); - if (res.hasNext()) { - obj = res.getObject(); + + { + TripleResult res = mDB.queryTriple(lemma, Expr.readExpr("gloss"), null); + if (res.hasNext()) { + gloss = res.getObject(); + } + res.close(); + } + + if (withExample) { + TripleResult res = mDB.queryTriple(lemma, Expr.readExpr("example"), null); + if (res.hasNext()) { + example = res.getObject(); + } + res.close(); } - res.close(); } catch (IOException e) { // nothing } catch (SGError e) { // nothing } - return obj; + if (gloss == null) + return null; + else if (example == null) + return new Expr("MkDefinition", gloss); + else + return new Expr("MkDefinitionEx", gloss, example); } } diff --git a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java index aaae8368f..e6d5362f3 100644 --- a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java +++ b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java @@ -367,26 +367,31 @@ public class Translator { } public String getInflectionTable(String lemma) { - Expr lemmaExpr = Expr.readExpr(lemma); - Expr gloss = mSGManager.getGloss(lemmaExpr); - Expr empty = Expr.readExpr("\"\""); + boolean withExample = + (getSourceLanguage().getLangCode().equals("en-US") || + getTargetLanguage().getLangCode().equals("en-US")); + Expr def = + mSGManager.getDefinition(Expr.readExpr(lemma), withExample); Concr targetLang = getTargetConcr(); String cat = getGrammar().getFunctionType(lemma).getCategory(); if (targetLang.hasLinearization(lemma) && targetLang.hasLinearization("Inflection"+cat)) { - if (gloss == null) - gloss = empty; + if (def == null) + def = new Expr("NoDefinition"); - Expr e = new Expr("MkDocument", gloss, Expr.readExpr("Inflection"+cat+" "+lemma), empty); + Expr e = new Expr("MkDocument", + def, + Expr.readExpr("Inflection"+cat+" "+lemma), + Expr.readExpr("\"\"")); String html = "<html><head><meta charset=\"UTF-8\"/></head><body>" + targetLang.linearize(e) + "</body>"; return html; - } else if (gloss != null) { - return "<p style=\"font-size:20px\">"+targetLang.linearize(gloss)+"</p>"; + } else if (def != null) { + return targetLang.linearize(def); } else { return null; } |
