1
0
forked from GitHub/gf-core

the default function of the PGFService should return list of functions as well as list of categories

This commit is contained in:
krasimir
2009-11-26 14:47:35 +00:00
parent ba1b602053
commit d7fba06bda
7 changed files with 86 additions and 19 deletions

View File

@@ -138,7 +138,8 @@ doGrammar :: PGF -> Maybe (Accept Language) -> JSValue
doGrammar pgf macc = showJSON $ toJSObject
[("name", showJSON (PGF.abstractName pgf)),
("userLanguage", showJSON (selectLanguage pgf macc)),
("categories", showJSON categories),
("categories", showJSON categories),
("functions", showJSON functions),
("languages", showJSON languages)]
where languages = map toJSObject
[[("name", showJSON l),
@@ -146,6 +147,7 @@ doGrammar pgf macc = showJSON $ toJSObject
("canParse", showJSON $ PGF.canParse pgf l)]
| l <- PGF.languages pgf]
categories = map toJSObject [[("name", PGF.showCId cat)] | cat <- PGF.categories pgf]
functions = map toJSObject [[("name", PGF.showCId fun)] | fun <- PGF.functions pgf]
doGraphvizAbstrTree pgf tree = do
let dot = PGF.graphvizAbstractTree pgf (True,True) tree

View File

@@ -33,7 +33,9 @@ public class CompletionOracle extends SuggestOracle {
public void onAvailableLanguagesChanged() { clearState(); }
public void onInputLanguageChanged() { clearState(); }
public void onOutputLanguageChanged() { clearState(); }
public void onCatChanged() { clearState(); }
public void onAvailableCategoriesChanged() { clearState(); }
public void onStartCategoryChanged() { clearState(); }
public void onAvailableFunctionsChanged() { clearState(); }
public void onSettingsError(String msg, Throwable e) { clearState(); }
});
}

View File

@@ -265,9 +265,13 @@ public class FridgeApp implements EntryPoint {
public void onOutputLanguageChanged() {
update();
}
public void onCatChanged() {
public void onAvailableCategoriesChanged() {
}
public void onStartCategoryChanged() {
update();
}
public void onAvailableFunctionsChanged() {
}
public void onSettingsError(String msg, Throwable e) {
showError(msg,e);
}

View File

@@ -28,6 +28,10 @@ public class PGF {
public final native String getUserLanguage() /*-{ return this.userLanguage; }-*/;
public final native IterableJsArray<Language> getLanguages() /*-{ return this.languages; }-*/;
public final native IterableJsArray<Category> getCategories() /*-{ return this.categories; }-*/;
public final native IterableJsArray<Function> getFunctions() /*-{ return this.functions; }-*/;
}
public static class Language extends JavaScriptObject {
@@ -38,6 +42,18 @@ public class PGF {
public final native boolean canParse() /*-{ return this.canParse; }-*/;
}
public static class Category extends JavaScriptObject {
protected Category() { }
public final native String getName() /*-{ return this.name; }-*/;
}
public static class Function extends JavaScriptObject {
protected Function() { }
public final native String getName() /*-{ return this.name; }-*/;
}
/* Translation */
public JSONRequest translate (String pgfURL, String input, String fromLang, String cat, String toLang,

View File

@@ -35,7 +35,10 @@ public class PGFWrapper {
private LinkedHashMap<String,PGF.Language> languages;
private List<String> parseableLanguages;
private List<String> categories;
private List<String> functions;
// Event listeners
private List<SettingsListener> listeners = new LinkedList<SettingsListener>();
@@ -112,6 +115,18 @@ public class PGFWrapper {
}
}
fireAvailableLanguagesChanged();
categories = new ArrayList<String>();
for (PGF.Category category : grammar.getCategories().iterable()) {
categories.add(category.getName());
}
fireAvailableCategoriesChanged();
functions = new ArrayList<String>();
for (PGF.Function function : grammar.getFunctions().iterable()) {
functions.add(function.getName());
}
fireAvailableFunctionsChanged();
}
public void onError (Throwable e) {
@@ -196,37 +211,43 @@ public class PGFWrapper {
fireOutputLanguageChanged();
}
public String getCat() {
public String getStartCategory() {
return cat;
}
public void setCat(String cat) {
public void setStartCategory(String cat) {
this.cat = cat;
fireCatChanged();
fireStartCategoryChanged();
}
public List<String> getCategories() {
return categories;
}
public List<String> getFunctions() {
return functions;
}
//
// Information about the available grammars
//
public List<String> getGrammars() {
return grammars;
}
//
// Information about the selected grammar
//
private void clearCachedInfo () {
languages = null;
parseableLanguages = null;
}
public String getUserLanguage () {
return userLanguage;
}
public String getLanguageCode (String language) {
PGF.Language l = languages.get(language);
return l == null ? null : l.getLanguageCode();
@@ -249,7 +270,9 @@ public class PGFWrapper {
public void onAvailableLanguagesChanged();
public void onInputLanguageChanged();
public void onOutputLanguageChanged();
public void onCatChanged();
public void onAvailableCategoriesChanged();
public void onStartCategoryChanged();
public void onAvailableFunctionsChanged();
public void onSettingsError(String msg, Throwable e);
}
@@ -258,7 +281,9 @@ public class PGFWrapper {
public void onAvailableLanguagesChanged() {}
public void onInputLanguageChanged() {}
public void onOutputLanguageChanged() {}
public void onCatChanged() {}
public void onAvailableCategoriesChanged() {}
public void onStartCategoryChanged() {}
public void onAvailableFunctionsChanged() {}
public void onSettingsError(String msg, Throwable e) {}
}
@@ -283,16 +308,28 @@ public class PGFWrapper {
listener.onInputLanguageChanged();
}
}
protected void fireOutputLanguageChanged() {
for (SettingsListener listener : listeners) {
listener.onOutputLanguageChanged();
}
}
protected void fireCatChanged() {
protected void fireAvailableCategoriesChanged() {
for (SettingsListener listener : listeners) {
listener.onCatChanged();
listener.onAvailableCategoriesChanged();
}
}
protected void fireStartCategoryChanged() {
for (SettingsListener listener : listeners) {
listener.onStartCategoryChanged();
}
}
protected void fireAvailableFunctionsChanged() {
for (SettingsListener listener : listeners) {
listener.onAvailableFunctionsChanged();
}
}

View File

@@ -108,7 +108,9 @@ public class SettingsPanel extends Composite {
toLangBox.setSelectedValue(pgf.getOutputLanguage());
}
}
public void onCatChanged() { }
public void onAvailableCategoriesChanged() { }
public void onStartCategoryChanged() { }
public void onAvailableFunctionsChanged() { }
public void onSettingsError(String msg, Throwable e) { }
}

View File

@@ -300,9 +300,13 @@ public class TranslateApp implements EntryPoint {
public void onOutputLanguageChanged() {
update();
}
public void onCatChanged() {
public void onAvailableCategoriesChanged() {
}
public void onStartCategoryChanged() {
update();
}
public void onAvailableFunctionsChanged() {
}
public void onSettingsError(String msg, Throwable e) {
showError(msg,e);
}