summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-11-26 14:47:35 +0000
committerkrasimir <krasimir@chalmers.se>2009-11-26 14:47:35 +0000
commitd7fba06bda6f1770625b68a91a236888497e8ded (patch)
tree09a4940e7101485ba7cd0b7b17d13319562c94be /src/server
parentba1b602053300d982e973f446e44bd7a436c157d (diff)
the default function of the PGFService should return list of functions as well as list of categories
Diffstat (limited to 'src/server')
-rw-r--r--src/server/PGFService.hs4
-rw-r--r--src/server/gwt/src/se/chalmers/cs/gf/gwt/client/CompletionOracle.java4
-rw-r--r--src/server/gwt/src/se/chalmers/cs/gf/gwt/client/FridgeApp.java6
-rw-r--r--src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGF.java16
-rw-r--r--src/server/gwt/src/se/chalmers/cs/gf/gwt/client/PGFWrapper.java65
-rw-r--r--src/server/gwt/src/se/chalmers/cs/gf/gwt/client/SettingsPanel.java4
-rw-r--r--src/server/gwt/src/se/chalmers/cs/gf/gwt/client/TranslateApp.java6
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);
}