Hello!
I try to write a wrapper for google ajax language api.
I'd like to develope the equivalent of this HTML in gwt
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/
>
<title>Google AJAX Language API - Basic Translation</title>
<script type="text/javascript" src="http://www.google.com/jsapi"></
script>
<script type="text/javascript">
function translate(text, from, to, output){
google.language.translate(text, from, to, function(result) {
if (!result.error) {
output.innerHTML = result.translation;
}
});
return akarmi;
}
function a() {
alert(translate("snow","en","hu", document.getElementById
("translation")));
}
function loadgoogle() {
google.load('language', '1');
}
</script>
</head>
<body>
<script type="text/javascript">
loadgoogle();
</script>
<input name="firstbutton" type="button" onclick="a()" value="This
is not disabled" />
<div id="translation"></div>
This one worked fine. To do the same in gwt (with textBox input of the
text to translate) I tried it this way :
in class which implements entrypoint :
public void onModuleLoad() {
TranslateBox translateBox = new TranslateBox(
"input",
new TextBox(),
"answer",
new Label()
);
RootPanel.get().add(translateBox);
}
the translatebox class looks like this:
public class TranslateBox extends Composite {
private TextBox inputTextBox;
private Label answerBox;
public static final String FROM = "en";
public static final String TO = "hu";
public TranslateBox(String inputLabel,final TextBox inputTextBox,
String answerLabel, final Label answerBox) {
super();
this.inputTextBox = inputTextBox;
this.answerBox = answerBox;
Grid grid = new Grid(5,1);
initWidget(grid);
grid.setWidget(0, 0, new Label(inputLabel));
grid.setWidget(1, 0, inputTextBox);
grid.setWidget(2, 0, new Label(answerLabel));
grid.setWidget(3, 0, answerBox);
Button searchButton = new Button("search");
searchButton.addClickListener(new ClickListener(){
public void onClick(Widget sender) {
init();
translate(
inputTextBox.getText(),
FROM,
TO,
answerBox);
}});
grid.setWidget(4, 0, searchButton);
}
public static native void init()
/*-{
google.load('language', '1');
}-*/;
public static native String translate(
String text,
String from,
String to,
Label answerbox)
/*-{
google.language.translate(text, from, to, function(result) {
if (!result.error) {
[email protected]::setText
(Ljava/lang/String;)(result.translation);
}
});
}-*/;
}
I tried to inject the JS file for language api with the html file:
<script type="text/javascript" src="http://www.google.com/jsapi"></
script>
I tried it before or after the injection of the nocache js and I tried
it
with the line
<script src="http://www.google.com/jsapi"></script>
adding just before the closing </module> tag.
But it doesn't matter which way I tried it gives the exeption:
com.google.gwt.core.client.JavaScriptException: (TypeError): 'google'
is undefined.
Could somebody please help what's wrong with my code?
what's the right way to inject external JS files?
thanks:
-P
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---