From 0031276944d198cb79df79fd94d55c590cc4202f Mon Sep 17 00:00:00 2001 From: bjorn Date: Sun, 21 Sep 2008 20:37:27 +0000 Subject: [PATCH] Added iterable() method for nicer iteration through GF method results. (GWT) --- .../cs/gf/gwt_translate/client/GF.java | 25 +++++++++++++++++++ .../cs/gf/gwt_translate/client/Translate.java | 6 ++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/GF.java b/src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/GF.java index 297c99894..774b89082 100644 --- a/src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/GF.java +++ b/src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/GF.java @@ -10,7 +10,9 @@ import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONParser; import java.util.Set; +import java.util.Iterator; import java.util.List; +import java.util.NoSuchElementException; import java.util.ArrayList; public class GF { @@ -26,6 +28,29 @@ public class GF { public void onError (Throwable e) ; } + public static Iterable iterable(final JsArray array) { + return new Iterable() { + public Iterator iterator() { + return new Iterator() { + int i = 0; + + public boolean hasNext() { + return i < array.length(); + } + public T next() { + if (!hasNext()) { + throw new NoSuchElementException(); + } + return array.get(i++); + } + public void remove() { + throw new UnsupportedOperationException(); + } + }; + } + }; + } + /* Grammar */ public GFRequest grammar (final GrammarCallback callback) { diff --git a/src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/Translate.java b/src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/Translate.java index 59786bb25..69b953fba 100644 --- a/src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/Translate.java +++ b/src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/Translate.java @@ -60,8 +60,7 @@ public class Translate implements EntryPoint { gf.translate(suggest.getText(), listBoxSelection(fromLangBox), null, listBoxSelection(toLangBox), new GF.TranslateCallback() { public void onResult (GF.Translations translations) { - for (int i = 0; i < translations.length(); i++) { - GF.Translation t = translations.get(i); + for (GF.Translation t : GF.iterable(translations)) { addTranslation(t.getText(), t.getTo()); } clearStatus(); @@ -104,8 +103,7 @@ public class Translate implements EntryPoint { private void setGrammar(GF.Grammar grammar) { this.grammar = grammar; - for (int i = 0; i < grammar.getLanguages().length(); i++) { - GF.Language l = grammar.getLanguages().get(i); + for (GF.Language l :GF.iterable(grammar.getLanguages())) { String name = l.getName(); if (l.canParse()) { fromLangBox.addItem(name);