From e4552a97dbae2f50b75d1ded9823b5c752d2bd07 Mon Sep 17 00:00:00 2001 From: bjorn Date: Tue, 4 Nov 2008 10:44:23 +0000 Subject: [PATCH] GWT: changed input na doutput language boxes to not pretend that they allow multiple selections. --- .../cs/gf/gwt/client/CompletionOracle.java | 12 ++++---- .../cs/gf/gwt/client/InputLanguageBox.java | 17 ++++++++++- .../cs/gf/gwt/client/OutputLanguageBox.java | 17 ++++++++++- .../src/se/chalmers/cs/gf/gwt/client/PGF.java | 30 +++++-------------- .../cs/gf/gwt/client/SettingsPanel.java | 16 +++++----- .../cs/gf/gwt/client/SuggestPanel.java | 4 +-- .../cs/gf/gwt/client/TranslateApp.java | 10 +++---- 7 files changed, 59 insertions(+), 47 deletions(-) diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/CompletionOracle.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/CompletionOracle.java index 5953aa24f..259a3fe88 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/CompletionOracle.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/CompletionOracle.java @@ -16,7 +16,7 @@ public class CompletionOracle extends SuggestOracle { private ErrorHandler errorHandler; - private List inputLangs = null; + private String inputLang = null; private JSONRequest jsonRequest = null; @@ -43,8 +43,8 @@ public class CompletionOracle extends SuggestOracle { clearState(); } - public void setInputLangs(List inputLangs) { - this.inputLangs = inputLangs; + public void setInputLanguage(String inputLang) { + this.inputLang = inputLang; clearState(); } @@ -57,8 +57,8 @@ public class CompletionOracle extends SuggestOracle { } } - public List getInputLangs() { - return inputLangs; + public String getInputLanguage() { + return inputLang; } public void setErrorHandler(ErrorHandler errorHandler) { @@ -130,7 +130,7 @@ public class CompletionOracle extends SuggestOracle { // hack: first report no completions, to hide suggestions until we get the new completions callback.onSuggestionsReady(request, new SuggestOracle.Response(Collections.emptyList())); - jsonRequest = pgf.complete(getGrammarName(), request.getQuery(), getInputLangs(), null, LIMIT_SCALE_FACTOR * request.getLimit(), + jsonRequest = pgf.complete(getGrammarName(), request.getQuery(), getInputLanguage(), null, LIMIT_SCALE_FACTOR * request.getLimit(), new PGF.CompleteCallback() { public void onResult(PGF.Completions completions) { jsonRequest = null; diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/InputLanguageBox.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/InputLanguageBox.java index b030d4c66..e2526196d 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/InputLanguageBox.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/InputLanguageBox.java @@ -1,11 +1,26 @@ package se.chalmers.cs.gf.gwt.client; -public class InputLanguageBox extends MultiListBox { +import com.google.gwt.user.client.ui.ListBox; + +public class InputLanguageBox extends ListBox { public InputLanguageBox() { setEnabled(false); } + public String getLanguage() { + return getValue(getSelectedIndex()); + } + + public void setLanguage(String lang) { + int c = getItemCount(); + for (int i = 0; i < c; i++) { + if (getValue(i).equals(lang)) { + setSelectedIndex(i); + } + } + } + public void setGrammar(PGF.Grammar grammar) { clear(); addItem("Any language", ""); diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/OutputLanguageBox.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/OutputLanguageBox.java index e51578f8d..a02990ea1 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/OutputLanguageBox.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/OutputLanguageBox.java @@ -1,11 +1,26 @@ package se.chalmers.cs.gf.gwt.client; -public class OutputLanguageBox extends MultiListBox { +import com.google.gwt.user.client.ui.ListBox; + +public class OutputLanguageBox extends ListBox { public OutputLanguageBox() { setEnabled(false); } + public String getLanguage() { + return getValue(getSelectedIndex()); + } + + public void setLanguage(String lang) { + int c = getItemCount(); + for (int i = 0; i < c; i++) { + if (getValue(i).equals(lang)) { + setSelectedIndex(i); + } + } + } + public void setGrammar(PGF.Grammar grammar) { clear(); addItem("All languages", ""); diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGF.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGF.java index a9d38c6a8..50898552e 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGF.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGF.java @@ -71,21 +71,13 @@ public class PGF { /* Translation */ - public JSONRequest translate (String pgfName, String input, List fromLangs, String cat, List toLangs, + public JSONRequest translate (String pgfName, String input, String fromLang, String cat, String toLang, final TranslateCallback callback) { List args = new ArrayList(); args.add(new Arg("input", input)); - if (fromLangs != null) { - for (String from : fromLangs) { - args.add(new Arg("from", from)); - } - } + args.add(new Arg("from", fromLang)); args.add(new Arg("cat", cat)); - if (toLangs != null) { - for (String to : toLangs) { - args.add(new Arg("to", to)); - } - } + args.add(new Arg("to", toLang)); return sendGrammarRequest(pgfName, "translate", args, callback); } @@ -110,14 +102,10 @@ public class PGF { * @param limit The number of suggestions to get. * If -1 is passed, all available suggestions are retrieved. */ - public JSONRequest complete (String pgfName, String input, List fromLangs, String cat, int limit, final CompleteCallback callback) { + public JSONRequest complete (String pgfName, String input, String fromLang, String cat, int limit, final CompleteCallback callback) { List args = new ArrayList(); args.add(new Arg("input", input)); - if (fromLangs != null) { - for (String from : fromLangs) { - args.add(new Arg("from", from)); - } - } + args.add(new Arg("from", fromLang)); args.add(new Arg("cat", cat)); if (limit != -1) { args.add(new Arg("limit", limit)); @@ -140,14 +128,10 @@ public class PGF { /* Parsing */ - public JSONRequest parse (String pgfName, String input, List fromLangs, String cat, final ParseCallback callback) { + public JSONRequest parse (String pgfName, String input, String fromLang, String cat, final ParseCallback callback) { List args = new ArrayList(); args.add(new Arg("input", input)); - if (fromLangs != null) { - for (String from : fromLangs) { - args.add(new Arg("from", from)); - } - } + args.add(new Arg("from", fromLang)); args.add(new Arg("cat", cat)); return sendGrammarRequest(pgfName, "parse", args, callback); } diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SettingsPanel.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SettingsPanel.java index 893bff8ff..4b0553e16 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SettingsPanel.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SettingsPanel.java @@ -57,7 +57,7 @@ public class SettingsPanel extends Composite { public interface SettingsListener { public void grammarChanged(String pgfName); - public void languagesChanged(List inputLangs, List outputLangs); + public void languagesChanged(String inputLang, String outputLang); public void settingsError(String msg, Throwable e); } @@ -73,7 +73,7 @@ public class SettingsPanel extends Composite { void fireLanguagesChanged() { for (SettingsListener listener : listeners) { - listener.languagesChanged(getInputLanguages(), getOutputLanguages()); + listener.languagesChanged(getInputLanguage(), getOutputLanguage()); } } @@ -119,16 +119,16 @@ public class SettingsPanel extends Composite { // Languages // - public List getInputLanguages() { - return fromLangBox.getSelectedValues(); + public String getInputLanguage() { + return fromLangBox.getLanguage(); } - public List getOutputLanguages() { - return toLangBox.getSelectedValues(); + public String getOutputLanguage() { + return toLangBox.getLanguage(); } - public void setInputLanguages(List langs) { - fromLangBox.setSelectedValues(langs); + public void setInputLanguage(String lang) { + fromLangBox.setLanguage(lang); } private void updateAvailableLanguages() { diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SuggestPanel.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SuggestPanel.java index cfaca58fc..ed3b8d42d 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SuggestPanel.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SuggestPanel.java @@ -85,8 +85,8 @@ public class SuggestPanel extends Composite { oracle.setGrammarName(pgfName); } - public void setInputLangs(List inputLangs) { - oracle.setInputLangs(inputLangs); + public void setInputLanguage(String inputLang) { + oracle.setInputLanguage(inputLang); } public void setLimit(int limit) { diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/TranslateApp.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/TranslateApp.java index a678d435d..f26e18466 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/TranslateApp.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/TranslateApp.java @@ -1,7 +1,5 @@ package se.chalmers.cs.gf.gwt.client; -import java.util.List; - import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootPanel; @@ -28,8 +26,8 @@ public class TranslateApp implements EntryPoint { setStatus("Translating..."); pgf.translate(settingsPanel.getGrammarName(), suggestPanel.getText(), - settingsPanel.getInputLanguages(), null, - settingsPanel.getOutputLanguages(), + settingsPanel.getInputLanguage(), null, + settingsPanel.getOutputLanguage(), new PGF.TranslateCallback() { public void onResult (PGF.Translations translations) { for (PGF.Translation t : translations.iterable()) { @@ -74,7 +72,7 @@ public class TranslateApp implements EntryPoint { } private void updateSelectedLanguages() { - suggestPanel.setInputLangs(settingsPanel.getInputLanguages()); + suggestPanel.setInputLanguage(settingsPanel.getInputLanguage()); suggestPanel.setEnabled(true); clearStatus(); translate(); @@ -102,7 +100,7 @@ public class TranslateApp implements EntryPoint { public void grammarChanged(String pgfName) { updateSelectedGrammar(); } - public void languagesChanged(List inputLangs, List outputLangs) { + public void languagesChanged(String inputLang, String outputLang) { updateSelectedLanguages(); } public void settingsError(String msg, Throwable e) {