我的代码:
@Override
public void onKeyPress(KeyPressEvent event)
{
if (event.getCharCode() == KeyCodes.KEY_ENTER)
{
registerButton.click();
}
}
Run Code Online (Sandbox Code Playgroud)
这是附加到TextBox,当我按Enter键时它会触发. event.getCharCode()只是零,不是13.当我按Tab键时,它就是0,当我按下escape时,它就是了0.哎呀!
昨天这个工作正常,项目中其他地方发生了一些变化,影响了这一点 - 但我不确定它是什么.看起来好像在最后一天没有做出相关的改变.
如果我处理a KeyUpEvent,这可以按预期工作.
我正在使用GWT 2.1.0.谢谢你的任何想法!
我正在尝试使用一组参数对给定的URL执行POST请求.我遇到的问题是POST请求,但没有传递参数.
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
StringBuilder sb = new StringBuilder();
for ( String k: parmsRequest.keySet() ) {
String vx = URL.encodeComponent( parmsRequest.get(k));
if ( sb.length() > 0 ) {
sb.append("&");
}
sb.append(k).append("=").append(vx);
}
try {
Request response = builder.sendRequest( sb.toString(), new RequestCallback() {
public void onError(Request request, Throwable exception) {}
public void onResponseReceived(Request request, Response response) {}
});
} catch (RequestException e) {}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用模式GET并手动将查询字符串添加到请求中,这可以正常工作 - 但我需要使用POST,因为要传递的数据可能很大....
我有一个GWT CellTable<MyType>.此表包含应显示的行CheckBox.这CheckBox应根据getter进行检查或取消选中MyType,但应禁用,以便用户无法单击它.有人知道如何实施吗?
一些代码片段:
Column<MyType, Boolean> checkboxColumn = new Column<MyType, Boolean>(new CheckboxCell()) {
@Override
public Boolean getValue(MyType object) {
return object.isItTrue();
}
};
CellTable<MyType> cellTable = new CellTable<MyType>();
cellTable.addColumn(checkboxColumn, "Header title");Run Code Online (Sandbox Code Playgroud) 我正在创建一个与同一文本相同的弹出式面板,我想禁用背景并使其变灰.我读到了关于setGlassEnabled的内容,但它不起作用,有人可以帮忙吗?PS.弹出窗口正确可视化.
PopupPanel popup = new PopupPanel(infoType);
popup.center();
popup.setGlassEnabled(true);
popup.show();
Run Code Online (Sandbox Code Playgroud) 我在GXT中有一个网格,如下所示:
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
ColumnConfig config = new ColumnConfig();
config.setId("type");
config.setHeader("Type");
config.setWidth(50);
configs.add(config);
config = new ColumnConfig();
config.setId("text");
config.setHeader("Info");
config.setWidth(75);
configs.add(config);
columnModel = new ColumnModel(configs);
listStore = new ListStore<DtoModel>();
grid = new Grid<DtoModel>(listStore, columnModel);
grid.setAutoHeight(true);
grid.setAutoWidth(true);
VerticalPanel verticalPanel = new VerticalPanel();
verticalPanel.setLayout(new FillLayout());
verticalPanel.add(grid);
Run Code Online (Sandbox Code Playgroud)
这样就可以创建网格,只有一个例外 - 宽度限制为列宽的总和.当我放弃列宽时,网格最终有0宽度.
有没有办法让这个网格及其列扩展以填充可用的整个区域?
编辑:困难之一是该ColumnConfig.setWidth()方法只接受int一个参数,所以我不能将"100%"指定为字符串或类似的东西.
我有一个GWT单元树,用于显示CMS的文件结构.我正在使用AsyncDataProvider从我创建的自定义RPC类加载数据.我还有一个Web Socket系统,它将从也在系统中工作的其他客户端广播事件(文件创建,重命名,移动,删除等).
我想要解决的是当我收到其中一个事件时,我如何正确更新我的Cell Tree?
我想这个问题类似于在页面上有两个我的Cell Tree实例,它们呈现相同的服务器端数据,并希望确保当用户更新一个时,另一个更新也通过使用EventBus.
我觉得这应该很简单,但我现在花了大约6个小时才没有进展.我的代码包含在下面:
注意:我没有使用RequestFactory,即使它看起来像我是我的自定义RPC框架.此外,FileEntity只是一个文件的简单表示,其名称可以访问getName().
private void drawTree() {
// fileService is injected earlier on and is my own custom rpc service
TreeViewModel model = new CustomTreeModel(new FileDataProvider(fileService));
CellTree tree = new CellTree(model, "Root");
tree.setAnimationEnabled(true);
getView().getWorkspace().add(tree);
}
private static class CustomTreeModel implements TreeViewModel {
// I am trying to use a single AsyncDataProvider so I have a single point of loading data which I can manipulate (Not sure if this is …Run Code Online (Sandbox Code Playgroud) 我已经搜索了GoogleCode,GWT ShowCase,GWT Developer Notes和Google Groups,以了解如何获取/设置CompositeCell的值.没有一个明确的例子可以解释如何在CellTable中使用它.
让我们盯着一些代码......首先是抽象类......
public abstract class ToggleableGrid<T> extends CellTable<T> {
private static final String DEFAULT_TABLE_WIDTH = "100%";
private static final DisplayMode DEFAULT_MODE = DisplayMode.VIEW;
protected void setDefaults() {
setWidth(DEFAULT_TABLE_WIDTH);
// Set the message to display when the table is empty.
setEmptyTableWidget(new Label(UiMessages.INSTANCE.no_results()));
// Add a selection model so we can select cells
final SelectionModel<T> selectionModel = new MultiSelectionModel<T>();
setSelectionModel(selectionModel, DefaultSelectionEventManager.<T> createDefaultManager());
}
public void setInput(List<T> content) {
setInput(content, DEFAULT_MODE);
}
public void setInput(List<T> content, DisplayMode mode) { …Run Code Online (Sandbox Code Playgroud) 如何使用GXT 3网格将网格列渲染为多线网格列.
例如
ColumnConfig<ExceptionEntry, String> name = new ColumnConfig<ExceptionEntry, String>(props.name(), 50, "Name");
name.setColumnStyle(new SafeStyles(){
@Override
public String asString() {
return // what styles to use for multiline rendering;
}
});
name.setCell(new AbstractCell<String>() {
@Override
public void render(com.google.gwt.cell.client.Cell.Context context,
String value, SafeHtmlBuilder sb) {
??? what needs to be done to render the column as multiline column
}
});
Run Code Online (Sandbox Code Playgroud) 没有Code Splitting选项当我PresenterWidget在Eclipse中创建时,所以我假设在调用时将下载my PresenterWidget或DialogBox(启动时HeaderPresenter)HeaderPresenter.让我们看看这段代码HeaderPresenter:
Button b = new Button("Click me", new ClickHandler() {
public void onClick(ClickEvent event) {
MyDialogBox myD=new MyDialogBox(); ///There a lot of Gui (button, grid, css...) on this dialogbox
myD.show();
}
});
Run Code Online (Sandbox Code Playgroud)
所以,我的第一个问题是:
1,webapp会MyDialogBox在用户访问页面时下载所有GUI Header吗?
2,假设用户Header第二次来到同一浏览器和SAME会话,那么webapp会下载所有的GUI MyDialogBox吗?(如果它在同一个会话中,那么我相信它不会再次下载,因为GUI在其他地方获得了Catch)
好的,现在我将根据Google http://www.gwtproject.org/doc/latest/DevGuideCodeSplitting.html的建议将此代码拆分,如下所示:
Button b = new Button("Click me", new ClickHandler() {
public void onClick(ClickEvent event) {
GWT.runAsync(new RunAsyncCallback() {
public void onFailure(Throwable caught) …Run Code Online (Sandbox Code Playgroud) 我正在努力利用Widget.addHandler().但是,处理程序永远不会被调用.以下是我的示例代码.我需要更改什么来解决这个问题?
我的处理程序实现:
public class CustomMouseMoveHandler
extends GwtEvent.Type<MouseMoveHandler>
implements MouseMoveHandler
{
@Override
public void onMouseMove(MouseMoveEvent event) {
System.out.println("----> onMouseMove.");
}
}
Run Code Online (Sandbox Code Playgroud)
我的EntryPoint.OnModuleLoad():
ContentPanel cp = new ContentPanel();
cp.setHeaderVisible(false);
cp.setHeight(com.google.gwt.user.client.Window.getClientHeight());
CustomMouseMoveHandler handler = new CustomMouseMoveHandler();
cp.addHandler(handler, handler);
RootPanel.get().add(cp);
Run Code Online (Sandbox Code Playgroud)
/////在2011年7月1日添加.
以下完整的GWT简单代码也不起作用(应用Jason的提示).请帮帮我.谢谢
package tut.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.MouseMoveEvent;
import com.google.gwt.event.dom.client.MouseMoveHandler;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextArea;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class GwtHandler implements EntryPoint, MouseMoveHandler {
/**
* This is the entry point method.
*/
public void …Run Code Online (Sandbox Code Playgroud)