有没有一种方法可以使用JavaScript创建GWT小部件(工作量较小)。。。比如下面的那个?既然GWT编译成JavaScript,这应该是可能的,之前有人尝试过吗。。。我喜欢GWT小部件和JavaScripting,但不喜欢Java:)
function doSomething(){
layout = new FlexTable();
layout.spacing = 6;
cellFormatter = layout.getFlexCellFormatter();
// Add a title to the form
layout.setHTML(0, 0, 'form title');
cellFormatter.setColSpan(0, 0, 2);
cellFormatter.setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_CENTER);
//......
// Wrap the content in a DecoratorPanel
decPanel = new DecoratorPanel();
decPanel.setWidget(layout);
}
您可以使用可以在Java代码中调用的本地javascript。
public native void loadJQueryStyling() /*-{
//Javascript here
}-*/;
然后,您可以像调用任何其他java方法一样调用它,在AttachHandler
中缩放它将允许您在它所在的小部件连接到dom后调用它。
也就是说,使用GWT的全部原因是,您最终用Java编写客户端和服务器端代码,客户端被交叉编译为非常高效的跨浏览器javascript。
我会正确地学习Java,并继续在大部分GWT应用程序中使用Java代码,但在需要的地方使用javascript本地方法,即做GWT无法做的事情。
举个例子,我有一些用jQuery编写的注释代码,这是我在纯GWT中无法做到的。我已经编写了一些本地方法,允许我与我编写的javascript代码进行交互。您还可以向javascript传递值和从javascript返回值。