diff --git a/src/server/PGFService.hs b/src/server/PGFService.hs index ab968ecbf..35919d4ab 100644 --- a/src/server/PGFService.hs +++ b/src/server/PGFService.hs @@ -128,7 +128,9 @@ doTranslate pgf input mcat mfrom mto = )] | tree <- trees])] jsonParseOutput (PGF.ParseFailed _) = [] - jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [show (PGF.ppTcError err) | (fid,err) <- errs])] + jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [toJSObject [("fid", showJSON fid) + ,("msg", showJSON (show (PGF.ppTcError err))) + ] | (fid,err) <- errs])] -- used in phrasebook doTranslateGroup :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe PGF.Language -> JSValue @@ -198,7 +200,9 @@ doParse pgf input mcat mfrom = showJSON $ map toJSObject where jsonParseOutput (PGF.ParseOk trees) = [("trees",showJSON trees)] jsonParseOutput (PGF.ParseFailed _) = [] - jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [show (PGF.ppTcError err) | (fid,err) <- errs])] + jsonParseOutput (PGF.TypeError errs) = [("typeErrors",showJSON [toJSObject [("fid", showJSON fid) + ,("msg", showJSON (show (PGF.ppTcError err))) + ] | (fid,err) <- errs])] doComplete :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe Int -> JSValue doComplete pgf input mcat mfrom mlimit = showJSON $ map toJSObject $ limit @@ -328,7 +332,13 @@ instance JSON PGF.Expr where instance JSON PGF.BracketedString where readJSON x = return (PGF.Leaf "") - showJSON x = showJSON "" + showJSON (PGF.Bracket cat fid index _ bs) + = showJSON $ toJSObject [("cat", showJSON cat) + ,("fid", showJSON fid) + ,("index", showJSON index) + ,("children", showJSON bs) + ] + showJSON (PGF.Leaf s) = showJSON $ toJSObject [("token", s)] -- * PGF utilities diff --git a/src/ui/gwt/Editor-compile b/src/ui/gwt/Editor-compile index 4106298ea..d054d16ad 100644 --- a/src/ui/gwt/Editor-compile +++ b/src/ui/gwt/Editor-compile @@ -1,6 +1,8 @@ #!/bin/sh APPDIR=`dirname $0`; +GWT_DIR="/home/angelov/gwt-2.0.4" +GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev.jar" if [ -z "$GWT_CLASSPATH" ]; then echo 'ERROR: $GWT_CLASSPATH is not set' diff --git a/src/ui/gwt/Translate-compile b/src/ui/gwt/Translate-compile index 220cf4a46..c2fbca65c 100644 --- a/src/ui/gwt/Translate-compile +++ b/src/ui/gwt/Translate-compile @@ -2,6 +2,9 @@ APPDIR=`dirname $0`; +GWT_DIR="/home/angelov/gwt-2.0.4" +GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev.jar" + if [ -z "$GWT_CLASSPATH" ]; then echo 'ERROR: $GWT_CLASSPATH is not set' echo 'Set $GWT_CLASSPATH to point to the GWT JAR files. For example:' diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeApp.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeApp.java index c54bb4ddb..886679b04 100644 --- a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeApp.java +++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeApp.java @@ -54,10 +54,10 @@ public class FridgeApp implements EntryPoint { } if (tr.getTypeErrors() != null) - for (String error : tr.getTypeErrors()) { + for (PGF.TcError error : tr.getTypeErrors()) { SimplePanel panel = new SimplePanel(); panel.addStyleName("my-typeError"); - panel.add(new HTML("
"+error+"")); + panel.add(new HTML("
"+error.getMsg()+"")); outputPanel.add(panel); } } diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGF.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGF.java index 41e77539c..5a1a9e873 100644 --- a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGF.java +++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGF.java @@ -63,9 +63,9 @@ public class PGF { protected TranslationResult() { } public final native String getFrom() /*-{ return this.from; }-*/; - public final native String getBracketedString() /*-{ return this.brackets; }-*/; + public final native BracketedString getBracketedString() /*-{ return this.brackets; }-*/; public final native IterableJsArray
"+error+"")); + Label errLabel = new Label("Type Error"); + errLabel.addStyleName("my-error-title"); + HTML msgHTML = new HTML("
"+error.getMsg()+""); + panel.add(errLabel); + panel.add(msgHTML); outputPanel.add(panel); } + } } } public void onError (Throwable e) { diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Translate.css b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Translate.css index 49efa8c76..dd0ad3091 100644 --- a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Translate.css +++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/public/Translate.css @@ -84,6 +84,10 @@ cursor:pointer; } +.my-error-title { + background: #DDDDDD; +} + .my-treeimage { width: 650px; height: 520px;