package com.jcommerce.gwt.client.panels.promote; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.extjs.gxt.ui.client.event.ButtonEvent; import com.extjs.gxt.ui.client.event.SelectionListener; import com.extjs.gxt.ui.client.widget.HorizontalPanel; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.form.TextArea; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.TextBox; import com.jcommerce.gwt.client.ContentWidget; import com.jcommerce.gwt.client.ModelNames; import com.jcommerce.gwt.client.PageState; import com.jcommerce.gwt.client.form.BeanObject; import com.jcommerce.gwt.client.model.IGoods; import com.jcommerce.gwt.client.model.IAuction; import com.jcommerce.gwt.client.service.ListService; import com.jcommerce.gwt.client.service.UpdateService; import com.jcommerce.gwt.client.widgets.ColumnPanel; import com.jcommerce.gwt.client.widgets.DateWidget; public class ModifyAuctionPanel extends ContentWidget { private ColumnPanel contentPanel = new ColumnPanel(); public static class State extends PageState { private BeanObject Auction = null; public BeanObject getAuction() { return Auction; } public void setAuction(BeanObject Auction) { this.Auction = Auction; setEditting(Auction != null); } public String getPageClassName() { return ModifyAuctionPanel.class.getName(); } public String getMenuDisplayName() { return "编辑拍卖活动 "; } } public State getCurState() { if (curState == null ) { curState = new State(); } return (State)curState; } public String getDescription() { return "cwBasicTextDescription"; } public String getName() { return "编辑拍卖活动 "; } protected void onRender(Element parent, int index) { super.onRender(parent, index); ColumnPanel topPanel = new ColumnPanel(); final TextBox snTextBox = new TextBox(); snTextBox.setText(this.getCurState().getAuction().getString(IAuction.AUCTION_NAME)); topPanel.createPanel(IAuction.AUCTION_NAME, "拍卖活动名称:", snTextBox); final TextArea descArea = new TextArea(); descArea.setSize(300, 50); descArea.setValue(getCurState().getAuction().getString(IAuction.DESC)); topPanel.createPanel("", "拍卖活动描述:", descArea); HorizontalPanel searchPanel = new HorizontalPanel(); final TextBox searchTextBox = new TextBox(); Button searchButton = new Button("搜索"); searchPanel.add(searchTextBox); searchPanel.add(searchButton); topPanel.createPanel("", "根据商品编号、名称或货号搜索商品", searchPanel); HorizontalPanel selectPanel = new HorizontalPanel(); final ListBox listGoods = new ListBox(); listGoods.addItem("请先搜索商品"); selectPanel.add(listGoods); topPanel.createPanel("", "拍卖商品名称:", selectPanel); final DateWidget startTime = new DateWidget(); final DateWidget endTime = new DateWidget(); topPanel.createPanel("", "拍卖开始时间:", startTime); topPanel.createPanel("", "拍卖结束时间:", endTime); final TextBox startBox = new TextBox(); startBox.setText(getCurState().getAuction().getString(IAuction.START_PRICE)); final TextBox dirBox = new TextBox(); dirBox.setText(getCurState().getAuction().getString(IAuction.DIR_PRICE)); final TextBox addRangeBox = new TextBox(); addRangeBox.setText(getCurState().getAuction().getString(IAuction.ADD_RANGE)); final TextBox secBox = new TextBox(); secBox.setText(getCurState().getAuction().getString(IAuction.SEC_PRICE)); topPanel.createPanel("", "起拍价:", startBox); topPanel.createPanel("", "一口价:", dirBox); topPanel.createPanel("", "加价幅度:", addRangeBox); topPanel.createPanel("", "保证金:", secBox); searchButton.addSelectionListener(new SelectionListener<ButtonEvent>(){ public void componentSelected(ButtonEvent ce) { listGoods.clear(); new ListService().listBeans(ModelNames.GOODS, new ListService.Listener() { public void onSuccess(List<BeanObject> beans) { List<String> goods = new ArrayList<String>(); for(BeanObject bean : beans) { goods.add(bean.getString(IGoods.NAME)); if(bean.getString(IGoods.NAME).equals(searchTextBox.getText()) || bean.getString(IGoods.NUMBER).equals(searchTextBox.getText())) { listGoods.addItem(bean.getString(IGoods.NAME)); } } if(searchTextBox.getText().equals("")) { for(String str : goods) { listGoods.addItem(str); } } } }); }}); HorizontalPanel contentpanel = new HorizontalPanel(); Button okButton = new Button("确定"); Button resetButton = new Button("重置"); contentpanel.setSpacing(30); contentpanel.add(okButton); contentpanel.add(resetButton); contentPanel.add(topPanel); contentPanel.add(contentpanel); add(contentPanel); okButton.addSelectionListener(new SelectionListener<ButtonEvent>() { public void componentSelected(ButtonEvent ce) { Map<String,Object> map = new HashMap<String,Object>(); map.put(IAuction.AUCTION_NAME, snTextBox.getText()); map.put(IAuction.GOOD_NAME, listGoods.getItemText(listGoods.getSelectedIndex())); map.put(IAuction.START_TIME, startTime.getValue().getTime()); map.put(IAuction.END_TIME, endTime.getValue().getTime()); map.put(IAuction.START_PRICE, startBox.getText()); map.put(IAuction.DIR_PRICE, dirBox.getText()); map.put(IAuction.ADD_RANGE, addRangeBox.getText()); map.put(IAuction.SEC_PRICE, secBox.getText()); map.put(IAuction.DESC, descArea.getValue()); BeanObject bean = new BeanObject(ModelNames.AUCTION,map); String id = getCurState().getAuction().getString(IAuction.ID); if(getCurState().isEditting()) { new UpdateService().updateBean(id, bean, null); AuctionListPanel.State state = new AuctionListPanel.State(); state.execute(); } } }); resetButton.addSelectionListener(new SelectionListener<ButtonEvent>() { public void componentSelected(ButtonEvent ce) { snTextBox.setText(""); startTime.setValue(new Date()); endTime.setValue(new Date()); startBox.setText("0.0"); dirBox.setText("0.0"); addRangeBox.setText("0.0"); secBox.setText(""); descArea.clear(); } }); } }