GWT: changed input na doutput language boxes to not pretend that they allow multiple selections.

This commit is contained in:
bjorn
2008-11-04 10:44:23 +00:00
parent f1fcee964f
commit c5bc06c36d
7 changed files with 59 additions and 47 deletions

View File

@@ -16,7 +16,7 @@ public class CompletionOracle extends SuggestOracle {
private ErrorHandler errorHandler; private ErrorHandler errorHandler;
private List<String> inputLangs = null; private String inputLang = null;
private JSONRequest jsonRequest = null; private JSONRequest jsonRequest = null;
@@ -43,8 +43,8 @@ public class CompletionOracle extends SuggestOracle {
clearState(); clearState();
} }
public void setInputLangs(List<String> inputLangs) { public void setInputLanguage(String inputLang) {
this.inputLangs = inputLangs; this.inputLang = inputLang;
clearState(); clearState();
} }
@@ -57,8 +57,8 @@ public class CompletionOracle extends SuggestOracle {
} }
} }
public List<String> getInputLangs() { public String getInputLanguage() {
return inputLangs; return inputLang;
} }
public void setErrorHandler(ErrorHandler errorHandler) { 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 // hack: first report no completions, to hide suggestions until we get the new completions
callback.onSuggestionsReady(request, new SuggestOracle.Response(Collections.<CompletionSuggestion>emptyList())); callback.onSuggestionsReady(request, new SuggestOracle.Response(Collections.<CompletionSuggestion>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() { new PGF.CompleteCallback() {
public void onResult(PGF.Completions completions) { public void onResult(PGF.Completions completions) {
jsonRequest = null; jsonRequest = null;

View File

@@ -1,11 +1,26 @@
package se.chalmers.cs.gf.gwt.client; 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() { public InputLanguageBox() {
setEnabled(false); 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) { public void setGrammar(PGF.Grammar grammar) {
clear(); clear();
addItem("Any language", ""); addItem("Any language", "");

View File

@@ -1,11 +1,26 @@
package se.chalmers.cs.gf.gwt.client; 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() { public OutputLanguageBox() {
setEnabled(false); 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) { public void setGrammar(PGF.Grammar grammar) {
clear(); clear();
addItem("All languages", ""); addItem("All languages", "");

View File

@@ -71,21 +71,13 @@ public class PGF {
/* Translation */ /* Translation */
public JSONRequest translate (String pgfName, String input, List<String> fromLangs, String cat, List<String> toLangs, public JSONRequest translate (String pgfName, String input, String fromLang, String cat, String toLang,
final TranslateCallback callback) { final TranslateCallback callback) {
List<Arg> args = new ArrayList<Arg>(); List<Arg> args = new ArrayList<Arg>();
args.add(new Arg("input", input)); args.add(new Arg("input", input));
if (fromLangs != null) { args.add(new Arg("from", fromLang));
for (String from : fromLangs) {
args.add(new Arg("from", from));
}
}
args.add(new Arg("cat", cat)); args.add(new Arg("cat", cat));
if (toLangs != null) { args.add(new Arg("to", toLang));
for (String to : toLangs) {
args.add(new Arg("to", to));
}
}
return sendGrammarRequest(pgfName, "translate", args, callback); return sendGrammarRequest(pgfName, "translate", args, callback);
} }
@@ -110,14 +102,10 @@ public class PGF {
* @param limit The number of suggestions to get. * @param limit The number of suggestions to get.
* If -1 is passed, all available suggestions are retrieved. * If -1 is passed, all available suggestions are retrieved.
*/ */
public JSONRequest complete (String pgfName, String input, List<String> 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<Arg> args = new ArrayList<Arg>(); List<Arg> args = new ArrayList<Arg>();
args.add(new Arg("input", input)); args.add(new Arg("input", input));
if (fromLangs != null) { args.add(new Arg("from", fromLang));
for (String from : fromLangs) {
args.add(new Arg("from", from));
}
}
args.add(new Arg("cat", cat)); args.add(new Arg("cat", cat));
if (limit != -1) { if (limit != -1) {
args.add(new Arg("limit", limit)); args.add(new Arg("limit", limit));
@@ -140,14 +128,10 @@ public class PGF {
/* Parsing */ /* Parsing */
public JSONRequest parse (String pgfName, String input, List<String> fromLangs, String cat, final ParseCallback callback) { public JSONRequest parse (String pgfName, String input, String fromLang, String cat, final ParseCallback callback) {
List<Arg> args = new ArrayList<Arg>(); List<Arg> args = new ArrayList<Arg>();
args.add(new Arg("input", input)); args.add(new Arg("input", input));
if (fromLangs != null) { args.add(new Arg("from", fromLang));
for (String from : fromLangs) {
args.add(new Arg("from", from));
}
}
args.add(new Arg("cat", cat)); args.add(new Arg("cat", cat));
return sendGrammarRequest(pgfName, "parse", args, callback); return sendGrammarRequest(pgfName, "parse", args, callback);
} }

View File

@@ -57,7 +57,7 @@ public class SettingsPanel extends Composite {
public interface SettingsListener { public interface SettingsListener {
public void grammarChanged(String pgfName); public void grammarChanged(String pgfName);
public void languagesChanged(List<String> inputLangs, List<String> outputLangs); public void languagesChanged(String inputLang, String outputLang);
public void settingsError(String msg, Throwable e); public void settingsError(String msg, Throwable e);
} }
@@ -73,7 +73,7 @@ public class SettingsPanel extends Composite {
void fireLanguagesChanged() { void fireLanguagesChanged() {
for (SettingsListener listener : listeners) { for (SettingsListener listener : listeners) {
listener.languagesChanged(getInputLanguages(), getOutputLanguages()); listener.languagesChanged(getInputLanguage(), getOutputLanguage());
} }
} }
@@ -119,16 +119,16 @@ public class SettingsPanel extends Composite {
// Languages // Languages
// //
public List<String> getInputLanguages() { public String getInputLanguage() {
return fromLangBox.getSelectedValues(); return fromLangBox.getLanguage();
} }
public List<String> getOutputLanguages() { public String getOutputLanguage() {
return toLangBox.getSelectedValues(); return toLangBox.getLanguage();
} }
public void setInputLanguages(List<String> langs) { public void setInputLanguage(String lang) {
fromLangBox.setSelectedValues(langs); fromLangBox.setLanguage(lang);
} }
private void updateAvailableLanguages() { private void updateAvailableLanguages() {

View File

@@ -85,8 +85,8 @@ public class SuggestPanel extends Composite {
oracle.setGrammarName(pgfName); oracle.setGrammarName(pgfName);
} }
public void setInputLangs(List<String> inputLangs) { public void setInputLanguage(String inputLang) {
oracle.setInputLangs(inputLangs); oracle.setInputLanguage(inputLang);
} }
public void setLimit(int limit) { public void setLimit(int limit) {

View File

@@ -1,7 +1,5 @@
package se.chalmers.cs.gf.gwt.client; package se.chalmers.cs.gf.gwt.client;
import java.util.List;
import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.RootPanel;
@@ -28,8 +26,8 @@ public class TranslateApp implements EntryPoint {
setStatus("Translating..."); setStatus("Translating...");
pgf.translate(settingsPanel.getGrammarName(), pgf.translate(settingsPanel.getGrammarName(),
suggestPanel.getText(), suggestPanel.getText(),
settingsPanel.getInputLanguages(), null, settingsPanel.getInputLanguage(), null,
settingsPanel.getOutputLanguages(), settingsPanel.getOutputLanguage(),
new PGF.TranslateCallback() { new PGF.TranslateCallback() {
public void onResult (PGF.Translations translations) { public void onResult (PGF.Translations translations) {
for (PGF.Translation t : translations.iterable()) { for (PGF.Translation t : translations.iterable()) {
@@ -74,7 +72,7 @@ public class TranslateApp implements EntryPoint {
} }
private void updateSelectedLanguages() { private void updateSelectedLanguages() {
suggestPanel.setInputLangs(settingsPanel.getInputLanguages()); suggestPanel.setInputLanguage(settingsPanel.getInputLanguage());
suggestPanel.setEnabled(true); suggestPanel.setEnabled(true);
clearStatus(); clearStatus();
translate(); translate();
@@ -102,7 +100,7 @@ public class TranslateApp implements EntryPoint {
public void grammarChanged(String pgfName) { public void grammarChanged(String pgfName) {
updateSelectedGrammar(); updateSelectedGrammar();
} }
public void languagesChanged(List<String> inputLangs, List<String> outputLangs) { public void languagesChanged(String inputLang, String outputLang) {
updateSelectedLanguages(); updateSelectedLanguages();
} }
public void settingsError(String msg, Throwable e) { public void settingsError(String msg, Throwable e) {