From a775c96174ba055ba953a2091066d66bf632c026 Mon Sep 17 00:00:00 2001 From: krasimir Date: Wed, 25 May 2016 18:55:47 +0000 Subject: [PATCH] preserve the order of the sentences in phrases.xml in the UI --- .../se/chalmers/phrasebook/backend/Model.java | 26 +++++++++---------- .../phrasebook/backend/XMLParser.java | 21 +++++++-------- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/ui/android/src/se/chalmers/phrasebook/backend/Model.java b/src/ui/android/src/se/chalmers/phrasebook/backend/Model.java index 7ee95064e..606e1a4af 100644 --- a/src/ui/android/src/se/chalmers/phrasebook/backend/Model.java +++ b/src/ui/android/src/se/chalmers/phrasebook/backend/Model.java @@ -3,9 +3,8 @@ package se.chalmers.phrasebook.backend; import android.content.Context; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; +import java.io.*; +import java.util.*; import org.grammaticalframework.pgf.Expr; import org.grammaticalframework.ui.android.R; @@ -33,8 +32,8 @@ public class Model { } phrases = new ArrayList(); - for (String s : parser.getSentencesData().keySet()) { - phrases.add(parser.getSyntaxTree(s)); + for (Map.Entry entry : parser.getSentencesData()) { + phrases.add(parser.getSyntaxTree(entry.getKey())); } } @@ -52,10 +51,10 @@ public class Model { currentPhrase.setSelectedChild(optionIndex, target, childIndex, isAdvanced); } - public ArrayList getSentencesInCurrentPhrasebook() { + public List getSentencesInCurrentPhrasebook() { ArrayList sentences = new ArrayList(); - for (int i = 0; i < phrases.size(); i++) { - sentences.add(parser.getSentencesData().get(phrases.get(i).getId())); + for (Map.Entry entry : parser.getSentencesData()) { + sentences.add(entry.getValue()); } return sentences; } @@ -67,15 +66,14 @@ public class Model { } public String getDescFromPos(int pos) { - return parser.getSentencesData() - .get((String) (parser.getSentencesData().keySet().toArray()[pos])); + return parser.getSentencesData().get(pos).getValue(); } public void setNumeralCurrentPhrase() { - for (int i = 0; i < parser.getSentencesData().values().size(); i++) { - if ((parser.getSentencesData().keySet().toArray()[i]).equals("NNumeral")) { - currentPhrase = parser.getSyntaxTree((String) parser.getSentencesData() - .keySet().toArray()[i]); + for (int i = 0; i < parser.getSentencesData().size(); i++) { + String key = parser.getSentencesData().get(i).getKey(); + if (key.equals("NNumeral")) { + currentPhrase = parser.getSyntaxTree(key); } } } diff --git a/src/ui/android/src/se/chalmers/phrasebook/backend/XMLParser.java b/src/ui/android/src/se/chalmers/phrasebook/backend/XMLParser.java index fd69208c2..48b146b56 100644 --- a/src/ui/android/src/se/chalmers/phrasebook/backend/XMLParser.java +++ b/src/ui/android/src/se/chalmers/phrasebook/backend/XMLParser.java @@ -6,9 +6,8 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; +import java.io.*; +import java.util.*; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -41,20 +40,20 @@ public class XMLParser { } } - public HashMap getSentencesData() { + public List> getSentencesData() { String[] result; - HashMap sentenceMap = new HashMap(); + List> sentences = new ArrayList>(); - NodeList sentences = document.getElementsByTagName("sentence"); - int nbrOfSentences = sentences.getLength(); + NodeList sentencesList = document.getElementsByTagName("sentence"); + int nbrOfSentences = sentencesList.getLength(); for (int i = 0; i < nbrOfSentences; i++) { - String desc = sentences.item(i).getAttributes().getNamedItem("desc").getNodeValue(); - String id = sentences.item(i).getAttributes().getNamedItem("id").getNodeValue(); + String desc = sentencesList.item(i).getAttributes().getNamedItem("desc").getNodeValue(); + String id = sentencesList.item(i).getAttributes().getNamedItem("id").getNodeValue(); if (desc != null && id != null) - sentenceMap.put(id, desc); + sentences.add(new HashMap.SimpleEntry(id, desc)); } - return sentenceMap; + return sentences; } public SyntaxTree getAdvancedOptionSyntaxTree() {