diff options
| author | krasimir <krasimir@chalmers.se> | 2010-08-24 15:58:22 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2010-08-24 15:58:22 +0000 |
| commit | d3a686627704c3c73d86f5d31bf3669e5c793b35 (patch) | |
| tree | ed4ad7e0e81c05da8363f952439fd32aac158f98 /src/ui | |
| parent | 4df7b0493507d18ab17edde930240bed2d06771b (diff) | |
more advanced complete function in the PGFService
Diffstat (limited to 'src/ui')
4 files changed, 35 insertions, 21 deletions
diff --git a/src/ui/gwt/Translate-compile b/src/ui/gwt/Translate-compile index c2fbca65c..220cf4a46 100644 --- a/src/ui/gwt/Translate-compile +++ b/src/ui/gwt/Translate-compile @@ -2,9 +2,6 @@ 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/CompletionOracle.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/CompletionOracle.java index 0e78deb1b..1ff3f5d16 100644 --- a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/CompletionOracle.java +++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/CompletionOracle.java @@ -122,7 +122,15 @@ public class CompletionOracle extends SuggestOracle { jsonRequest = null; List<CompletionSuggestion> suggestions = new ArrayList<CompletionSuggestion>(); for (PGF.Completion completion : completions.iterable()) { - suggestions.add(new CompletionSuggestion(completion.getText())); + String text = completion.getBracketedString().render(); + for (String tokn : completion.getCompletions()) { + StringBuilder sbuilder = new StringBuilder(); + sbuilder.append(text); + if (sbuilder.length() > 0) + sbuilder.append(' '); + sbuilder.append(tokn); + suggestions.add(new CompletionSuggestion(sbuilder.toString())); + } } suggestionsReady(request, callback, suggestions); } diff --git a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeBagPanel.java b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeBagPanel.java index 525bb968d..657f3bf13 100644 --- a/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeBagPanel.java +++ b/src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeBagPanel.java @@ -54,23 +54,16 @@ public class FridgeBagPanel extends Composite { limit, new PGF.CompleteCallback() { public void onResult(PGF.Completions completions) { for (PGF.Completion completion : completions.iterable()) { - String newText = completion.getText(); - if (!newText.equals(text + " ")) { - String[] words = newText.split("\\s+"); - if (words.length > 0) { - String word = words[words.length - 1]; - if (word.length() > 0) { - if (updatePrefixes) { - addPrefix(text, word.substring(0,1)); - } - if (mainPanel.getWidgetCount() < maxMagnets) { - Magnet magnet = magnetFactory.createMagnet(word, completion.getFrom()); - mainPanel.add(magnet); - removeStyleDependentName("empty"); - } else { - prefixPanel.setVisible(true); - } - } + for (String word : completion.getCompletions()) { + if (updatePrefixes) { + addPrefix(text, word.substring(0,1)); + } + if (mainPanel.getWidgetCount() < maxMagnets) { + Magnet magnet = magnetFactory.createMagnet(word, completion.getFrom()); + mainPanel.add(magnet); + removeStyleDependentName("empty"); + } else { + prefixPanel.setVisible(true); } } } 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 f6776597e..a6c5cab55 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 @@ -113,6 +113,8 @@ public class PGF { protected Completion() { } public final native String getFrom() /*-{ return this.from; }-*/; + public final native BracketedString getBracketedString() /*-{ return this.brackets; }-*/; + public final native String[] getCompletions() /*-{ return this.completions; }-*/; public final native String getText() /*-{ return this.text; }-*/; } @@ -150,6 +152,20 @@ public class PGF { public final native int getFId() /*-{ return this.fid; }-*/; public final native int getIndex() /*-{ return this.index; }-*/; public final native BracketedString[] getChildren() /*-{ return this.children; }-*/; + + public final String render() { + if (getToken() != null) + return getToken(); + else { + StringBuilder sbuilder = new StringBuilder(); + for (BracketedString bs : getChildren()) { + if (sbuilder.length() > 0) + sbuilder.append(' '); + sbuilder.append(bs.render()); + } + return sbuilder.toString(); + } + } } public static class TcError extends JavaScriptObject { |
