0 0

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);
			}
		});
	}
}
GWT 
2008年6月30日 16:22
目前还没有答案

相关推荐

    gwt揭秘源代码

    通过《GWT 揭秘》的源代码,读者可以学习到如何创建GWT项目,设置模块,使用GWT的UI组件,实现异步通信,以及优化和调试代码。此外,书中可能还涵盖了自定义Widget、国际化、CSS样式控制、单元测试等方面的内容。 ...

    GWT性能优化,利用GWT开发高性能Ajax应用,始终做好缓存, 程序压缩

    GWT通过将Java代码编译为高度优化的JavaScript,实现了浏览器独立性和代码效率的提升。本文将深入探讨如何利用GWT进行性能优化,以及为什么选择GWT作为Ajax开发的首选框架。 首先,GWT的编译器是其性能优化的核心。...

    gwt 练习 gwt学习

    GWT允许开发者使用Java语言编写客户端代码,然后通过编译器将其转换为优化过的JavaScript,以便在各种浏览器上运行。这个“gwt 练习 gwt学习”项目可能是为了帮助用户熟悉GWT的基本概念、开发流程和最佳实践。 在...

    GWT

    通常,这样的设计可能涉及到如何优雅地组织GWT代码结构、实现可重用的组件或遵循特定的设计原则,如MVP(Model-View-Presenter)模式,用于分离视图逻辑和业务逻辑。 标签“源码”和“工具”表明这篇博客可能探讨了...

    GWT入门 GWT中文教程

    进阶内容可能包括自定义组件开发、性能优化以及EXT-GWT的高级特性。 “GWT快速开发”这部分教程则专注于提高开发效率,可能包含了GWT的开发工具、IDE集成、代码生成、调试技巧等内容,让开发者能快速上手并高效地...

    GWT入门和进阶

    GWT的核心在于它的Java-to-JavaScript编译器,你可以像平常编写Java程序一样编写GWT代码。例如,创建UI界面可以使用`com.google.gwt.user.client.ui`包下的各种组件,如`Panel`、`Widget`等。 **3. 事件处理** GWT...

    GWT入门与经典实例解析源码

    GWT编译器将Java源代码转换为优化过的JavaScript,包括死代码消除、类型检查和代码分割等优化。理解编译过程有助于提高应用性能。 10. **GWT应用部署**: 学习如何将GWT应用打包成WAR文件,然后部署到Web服务器,...

    GwtDemo helloworld

    开发者可以通过GWT的开发模式或编译模式运行项目,前者提供快速迭代,后者则生成优化过的代码。 6. **异步通信(RPC)**:如果示例涉及服务器端交互,GWT的Remote Procedure Call (RPC)机制可以帮助客户端与服务器...

    GWT入门教程+实例代码

    GWT的核心理念是让开发者用熟悉的Java语言进行Web开发,然后通过GWT编译器将Java代码转换为优化过的JavaScript,确保在各种主流浏览器上运行流畅。这极大地提高了开发效率,降低了学习曲线,因为Java开发者无需额外...

    GWT Eclipse 3.5 插件

    - **代码编辑支持**:集成的代码编辑器提供了语法高亮、代码提示、错误检查等功能,便于编写GWT代码。 - **设计视图**:通过可视化界面,开发者可以在设计视图中布局和预览应用界面,无需直接编写HTML和CSS。 - **...

    GWT开发环境JAVA

    Google Web Toolkit(GWT)是一个开放源代码的Java框架,它允许开发者使用Java语言来编写富互联网应用程序(Rich Internet Applications,RIA),并将其编译成优化的JavaScript代码,从而在浏览器中运行。GWT的主要...

    Google plugin sdk GWT

    6. **编写GWT代码**:使用GWT的模块化结构,开发者可以创建多个GWT模块,每个模块包含一组相关的类。使用Java编写业务逻辑和用户界面,GWT会自动处理跨浏览器兼容性问题。 7. **编译与测试**:通过GWT的开发服务器...

    GWT RPC详细例子:代码加文档说明

    GWT(Google Web Toolkit)是Google推出的一款开源的JavaScript开发框架,它允许开发者使用Java语言编写Web应用程序,并自动生成优化的JavaScript代码。RPC(Remote Procedure Call)是GWT中的一个核心特性,用于...

    GWT-API.rar

    GWT提供了强大的编译器,可以将Java源代码优化为高效的JavaScript,包括死代码消除、代码混淆等,以提高应用的运行效率和安全性。同时,GWT还支持多种优化级别,以适应不同的开发需求。 5. **开发与调试**: GWT...

    GWT快速开发(GWT) 是一个Java软件开发框架用于开发类似于Google Maps和Gmail的AJAX应用程序。GWT的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等。你可以用Java编程语言开发你的界面,然后用GWT编译器将Java类转换成适合浏览器执行的...

    - **高性能**: 通过高效的编译器优化,GWT可以生成高性能的前端代码。 - **易于开发**: 开发者可以直接使用熟悉的Java语言进行前端开发,提高了开发效率。 - **应用场景**: - 构建复杂的客户端应用程序,例如...

    gwt-windows-1.3.1

    此外,GWT的代码优化选项可以根据需求选择不同程度的压缩和混淆,以提高应用的加载速度和性能。 六、案例分析 GWT 1.3.1在许多实际项目中发挥了重要作用,例如,它被用于构建复杂的Web应用程序,如企业级的信息管理...

    GWT Eclipse 3.4 插件

    8. **性能优化**:提供优化向导,帮助开发者进行代码优化,减少代码大小,提高应用加载速度。 9. **更新管理**:虽然描述中提到了Software Updates的速度问题,但Eclipse的更新管理功能通常允许用户自定义更新源,...

    gwt-2.5.1.zip

    5. **编写GWT代码**: 开始编写你的GWT应用。在Java源代码中,创建用户界面元素,如 panels、widgets,并实现业务逻辑。GWT提供了丰富的API和UI控件,可以实现复杂的交互。 6. **编译与调试**: 使用GWT的开发...

    gwt 2.1.0 工具下载

    7. **性能优化**:GWT 2.1.0对性能进行了大量优化,包括更高效的代码压缩、资源加载优化以及对DOM操作的改进,使得Web应用运行更快。 8. **开发工具**:GWT SDK包含了开发所需的全部工具,如开发环境集成(Eclipse...

Global site tag (gtag.js) - Google Analytics