preserve the order of the sentences in phrases.xml in the UI

This commit is contained in:
krasimir
2016-05-25 18:55:47 +00:00
parent 19c22c9020
commit a775c96174
2 changed files with 22 additions and 25 deletions

View File

@@ -3,9 +3,8 @@ package se.chalmers.phrasebook.backend;
import android.content.Context; import android.content.Context;
import java.io.IOException; import java.io.*;
import java.io.InputStream; import java.util.*;
import java.util.ArrayList;
import org.grammaticalframework.pgf.Expr; import org.grammaticalframework.pgf.Expr;
import org.grammaticalframework.ui.android.R; import org.grammaticalframework.ui.android.R;
@@ -33,8 +32,8 @@ public class Model {
} }
phrases = new ArrayList<SyntaxTree>(); phrases = new ArrayList<SyntaxTree>();
for (String s : parser.getSentencesData().keySet()) { for (Map.Entry<String,String> entry : parser.getSentencesData()) {
phrases.add(parser.getSyntaxTree(s)); phrases.add(parser.getSyntaxTree(entry.getKey()));
} }
} }
@@ -52,10 +51,10 @@ public class Model {
currentPhrase.setSelectedChild(optionIndex, target, childIndex, isAdvanced); currentPhrase.setSelectedChild(optionIndex, target, childIndex, isAdvanced);
} }
public ArrayList<String> getSentencesInCurrentPhrasebook() { public List<String> getSentencesInCurrentPhrasebook() {
ArrayList<String> sentences = new ArrayList<String>(); ArrayList<String> sentences = new ArrayList<String>();
for (int i = 0; i < phrases.size(); i++) { for (Map.Entry<String,String> entry : parser.getSentencesData()) {
sentences.add(parser.getSentencesData().get(phrases.get(i).getId())); sentences.add(entry.getValue());
} }
return sentences; return sentences;
} }
@@ -67,15 +66,14 @@ public class Model {
} }
public String getDescFromPos(int pos) { public String getDescFromPos(int pos) {
return parser.getSentencesData() return parser.getSentencesData().get(pos).getValue();
.get((String) (parser.getSentencesData().keySet().toArray()[pos]));
} }
public void setNumeralCurrentPhrase() { public void setNumeralCurrentPhrase() {
for (int i = 0; i < parser.getSentencesData().values().size(); i++) { for (int i = 0; i < parser.getSentencesData().size(); i++) {
if ((parser.getSentencesData().keySet().toArray()[i]).equals("NNumeral")) { String key = parser.getSentencesData().get(i).getKey();
currentPhrase = parser.getSyntaxTree((String) parser.getSentencesData() if (key.equals("NNumeral")) {
.keySet().toArray()[i]); currentPhrase = parser.getSyntaxTree(key);
} }
} }
} }

View File

@@ -6,9 +6,8 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import java.io.IOException; import java.io.*;
import java.io.InputStream; import java.util.*;
import java.util.HashMap;
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilderFactory;
@@ -41,20 +40,20 @@ public class XMLParser {
} }
} }
public HashMap<String, String> getSentencesData() { public List<Map.Entry<String, String>> getSentencesData() {
String[] result; String[] result;
HashMap<String, String> sentenceMap = new HashMap<String, String>(); List<Map.Entry<String, String>> sentences = new ArrayList<Map.Entry<String, String>>();
NodeList sentences = document.getElementsByTagName("sentence"); NodeList sentencesList = document.getElementsByTagName("sentence");
int nbrOfSentences = sentences.getLength(); int nbrOfSentences = sentencesList.getLength();
for (int i = 0; i < nbrOfSentences; i++) { for (int i = 0; i < nbrOfSentences; i++) {
String desc = sentences.item(i).getAttributes().getNamedItem("desc").getNodeValue(); String desc = sentencesList.item(i).getAttributes().getNamedItem("desc").getNodeValue();
String id = sentences.item(i).getAttributes().getNamedItem("id").getNodeValue(); String id = sentencesList.item(i).getAttributes().getNamedItem("id").getNodeValue();
if (desc != null && id != null) if (desc != null && id != null)
sentenceMap.put(id, desc); sentences.add(new HashMap.SimpleEntry<String,String>(id, desc));
} }
return sentenceMap; return sentences;
} }
public SyntaxTree getAdvancedOptionSyntaxTree() { public SyntaxTree getAdvancedOptionSyntaxTree() {