summaryrefslogtreecommitdiff
path: root/src/server/gwt-client
diff options
context:
space:
mode:
authorbjorn <bjorn@bringert.net>2008-09-21 20:37:27 +0000
committerbjorn <bjorn@bringert.net>2008-09-21 20:37:27 +0000
commit0031276944d198cb79df79fd94d55c590cc4202f (patch)
tree10abb13e5c73ff24d9ff974631ca3e8a33df4052 /src/server/gwt-client
parente6f5033bc5f5eb8ae26f6d441a65b0881f8a35a8 (diff)
Added iterable() method for nicer iteration through GF method results. (GWT)
Diffstat (limited to 'src/server/gwt-client')
-rw-r--r--src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/GF.java25
-rw-r--r--src/server/gwt-client/src/se/chalmers/cs/gf/gwt_translate/client/Translate.java6
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 <T extends JavaScriptObject> Iterable<T> iterable(final JsArray<T> array) {
+ return new Iterable<T>() {
+ public Iterator<T> iterator() {
+ return new Iterator<T>() {
+ 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);