ext例子

main.jsp

  1. "text/html; charset=utf-8"%>
  2. import="org.acegisecurity.context.SecurityContext, org.acegisecurity.userdetails.UserDetails" %>
  3. /span>"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  4. House Charge Expenses System
  5. "content-type" content="text/html; charset=utf-8" />
  6. "content-language" content="utf-8" />
  7. "all" name="robots" />
  8. "author" content="ark"/>
  9. "copyright" content="ark" />
  10. "description" content="just for testing" />
  11. "keywords" content="family,finance,study" />
  12. "stylesheet" type="text/css" href="/ajaxlib/ext/resources/css/ext-all.css" />
  13. "stylesheet" type="text/css" href="/ajaxlib/mylib/ext-patch.css" />
  14. "stylesheet" type="text/css" href="/css/windows.css" />
  15. src="<%=request.getContextPath() %>/ajaxlib/ext/adapter/ext/ext-base.js">
  16. src="<%=request.getContextPath() %>/ajaxlib/ext/ext-all-debug.js">
  17. src="<%=request.getContextPath() %>/ajaxlib/ext/ext-lang-zh_CN.js">
  18. <!--buffalo--&gt
  19. src="<%=request.getContextPath() %>/ajaxlib/buffalo/prototype.js">
  20. src="<%=request.getContextPath() %>/ajaxlib/buffalo/buffalo.js">
  21. src="<%=request.getContextPath() %>/ajaxlib/mylib/buffaloext.js">
  22. src="<%=request.getContextPath() %>/ajaxlib/mylib/dwrproxy.js">
  23. src="<%=request.getContextPath() %>/ajaxlib/mylib/ext-lang-zh.js">
  24. src="<%=request.getContextPath() %>/dwr/interface/houseChargeService.js">
  25. src="<%=request.getContextPath() %>/dwr/engine.js">
  26. > />
  27. dwr.engine.setAsync(false);//同步 />
  28. var ContextPath="<%=request.getContextPath() %>" />
  29. var END_POINT="<%=request.getContextPath() %>/bfapp"; />
  30. var buffalo = new Buffalo(END_POINT,false); />
  31. src="<%=request.getContextPath() %>/ajaxlib/mylib/buffaloext.js">
  32. src="desktop.js">
  33. src="windows.js">
  34. src="<%=request.getContextPath() %>/steady/chargeItem.js">
  35. src="<%=request.getContextPath() %>/steady/incomeItem.js">
  36. src="<%=request.getContextPath() %>/steady/familyMember.js">
  37. src="<%=request.getContextPath() %>/steady/bankAccount.js">
  38. src="<%=request.getContextPath() %>/daily/incomeDaily.js">
  39. "x-taskbar" >
  40. "title-bar" >House Charge Expenses System
  41. "logname" >用户名:class="username">
  42. SecurityContext context=(SecurityContext)request.getSession().getAttribute("ACEGI_SECURITY_CONTEXT");
  43. UserDetails userDetails=(UserDetails)context.getAuthentication().getPrincipal();
  44. out.print(userDetails.getUsername());
  45. %>
  46. | "/logout.html">登出
"x-launcher-wrap" >
"x-launcher-inner" >
"x-launcher-left" >
"x-launcher-right" >
"x-launcher-center" >
"x-launcher" >
"x-info" >
"x-desktop" >
"x-windows" >
"x-winlist" >
"spacer" >
class = "x-clear" >

windows.js

  1. Myapp = new Ext.app.App({
  2. init :function(){
  3. Ext.QuickTips.init();
  4. },
  5. getModules : function(){
  6. return [
new chargeItemWindow(), new incomeItemWindow(), new familyMemberWindow(), new bankAccountWindow(), new incomeDailyWindow(), ]; } });

familyMember.js

  1. familyMemberWindow = Ext.extend(Ext.app.Module, {
  2. init : function(){
  3. this.launcher = {
text: '家庭成员' , iconCls: 'icon-grid' , handler : this .createWindow, scope: this } }, createWindow : function(){ var desktop = this .app.getDesktop(); var cm = new Ext.grid.ColumnModel([{ header: '姓名' , dataIndex: 'name' , width: 220 , editor: new Ext.grid.GridEditor( new Ext.form.TextField({allowBlank: false })) }]); // by default columns are sortable cm.defaultSortable = true ; var FamilyMember = Ext.data.Record.create([ {name: 'id' ,type: 'int' ,mapping: 'id' }, {name: 'name' ,type: 'string' ,mapping: 'name' } ]); var ds = new Ext.data.Store({ proxy: new Buffalo.Ext.DataProxy(buffalo, "houseChargeService.getAllFamilyMember" ,[]), reader: new Ext.data.ArrayReader({id: 'id' }, FamilyMember), // turn off remote sorting remoteSort: false }); var gridPanel = new Ext.grid.EditorGridPanel({ store: ds, cm: cm, selModel: new Ext.grid.CellSelectionModel(), enableColLock: false , buttonAlign: 'top' , tbar:[{ text: '新增' , handler :doAdd },{ text: '保存' , handler : doSave },{ text: '删除' , handler : doDel }] }); var win = desktop.getWindow( 'familyMember-win' ); if (!win){ win = desktop.createWindow({ id: 'familyMember-win' , title: '家庭成员' , width: 740 , height: 460 , x: 10 , y: 10 , iconCls: 'icon-grid' , shim: false , animCollapse: false , constrainHeader: true , layout: 'fit' , items: gridPanel }); } ds.load(); win.show(); function doAdd() { var p = new FamilyMember({ id:- 1 , name: '' }); gridPanel.stopEditing(); var yetCount=ds.getCount(); ds.insert(yetCount, p); //标示cell已修改过 ds.getAt(yetCount).set( "name" , '未命名' ); gridPanel.startEditing(yetCount, 0 ); } function doSave() { var eds=ds.getModifiedRecords().slice( 0 ); for (var i = 0 ;i record =eds[i]; if (record.get( "id" )==- 1 ) { buffalo.remoteCall( "houseChargeService.createFamilyMember" ,[record.get( "name" )],function(reply) { var sucess = reply.getResult(); if (sucess== 1 ) { alert( "重复姓名!" ); } else { if (sucess!= 0 ) { alert( "保存失败!" ); } else { record.commit(); } } }); } else { buffalo.remoteCall( "houseChargeService.updateFamilyMember" ,[record.get( "id" ),record.get( "name" )],function(reply) { var sucess = reply.getResult(); if (sucess== 1 ) { alert( "重复姓名!" ); } else { if (sucess!= 0 ) { alert( "保存失败!" ); } else { record.commit(); } } }); } } } function doDel(){ if (gridPanel.selModel.hasSelection()){ Ext.MessageBox.confirm( 'Message' , '确定删除吗?' , doDelDetail); } else { Ext.MessageBox.alert( 'Error' , '请选中一行!' ); } } function doDelDetail(btn) { if (btn == 'yes' ) { var record = ds.getAt(gridPanel.selModel.getSelectedCell()[ 0 ]); if (record.get( "id" )==- 1 ) { ds.remove(record); } else { buffalo.remoteCall( "houseChargeService.deleteFamilyMember" ,[record.get( "id" )],function(reply) { var sucess = reply.getResult(); if (sucess!= 0 ) { alert( " 删除失败!" ); } else { ds.remove(record); } }); } } } } });

incomeDaily.js

  1. incomeDailyWindow = Ext.extend(Ext.app.Module, {
  2. init : function(){
  3. this.launcher = {
text: '收入日记录' , iconCls: 'icon-grid' , handler : this .createWindow, scope: this } }, createWindow : function(){ var desktop = this .app.getDesktop(); Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side' ; var cm = new Ext.grid.ColumnModel([ { header: "收入项目" , sortable: true , dataIndex: 'incomeItem_name' , width: 100 },{ header: "日期" , dataIndex: 'date' , width: 60 , renderer:Ext.util.Format.dateRenderer( 'Y/m/d' ) },{ header: "金额" , dataIndex: 'amount' , align: 'right' , width: 100 },{ header: "家庭成员" , dataIndex: 'familyMember_name' , width: 80 },{ header: "银行" , dataIndex: 'bankAccount_bank' , width: 120 },{ header: "帐号" , dataIndex: 'bankAccount_accountNo' , width: 120 },{ header: "备注" , dataIndex: 'remark' , width: 80 }]); // by default columns are sortable cm.defaultSortable = true ; var IncomeDaily = Ext.data.Record.create([ {name: 'id' ,type: 'int' ,mapping: 'id' }, {name: 'incomeItem_name' , type: 'string' ,mapping: 'incomeItem.name' }, {name: 'date' , type: 'date' ,dateFormat: 'Y/m/d' ,mapping: 'date' }, {name: 'amount' , type: 'float' ,mapping: 'amount' }, {name: 'familyMember_name' , type: 'string' ,mapping: 'familyMember.name' }, {name: 'bankAccount_bank' , type: 'string' ,mapping: 'bankAccount.bank' }, {name: 'bankAccount_accountNo' , type: 'string' ,mapping: 'bankAccount.accountNo' }, {name: 'remark' , type: 'string' ,mapping: 'remark' } ]); var ds = new Ext.data.Store({ proxy: new Ext.data.DWRProxy(houseChargeService.findIncomeDaily), reader: new Ext.data.JsonReader({totalProperty: 'total' ,root: 'list' ,id: 'id' },IncomeDaily), remoteSort: false , }); var gridPanel = new Ext.grid.EditorGridPanel({ ds:ds, cm: cm, sm: new Ext.grid.RowSelectionModel({singleSelect: true }), enableColLock: false , autoSizeColumns: true , buttonAlign: 'top' , tbar:[{ text: '新增' , handler :doAdd },{ text: '查询' , handler : doQuery },{ text: '删除' , handler : doDel }], bbar: new Ext.PagingToolbar({ pageSize: 2 , store: ds, displayInfo: true }) }); var win = desktop.getWindow( 'incomeDaily-win' ); if (!win){ win = desktop.createWindow({ id: 'incomeDaily-win' , title: '收入日记录' , width: 740 , height: 460 , x: 10 , y: 10 , iconCls: 'icon-grid' , shim: false , animCollapse: false , constrainHeader: true , layout: 'fit' , items: gridPanel }); } win.show(); function doAdd() { var allIncomeItem=[]; buffalo.remoteCall( "houseChargeService.findRootIncomeItem" ,[], function(reply) { getChild(reply.getResult()); function getChild(parent) { if (parent.children.lengt== 0 ) { return 0 ; } for (var i= 0 ; i allIncomeItem.push([parent.children[i].id,parent.children[i].name]); getChild(parent.children[i]); } } }); var allFamilyMember=[]; buffalo.remoteCall( "houseChargeService.getAllFamilyMember" ,[],function(reply) { var list = reply.getResult(); for (var i= 0 ; i allFamilyMember.push([list[i].id,list[i].name]); } }); var allBankAccount=[]; buffalo.remoteCall( "houseChargeService.getAllBankAccount" ,[],function(reply) { var list = reply.getResult(); for (var i= 0 ; i if (list[i].bank== "现金" ) { allBankAccount.push([list[i].id,list[i].bank]); } else { allBankAccount.push([list[i].id,list[i].bank+ " " +list[i].accountNo+ " " +list[i].cardNo]); } } }); var addForm = new Ext.FormPanel({ onSubmit: Ext.emptyFn, submit: function() { this .getEl().dom.submit(); }, labelWidth: 75 , // label settings here cascade unless overridden frame: true , title: '' , //bodyStyle:'padding:5px 5px 0', ark bodyStyle: 'padding: 0' , width: 350 , labelSeparator: '' , items: [{ xtype: 'combo' , fieldLabel: '家庭成员' , store: new Ext.data.SimpleStore({ fields: [ "id" , "name" ], data: allFamilyMember }), editable: false , hiddenName: 'familyMember_id' , displayField: 'name' , valueField: 'id' , typeAhead: true , mode: 'local' , triggerAction: 'all' , emptyText: '请选择家庭成员' , selectOnFocus: true , resizable: true , allowBlank: false , forceSelection: true },{ xtype: 'datefield' , fieldLabel: '日期' , name: 'date' , width: 100 , allowBlank: false , format: 'Y/m/d' }, { xtype: 'numberfield' , fieldLabel: '金额' , name: 'amount' , width: 100 , allowBlank: false , allowNegative: false , minValue: 0 },{ xtype: 'combo' , fieldLabel: '账户' , store: new Ext.data.SimpleStore({ fields: [ "id" , "name" ], data: allBankAccount }), editable: false , hiddenName: 'bankAccount_id' , displayField: 'name' , valueField: 'id' , typeAhead: true , mode: 'local' , triggerAction: 'all' , emptyText: '请选择账户' , selectOnFocus: true , resizable: true , allowBlank: false , forceSelection: true },{ xtype: 'combo' , fieldLabel: '收入项目' , store: new Ext.data.SimpleStore({ fields: [ "id" , "name" ], data: allIncomeItem }), editable: false , hiddenName: 'incomeItem_id' , displayField: 'name' , valueField: 'id' , typeAhead: true , mode: 'local' , triggerAction: 'all' , emptyText: '请选择收入项目' , selectOnFocus: true , resizable: true , allowBlank: false , forceSelection: true },{ xtype: 'textfield' , fieldLabel: '备注' , name: 'remark' , width: 300 } ], buttons: [{ text: '保存' , handler:function(){ if (addForm.form.isValid()){ var my=addForm.form.getValues(); buffalo.remoteCall( "houseChargeService.createIncomeDaily" ,[parseInt(my.incomeItem_id),Date.parseDate(my.date, "Y/m/d" ),parseFloat(my.amount),parseInt(my.familyMember_id),parseInt(my.bankAccount_id),my.remark],function(reply) { var sucess = reply.getResult(); if (sucess!= 0 ) { alert( "保存失败!" ); } else { alert( "保存成功!" ); } }); addWindow.close(); } } },{ text: '放弃' , handler: function(){ addWindow.close(); } }] }); var addWindow if (!addWindow){ addWindow = new Ext.Window({ id: 'incomeDaily-add-win' , layout: 'fit' , width: 500 , height: 300 , plain: true , items:addForm }); } addWindow.show( this ); addForm.form.setValues({date:( new Date()).format( "Y/m/d" ),familyMember_id: '1' ,bankAccount_id: '1' ,incomeItem_id: '2' }); addForm.form.render(); } function doQuery() { var allIncomeItem=[]; buffalo.remoteCall( "houseChargeService.findRootIncomeItem" ,[], function(reply) { getChild(reply.getResult()); function getChild(parent) { if (parent.children.lengt== 0 ) { return 0 ; } for (var i= 0 ; i allIncomeItem.push([parent.children[i].id,parent.children[i].name]); getChild(parent.children[i]); } } }); //alert(allIncomeItem); var allFamilyMember=[]; buffalo.remoteCall( "houseChargeService.getAllFamilyMember" ,[],function(reply) { var list = reply.getResult(); for (var i= 0 ; i allFamilyMember.push([list[i].id,list[i].name]); } }); var allBankAccount=[]; buffalo.remoteCall( "houseChargeService.getAllBankAccount" ,[],function(reply) { var list = reply.getResult(); for (var i= 0 ; i if (list[i].bank== "现金" ) { allBankAccount.push([list[i].id,list[i].bank]); } else { allBankAccount.push([list[i].id,list[i].bank+ " " +list[i].accountNo+list[i].cardNo]); } } }); var queryForm = new Ext.FormPanel({ onSubmit: Ext.emptyFn, submit: function() { this .getEl().dom.submit(); }, labelWidth: 75 , // label settings here cascade unless overridden frame: true , title: '' , //bodyStyle:'padding:5px 5px 0', ark bodyStyle: 'padding: 0' , width: 350 , labelSeparator: '' , items: [{ xtype: 'fieldset' , checkboxName: 'queryFamilyMember_id' , checkboxToggle: true , title: '按家庭成员查询' , autoHeight: true , defaults: {width: 210 }, collapsed: true , items :[{ xtype: 'combo' , fieldLabel: '家庭成员' , store: new Ext.data.SimpleStore({ fields: [ "id" , "name" ], data: allFamilyMember }), editable: false , hiddenName: 'familyMember_id' , displayField: 'name' , valueField: 'id' , typeAhead: true , mode: 'local' , triggerAction: 'all' , emptyText: '请选择家庭成员' , selectOnFocus: true , resizable: true , allowBlank: false , forceSelection: true }] },{ xtype: 'fieldset' , checkboxToggle: true , checkboxName: 'queryDate' , title: '按日期查询' , autoHeight: true , defaults: {width: 210 }, collapsed: true , items :[{ xtype: 'datefield' , fieldLabel: '日期起' , name: 'dateFrom' , width: 100 , allowBlank: false , format: 'Y/m/d' },{ xtype: 'datefield' , fieldLabel: '日期迄' , name: 'dateTo' , width: 100 , allowBlank: false , format: 'Y/m/d' }] },{ xtype: 'fieldset' , checkboxTog

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/164811/viewspace-998527/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/164811/viewspace-998527/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值