1
0
forked from GitHub/gf-core

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 List<String> inputLangs = null;
private String inputLang = null;
private JSONRequest jsonRequest = null;
@@ -43,8 +43,8 @@ public class CompletionOracle extends SuggestOracle {
clearState();
}
public void setInputLangs(List<String> inputLangs) {
this.inputLangs = inputLangs;
public void setInputLanguage(String inputLang) {
this.inputLang = inputLang;
clearState();
}
@@ -57,8 +57,8 @@ public class CompletionOracle extends SuggestOracle {
}
}
public List<String> 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.<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() {
public void onResult(PGF.Completions completions) {
jsonRequest = null;

View File

@@ -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", "");

View File

@@ -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", "");

View File

@@ -71,21 +71,13 @@ public class PGF {
/* 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) {
List<Arg> args = new ArrayList<Arg>();
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<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>();
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<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>();
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);
}

View File

@@ -57,7 +57,7 @@ public class SettingsPanel extends Composite {
public interface SettingsListener {
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);
}
@@ -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<String> getInputLanguages() {
return fromLangBox.getSelectedValues();
public String getInputLanguage() {
return fromLangBox.getLanguage();
}
public List<String> getOutputLanguages() {
return toLangBox.getSelectedValues();
public String getOutputLanguage() {
return toLangBox.getLanguage();
}
public void setInputLanguages(List<String> langs) {
fromLangBox.setSelectedValues(langs);
public void setInputLanguage(String lang) {
fromLangBox.setLanguage(lang);
}
private void updateAvailableLanguages() {

View File

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

View File

@@ -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<String> inputLangs, List<String> outputLangs) {
public void languagesChanged(String inputLang, String outputLang) {
updateSelectedLanguages();
}
public void settingsError(String msg, Throwable e) {