summaryrefslogtreecommitdiff
path: root/src/ui/android
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2015-11-16 14:57:32 +0000
committerkrasimir <krasimir@chalmers.se>2015-11-16 14:57:32 +0000
commit105db47ee4869358e4c7b066ad2947bc5a7681b9 (patch)
tree81b9efa7204fc358c875baa9997f502e957a77e9 /src/ui/android
parent279fdb74b78a7601643a40829c963b9d4b82b1c3 (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.java31
-rw-r--r--src/ui/android/src/org/grammaticalframework/ui/android/Translator.java21
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;
}