summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2010-08-24 15:58:22 +0000
committerkrasimir <krasimir@chalmers.se>2010-08-24 15:58:22 +0000
commitd3a686627704c3c73d86f5d31bf3669e5c793b35 (patch)
treeed4ad7e0e81c05da8363f952439fd32aac158f98 /src/ui
parent4df7b0493507d18ab17edde930240bed2d06771b (diff)
more advanced complete function in the PGFService
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/gwt/Translate-compile3
-rw-r--r--src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/CompletionOracle.java10
-rw-r--r--src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/FridgeBagPanel.java27
-rw-r--r--src/ui/gwt/src/org/grammaticalframework/ui/gwt/client/PGF.java16
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 {