我想在我的cellTable的一列上有一个处理程序.该列是一个ImageResourceCell,当我点击它时,它会删除该行这是我的代码
Column<MyObject, ImageResource> imageColumn =
new Column<MyObject, ImageResource>(newImageResourceCell()) {
@Override
public ImageResource getValue(MyObject object) {
return Bundle.Util.getInstance().deleteRegexButton();
}
};
cellTable.addColumn(imageColumn,SafeHtmlUtils.fromSafeConstant("<br/>");
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何插入处理程序,如果可能的话?
欢迎任何建议
谢谢.
我正在使用一些代码,在子代的构造函数中将子节点添加到它的父节点.代码看起来像这样:
类:
class Node1 {
public Node1(Node1 parent, String name) {
if(parent != null) {
parent.add(this);
}
this.parent = parent;
}
private void add(Node1 child) {
children.add(child);
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
Node1 parent = new Node1(null, "parent");
Node1 child1 = new Node1(parent, "child1");
Node1 child2 = new Node1(parent, "child2");
Run Code Online (Sandbox Code Playgroud)
通过这种方式实现它,类的用户Node1不必显式地将子节点(较少的代码)添加到它的父节点,并且您已经保证子节点具有父节点.
我个人不会这样写,但更像是以下内容:
class Node2 {
public Node2(String name) {
}
public void add(Node2 child) {
children.add(child);
child.setParent(this);
}
}
Node2 parent = new Node2("parent");
Node2 child1 = new Node2("child1");
parent.add(child1); …Run Code Online (Sandbox Code Playgroud) 在使用GWT创建的RIA Web客户端中,状态在Web客户端中维护,而服务器(几乎)是无状态的(这是保持站点可伸缩性的首选技术).
但是,如果在浏览器中查看相同数据的多个用户和一个用户更改了某些内容(发送到服务器并存储在数据库中),则其他用户仍然拥有处于浏览器状态的旧数据.例如,显示树,其中一个用户从树中添加/删除项.
由于客户端中可能存在大量状态,因此保持客户端状态同步的最佳技术是什么?是否有任何java框架可以解决这个问题?
我已经定义了一个ClientBundle,一个Style接口,并通过@source注释将其与我的css文件连接起来.
我有两个问题:
当我<ui:with>在我的uibinder文件中使用时,我得到以下异常:Deferred binding result type MyStyle should not be abstract. 有人可以解释发生了什么吗?以及如何在我的uibinder文件中正确包含样式?
我想在许多uibinder上分享资源,而不必每次都支付初始化样式的惩罚.Gwt的贫血开发指南,建议使用UiField(provided=true)或使用@uiFactory.虽然我已成功使用@uiFactory来使用我自己的自定义小部件.我不知道如何使用@uiFactory将样式注入uiBinder.
例如:
//in pojo
@UiFactory
public MyStyle getMyStyle() {
return myStyle;
}
//in uibinder
<g:Label addStyleNames="{myStyle.defaultLable}"/>
Run Code Online (Sandbox Code Playgroud)
我怎么能得到这个工作?
提前致谢.
我有一个带有iframe的网页,其中运行了一个gwt应用程序.该网页有一个<div id="head">.无法在iframe(预期)中滚动,因此网页的高度为1000px.在最底部有一个按钮,我希望当有人点击该按钮时(注意:按钮在gwt应用程序中)然后我想滚动到顶部.
这意味着iframe需要强制父窗口滚动到顶部.我尝试使用像这样的jsni函数:
public static native void scrollToTop() /*-{
$wnd.top.scrollTo(0,0);
}-*/;
Run Code Online (Sandbox Code Playgroud)
但这没效果.所以我的新想法是滚动到div id"header".有谁知道如何做到这一点?
我试过这样的:
document.getElementById('header').scrollIntoView();
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用(因为它应该采用JSNI方式?).
感谢您的任何投入!
当我使用RPC时,我遇到了Eclipse的问题.如果我使用单个方法调用它的方向正确,但如果我添加一个新方法来处理服务器,我会收到以下错误:
com.google.gwt.core.client.JavaScriptException: (null): null
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:237)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:126)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeBoolean(ModuleSpace.java:184)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeBoolean(JavaScriptHost.java:35)
at com.google.gwt.user.client.rpc.impl.RpcStatsContext.isStatsAvailable(RpcStatsContext.java)
at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:221)
at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:395)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:326)
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:207)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:126)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:214)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:281)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:531)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
at java.lang.Thread.run(Thread.java:619)
Run Code Online (Sandbox Code Playgroud)
我可以在异步调用中获得更多服务吗?我哪里错了?
这是我的实现MyService:
package de.vogella.gwt.helloworld.client;
import com.google.gwt.user.client.rpc.RemoteService; …Run Code Online (Sandbox Code Playgroud)