-
gwt代码优化5
我在服务端定义了两个方法querydata1、querydata,在客户端页面上添加了两个grid,grid显示了quyerdata后台查询数据,双击grid,grid1根据双击grid的莫一行某一列的数据调用querydata1并将结果显示在grid1中。我的问题是
1、如何获得grid双击莫一行莫一列的值。
2、我写的客户端代码比较凌乱,能否给优化一下。public class InfoList implements EntryPoint { private GridPanel grid; private GridPanel grid1; //@SuppressWarnings("unchecked") public void onModuleLoad() { final InfoListActionAsync action = InfoListAction.Util.getInstance(); action.queryData(new AsyncCallback() { public void onFailure(Throwable caught) { } public void onSuccess(Object result) { Panel panel = new Panel(); panel.setBorder(false); panel.setPaddings(15); RecordDef recordDef = new RecordDef(new FieldDef[] { new StringFieldDef("材料名称"), new StringFieldDef("规格型号"), new StringFieldDef("计量单位"), new StringFieldDef("期末库存"), new StringFieldDef("期末库存金额") }); String[][] data = (String[][]) result; MemoryProxy proxy = new MemoryProxy(data); ArrayReader reader = new ArrayReader(recordDef); final Store store = new Store(proxy, reader,false); ColumnConfig clmcColumn = new ColumnConfig("材料名称", "材料名称", 220, false); clmcColumn.setAlign(TextAlign.CENTER); ColumnConfig ggxhColumn = new ColumnConfig("规格型号", "规格型号", 400, false); ggxhColumn.setAlign(TextAlign.CENTER); ColumnConfig jldwColumn = new ColumnConfig("单位", "计量单位", 60, false); jldwColumn.setAlign(TextAlign.CENTER); ColumnConfig qmkcColumn = new ColumnConfig("数量", "期末库存", 110, false); qmkcColumn.setAlign(TextAlign.CENTER); ColumnConfig qmkcjeColumn = new ColumnConfig("金额", "期末库存金额", 150, false); qmkcjeColumn.setAlign(TextAlign.CENTER); ColumnModel columnModel = new ColumnModel(new ColumnConfig[]{ clmcColumn, ggxhColumn, jldwColumn, qmkcColumn, qmkcjeColumn }); grid = new GridPanel(); grid.setHeight(400); grid.setWidth(975); grid.setTitle("库存明细查询"); grid.setStore(store); grid.setColumnModel(columnModel); grid.setTrackMouseOver(false); grid.setLoadMask(true); grid.setSelectionModel(new RowSelectionModel()); grid.setFrame(true); grid.setStripeRows(true); grid.setIconCls("grid-icon"); Toolbar topToolbar = new Toolbar(); topToolbar.addFill(); grid.setTopToolbar(topToolbar); GridSearchPlugin gridSearch = new GridSearchPlugin(GridSearchPlugin.TOP); gridSearch.init(grid); gridSearch.setMode(GridSearchPlugin.LOCAL); grid.addPlugin(gridSearch); /*Toolbar bottomToolbar = new Toolbar(); bottomToolbar.addFill(); bottomToolbar.addButton(new ToolbarButton("条件清除", new ButtonListenerAdapter() { public void onClick(Button button, EventObject e) { grid.clearSortState(true); } })); grid.setBottomToolbar(bottomToolbar);*/ store.load(); final RecordDef recordDef1 = new RecordDef(new FieldDef[] { new StringFieldDef("仓库名称"), new StringFieldDef("库存数量"), new StringFieldDef("库存金额"), new StringFieldDef("当月消耗"), new StringFieldDef("消耗金额") }); ColumnConfig clmcColumn1 = new ColumnConfig("仓库名称", "仓库名称", 320, false); clmcColumn1.setAlign(TextAlign.CENTER); ColumnConfig ggxhColumn1 = new ColumnConfig("库存数量", "库存数量", 110, false); ggxhColumn1.setAlign(TextAlign.CENTER); ColumnConfig jldwColumn1 = new ColumnConfig("库存金额", "库存金额", 200, false); jldwColumn1.setAlign(TextAlign.CENTER); ColumnConfig qmkcColumn1 = new ColumnConfig("当月消耗", "当月消耗", 110, false); qmkcColumn1.setAlign(TextAlign.CENTER); ColumnConfig qmkcjeColumn1 = new ColumnConfig("消耗金额", "消耗金额", 200, false); qmkcjeColumn1.setAlign(TextAlign.CENTER); ColumnModel columnModel1 = new ColumnModel(new ColumnConfig[]{ clmcColumn1, ggxhColumn1, jldwColumn1, qmkcColumn1, qmkcjeColumn1 }); String[][] data1 = null; data1 = new String[1][5]; data1[0][0]= ""; data1[0][1]= ""; data1[0][2]= ""; data1[0][3]= ""; data1[0][4]= ""; MemoryProxy proxy1 = new MemoryProxy(data1); ArrayReader reader1 = new ArrayReader(recordDef1); Store store1 = new Store(proxy1, reader1,false); store1.load(); grid.addGridRowListener(new GridRowListener(){ public void onRowDblClick(GridPanel grid, int rowIndex, EventObject e){ action.queryData1(new AsyncCallback(){ public void onFailure(Throwable caught) { } public void onSuccess(Object result) { final RecordDef recordDef1 = new RecordDef(new FieldDef[] { new StringFieldDef("仓库名称"), new StringFieldDef("库存数量"), new StringFieldDef("库存金额"), new StringFieldDef("当月消耗"), new StringFieldDef("消耗金额") }); ColumnConfig clmcColumn1 = new ColumnConfig("仓库名称", "仓库名称", 320, false); clmcColumn1.setAlign(TextAlign.CENTER); ColumnConfig ggxhColumn1 = new ColumnConfig("库存数量", "库存数量", 110, false); ggxhColumn1.setAlign(TextAlign.CENTER); ColumnConfig jldwColumn1 = new ColumnConfig("库存金额", "库存金额", 200, false); jldwColumn1.setAlign(TextAlign.CENTER); ColumnConfig qmkcColumn1 = new ColumnConfig("当月消耗", "当月消耗", 110, false); qmkcColumn1.setAlign(TextAlign.CENTER); ColumnConfig qmkcjeColumn1 = new ColumnConfig("消耗金额", "消耗金额", 200, false); qmkcjeColumn1.setAlign(TextAlign.CENTER); ColumnModel columnModel1 = new ColumnModel(new ColumnConfig[]{ clmcColumn1, ggxhColumn1, jldwColumn1, qmkcColumn1, qmkcjeColumn1 }); String[][] data1 = (String[][]) result; MemoryProxy proxy1 = new MemoryProxy(data1); ArrayReader reader1 = new ArrayReader(recordDef1); Store store1 = new Store(proxy1, reader1,false); grid1.reconfigure(store1, columnModel1); store1.reload(); } }); } public void onRowClick(GridPanel grid, int rowIndex, EventObject e){ } public void onRowContextMenu(GridPanel grid, int rowIndex, EventObject e){ } }); panel.add(grid); grid1 = new GridPanel(); grid1.setHeight(160); grid1.setWidth(975); grid1.setStore(store1); grid1.setColumnModel(columnModel1); grid1.setTrackMouseOver(false); grid1.setLoadMask(true); grid1.setSelectionModel(new RowSelectionModel()); grid1.setFrame(true); grid1.setStripeRows(true); panel.add(grid1); RootPanel.get().add(panel); } }); } }
2008年6月30日 16:22
目前还没有答案
相关推荐
通过《GWT 揭秘》的源代码,读者可以学习到如何创建GWT项目,设置模块,使用GWT的UI组件,实现异步通信,以及优化和调试代码。此外,书中可能还涵盖了自定义Widget、国际化、CSS样式控制、单元测试等方面的内容。 ...
GWT通过将Java代码编译为高度优化的JavaScript,实现了浏览器独立性和代码效率的提升。本文将深入探讨如何利用GWT进行性能优化,以及为什么选择GWT作为Ajax开发的首选框架。 首先,GWT的编译器是其性能优化的核心。...
GWT允许开发者使用Java语言编写客户端代码,然后通过编译器将其转换为优化过的JavaScript,以便在各种浏览器上运行。这个“gwt 练习 gwt学习”项目可能是为了帮助用户熟悉GWT的基本概念、开发流程和最佳实践。 在...
通常,这样的设计可能涉及到如何优雅地组织GWT代码结构、实现可重用的组件或遵循特定的设计原则,如MVP(Model-View-Presenter)模式,用于分离视图逻辑和业务逻辑。 标签“源码”和“工具”表明这篇博客可能探讨了...
进阶内容可能包括自定义组件开发、性能优化以及EXT-GWT的高级特性。 “GWT快速开发”这部分教程则专注于提高开发效率,可能包含了GWT的开发工具、IDE集成、代码生成、调试技巧等内容,让开发者能快速上手并高效地...
GWT的核心在于它的Java-to-JavaScript编译器,你可以像平常编写Java程序一样编写GWT代码。例如,创建UI界面可以使用`com.google.gwt.user.client.ui`包下的各种组件,如`Panel`、`Widget`等。 **3. 事件处理** GWT...
GWT编译器将Java源代码转换为优化过的JavaScript,包括死代码消除、类型检查和代码分割等优化。理解编译过程有助于提高应用性能。 10. **GWT应用部署**: 学习如何将GWT应用打包成WAR文件,然后部署到Web服务器,...
开发者可以通过GWT的开发模式或编译模式运行项目,前者提供快速迭代,后者则生成优化过的代码。 6. **异步通信(RPC)**:如果示例涉及服务器端交互,GWT的Remote Procedure Call (RPC)机制可以帮助客户端与服务器...
GWT的核心理念是让开发者用熟悉的Java语言进行Web开发,然后通过GWT编译器将Java代码转换为优化过的JavaScript,确保在各种主流浏览器上运行流畅。这极大地提高了开发效率,降低了学习曲线,因为Java开发者无需额外...
- **代码编辑支持**:集成的代码编辑器提供了语法高亮、代码提示、错误检查等功能,便于编写GWT代码。 - **设计视图**:通过可视化界面,开发者可以在设计视图中布局和预览应用界面,无需直接编写HTML和CSS。 - **...
Google Web Toolkit(GWT)是一个开放源代码的Java框架,它允许开发者使用Java语言来编写富互联网应用程序(Rich Internet Applications,RIA),并将其编译成优化的JavaScript代码,从而在浏览器中运行。GWT的主要...
6. **编写GWT代码**:使用GWT的模块化结构,开发者可以创建多个GWT模块,每个模块包含一组相关的类。使用Java编写业务逻辑和用户界面,GWT会自动处理跨浏览器兼容性问题。 7. **编译与测试**:通过GWT的开发服务器...
GWT(Google Web Toolkit)是Google推出的一款开源的JavaScript开发框架,它允许开发者使用Java语言编写Web应用程序,并自动生成优化的JavaScript代码。RPC(Remote Procedure Call)是GWT中的一个核心特性,用于...
GWT提供了强大的编译器,可以将Java源代码优化为高效的JavaScript,包括死代码消除、代码混淆等,以提高应用的运行效率和安全性。同时,GWT还支持多种优化级别,以适应不同的开发需求。 5. **开发与调试**: GWT...
- **高性能**: 通过高效的编译器优化,GWT可以生成高性能的前端代码。 - **易于开发**: 开发者可以直接使用熟悉的Java语言进行前端开发,提高了开发效率。 - **应用场景**: - 构建复杂的客户端应用程序,例如...
此外,GWT的代码优化选项可以根据需求选择不同程度的压缩和混淆,以提高应用的加载速度和性能。 六、案例分析 GWT 1.3.1在许多实际项目中发挥了重要作用,例如,它被用于构建复杂的Web应用程序,如企业级的信息管理...
8. **性能优化**:提供优化向导,帮助开发者进行代码优化,减少代码大小,提高应用加载速度。 9. **更新管理**:虽然描述中提到了Software Updates的速度问题,但Eclipse的更新管理功能通常允许用户自定义更新源,...
5. **编写GWT代码**: 开始编写你的GWT应用。在Java源代码中,创建用户界面元素,如 panels、widgets,并实现业务逻辑。GWT提供了丰富的API和UI控件,可以实现复杂的交互。 6. **编译与调试**: 使用GWT的开发...
7. **性能优化**:GWT 2.1.0对性能进行了大量优化,包括更高效的代码压缩、资源加载优化以及对DOM操作的改进,使得Web应用运行更快。 8. **开发工具**:GWT SDK包含了开发所需的全部工具,如开发环境集成(Eclipse...