package com.jcommerce.gwt.client.panels.orders; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.extjs.gxt.ui.client.Style.HorizontalAlignment; import com.extjs.gxt.ui.client.event.ComponentEvent; import com.extjs.gxt.ui.client.event.Listener; import com.extjs.gxt.ui.client.event.MessageBoxEvent; import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.widget.ContentPanel; import com.extjs.gxt.ui.client.widget.Dialog; import com.extjs.gxt.ui.client.widget.Info; import com.extjs.gxt.ui.client.widget.MessageBox; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; import com.extjs.gxt.ui.client.widget.grid.ColumnModel; import com.extjs.gxt.ui.client.widget.grid.EditorGrid; import com.extjs.gxt.ui.client.widget.grid.Grid; import com.extjs.gxt.ui.client.widget.layout.FitLayout; import com.google.gwt.user.client.ui.TextBox; import com.jcommerce.gwt.client.ModelNames; import com.jcommerce.gwt.client.form.BeanObject; import com.jcommerce.gwt.client.model.ICard; import com.jcommerce.gwt.client.model.IOrder; import com.jcommerce.gwt.client.model.IPack; import com.jcommerce.gwt.client.service.Criteria; import com.jcommerce.gwt.client.service.ListService; import com.jcommerce.gwt.client.widgets.ActionCellRenderer; import com.jcommerce.gwt.client.widgets.ColumnPanel; public class OtherPanel extends ContentPanel{ private ListStore<BeanObject> packStore; private ListStore<BeanObject> cardStore; private Criteria criteria = new Criteria(); private BeanObject pack; private BeanObject card; private ColumnPanel contentPanel; private Map<String, Object> orderInfoMap; BeanObject order = new BeanObject(ModelNames.ORDER); public BeanObject getOrder() { order.setValues(contentPanel.getValues()); order.set(IOrder.CARD, card.getString(ICard.ID)); order.set(IOrder.PACK, card.getString(IPack.ID)); order.set(IOrder.CARDNAME, card.getString(ICard.NAME)); order.set(IOrder.PACKNAME, card.getString(IPack.NAME)); return order; } public void setOrder(BeanObject order) { this.order = order; } private native void initJS(OtherPanel me) /*-{ $wnd.choosePack = function (id) { me.@com.jcommerce.gwt.client.panels.orders.OtherPanel::choosePack(Ljava/lang/String;)(id); }; $wnd.chooseCard = function (id) { me.@com.jcommerce.gwt.client.panels.orders.OtherPanel::chooseCard(Ljava/lang/String;)(id); }; }-*/; public OtherPanel() { initJS(this); ContentPanel totalPanel = new ContentPanel(); List<ColumnConfig> packColumns = new ArrayList<ColumnConfig>(); packStore = new ListStore<BeanObject>(); new ListService().listBeans(ModelNames.PACK, criteria, new ListService.Listener(){ public void onSuccess(List<BeanObject> beans) { for(int i=0; i<beans.size(); i++) { packStore.add(beans.get(i)); } } }); packColumns.add(new ColumnConfig(IPack.NAME, "名称", 80)); packColumns.add(new ColumnConfig(IPack.FEE, "包装费", 104)); packColumns.add(new ColumnConfig(IPack.FREEMONEY, "免费额度", 80)); ColumnConfig packActcol = new ColumnConfig("Action", "选 取", 100); packColumns.add(packActcol); ColumnModel packCm = new ColumnModel(packColumns); Grid<BeanObject> packGrid = new EditorGrid<BeanObject>(packStore, packCm); packGrid.setLoadMask(true); packGrid.setBorders(true); packGrid.setSize(750, 150); ActionCellRenderer packRender = new ActionCellRenderer(packGrid); ActionCellRenderer.ActionInfo packAct = null; packAct = new ActionCellRenderer.ActionInfo(); packAct.setImage("yes.gif"); packAct.setAction("choosePack($id)"); packRender.addAction(packAct); packActcol.setRenderer(packRender); final ContentPanel selectPackPanel = new ContentPanel(); selectPackPanel.setFrame(true); selectPackPanel.setCollapsible(true); selectPackPanel.setAnimCollapse(false); selectPackPanel.setSize(750, 150); selectPackPanel.setButtonAlign(HorizontalAlignment.CENTER); selectPackPanel.setLayout(new FitLayout()); selectPackPanel.setHeading("选择包装"); selectPackPanel.add(packGrid); cardStore = new ListStore<BeanObject>(); new ListService().listBeans(ModelNames.CARD, criteria, new ListService.Listener(){ public void onSuccess(List<BeanObject> beans) { for(int i=0; i<beans.size(); i++) { cardStore.add(beans.get(i)); } } }); List<ColumnConfig> cardColumns = new ArrayList<ColumnConfig>(); cardColumns.add(new ColumnConfig(ICard.NAME, "名称", 80)); cardColumns.add(new ColumnConfig(ICard.FEE, "贺卡费", 104)); cardColumns.add(new ColumnConfig(ICard.FREEMONEY, "免费额度", 80)); ColumnConfig carActcol = new ColumnConfig("Action", "选 取", 100); cardColumns.add(carActcol); ColumnModel cardCm = new ColumnModel(cardColumns); Grid<BeanObject> cardGrid = new EditorGrid<BeanObject>(cardStore, cardCm); cardGrid.setLoadMask(true); cardGrid.setBorders(true); cardGrid.setSize(750, 150); ActionCellRenderer cardRender = new ActionCellRenderer(cardGrid); ActionCellRenderer.ActionInfo cardAct = null; cardAct = new ActionCellRenderer.ActionInfo(); cardAct.setImage("yes.gif"); cardAct.setAction("chooseCard($id)"); cardRender.addAction(cardAct); carActcol.setRenderer(cardRender); final ContentPanel selectCardPanel = new ContentPanel(); selectCardPanel.setFrame(true); selectCardPanel.setCollapsible(true); selectCardPanel.setAnimCollapse(false); selectCardPanel.setSize(750, 150); selectCardPanel.setButtonAlign(HorizontalAlignment.CENTER); selectCardPanel.setLayout(new FitLayout()); selectCardPanel.setHeading("选择贺卡"); selectCardPanel.add(cardGrid); /** * Set other information */ ContentPanel otherInformation = new ContentPanel(); contentPanel = new ColumnPanel(); TextBox cardMessageBox = new TextBox(); cardMessageBox.setSize("500px", "50px"); cardMessageBox.setEnabled(true); contentPanel.createPanel(IOrder.CARDMESSAGE, "贺卡祝福语:", cardMessageBox); TextBox invoiceType = new TextBox(); invoiceType.setWidth("300px"); invoiceType.setEnabled(true); contentPanel.createPanel(IOrder.INVOICETYPE, "发票类型:", invoiceType); TextBox invoiceTitle = new TextBox(); invoiceTitle.setWidth("300px"); invoiceTitle.setEnabled(true); contentPanel.createPanel(IOrder.INVOICENO, "发票抬头:", invoiceTitle); TextBox invoiceContent = new TextBox(); invoiceContent.setWidth("300px"); invoiceContent.setEnabled(true); contentPanel.createPanel(IOrder.INVOICECONTENT, "发票内容:", invoiceContent); TextBox toSeller = new TextBox(); toSeller.setSize("500px", "50px"); toSeller.setEnabled(true); contentPanel.createPanel("toSeller", "客户给商家的留言:", toSeller); TextBox howOos = new TextBox(); howOos.setWidth("300px"); howOos.setEnabled(true); contentPanel.createPanel(IOrder.HOWSURPLUS, "缺货处理:", howOos); TextBox toBuyer = new TextBox(); toBuyer.setSize("500px", "50px"); toBuyer.setEnabled(true); contentPanel.createPanel(IOrder.TOBUYER, "商家给客户的留言:", toBuyer); otherInformation.setFrame(true); otherInformation.setCollapsible(true); otherInformation.setButtonAlign(HorizontalAlignment.CENTER); otherInformation.setIconStyle("icon-table"); otherInformation.setButtonAlign(HorizontalAlignment.CENTER); otherInformation.add(contentPanel); totalPanel.add(selectPackPanel); totalPanel.add(selectCardPanel); totalPanel.add(otherInformation); this.setHeading("设置其它信息"); this.setSize(780, 750); this.add(totalPanel); } public boolean valiatePanelInfor() { if(pack == null) { Info.display("Error", "Pelase select a pack for your goods"); return false; } if(card == null) { Info.display("Error", "Pelase select a card for your deal"); return false; } orderInfoMap = contentPanel.getValues(); return true; } private void choosePack(String id) { int lineIndex = -1; for(int i=0; i<packStore.getCount(); i++) { BeanObject thePack = packStore.getAt(i); if(thePack.getString(IPack.ID).equals(id)) { pack = thePack; lineIndex = i; break; } else { continue; } } if(lineIndex > -1) { final Listener<MessageBoxEvent> deleteListener = new Listener<MessageBoxEvent>() { public void handleEvent(MessageBoxEvent ce) { Button btn = ce.getButtonClicked(); if (btn.getText().equals("是")) { packStore.removeAll(); } } }; MessageBox.confirm("Confirm", "Are you sure you want to choose this Pack: " + pack.getString(IPack.NAME) + " ?", deleteListener); } else { Info.display("Error", "Cannot find the packObject you selected."); } } private void chooseCard(String id) { int lineIndex = -1; for(int i=0; i<cardStore.getCount(); i++) { BeanObject theCard = cardStore.getAt(i); if(theCard.getString(IPack.ID).equals(id)) { card = theCard; lineIndex = i; break; } else { continue; } } if(lineIndex > -1) { final Listener<MessageBoxEvent> deleteListener = new Listener<MessageBoxEvent>() { public void handleEvent(MessageBoxEvent ce) { Button btn = ce.getButtonClicked(); if (btn.getText().equals("是")) { cardStore.removeAll(); } } }; MessageBox.confirm("Confirm", "Are you sure you want to choose this Card: " + card.getString(ICard.NAME) + " ?", deleteListener); } else { Info.display("Error", "Cannot find the cardObject you selected."); } } public BeanObject getPack() { return pack; } public BeanObject getCard() { return card; } public Map<String, Object> getOrderInfoMap() { return orderInfoMap; } }