diff options
| author | krasimir <krasimir@chalmers.se> | 2009-11-26 14:47:35 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-11-26 14:47:35 +0000 |
| commit | d7fba06bda6f1770625b68a91a236888497e8ded (patch) | |
| tree | 09a4940e7101485ba7cd0b7b17d13319562c94be /src/server | |
| parent | ba1b602053300d982e973f446e44bd7a436c157d (diff) | |
the default function of the PGFService should return list of functions as well as list of categories
Diffstat (limited to 'src/server')
7 files changed, 86 insertions, 19 deletions
diff --git a/src/server/PGFService.hs b/src/server/PGFService.hs index 0a457395f..21914ba69 100644 --- a/src/server/PGFService.hs +++ b/src/server/PGFService.hs @@ -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 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 52d0e387a..9e8fa35ec 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 @@ -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(); } }); } diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java index c0bfc376e..2e20f713f 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java @@ -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); } 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 80af107bb..cd9fac9a8 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 @@ -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, diff --git a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGFWrapper.java b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGFWrapper.java index 329ae5f32..09b15ac07 100644 --- a/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGFWrapper.java +++ b/src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGFWrapper.java @@ -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.onAvailableCategoriesChanged(); + } + } + + protected void fireStartCategoryChanged() { + for (SettingsListener listener : listeners) { + listener.onStartCategoryChanged(); + } + } + + protected void fireAvailableFunctionsChanged() { for (SettingsListener listener : listeners) { - listener.onCatChanged(); + listener.onAvailableFunctionsChanged(); } } 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 43a9b915e..141631c1d 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 @@ -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) { } } 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 14aa2da2d..46f6329a4 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 @@ -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); } |
