protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    ContentPanel inforPanel = new ContentPanel();
    //		 inforPanel.setHeading(this.getCurState().getAuction().getString(IAuction.AUCTION_NAME));
    HorizontalPanel infoContent = new HorizontalPanel();
    infoContent.setSpacing(20);
    Label sk = new Label("拍卖活动名称:");
    Label sv = new Label(this.getCurState().getAuction().getString(IAuction.AUCTION_NAME));
    Label ek = new Label("拍卖商品名称:");
    Label ev = new Label(this.getCurState().getAuction().getString(IAuction.GOOD_NAME));
    infoContent.add(sk);
    infoContent.add(sv);
    infoContent.add(ek);
    infoContent.add(ev);
    inforPanel.add(infoContent);

    BasePagingLoader loader = new PagingListService().getLoader(ModelNames.AUCTIONLOG);
    loader.load(0, 10);
    store = new ListStore<BeanObject>(loader);
    toolBar = new PagingToolBar(10);
    toolBar.bind(loader);

    List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
    final CheckBoxSelectionModel<BeanObject> smRowSelection =
        new CheckBoxSelectionModel<BeanObject>();
    columns.add(smRowSelection.getColumn());
    columns.add(new ColumnConfig(IAuctionLog.BID_USER, "买家", 150));
    columns.add(new ColumnConfig(IAuctionLog.BID_PRICE, "出价", 150));
    columns.add(new ColumnConfig(IAuctionLog.BID_TIME, "时间", 150));
    columns.add(new ColumnConfig(IAuctionLog.LOG_ID, "状态", 150));

    ColumnModel cm = new ColumnModel(columns);
    grid = new Grid<BeanObject>(store, cm);

    //        grid.setLoadMask(true);
    //        grid.setBorders(true);
    grid.setSelectionModel(smRowSelection);
    grid.addPlugin(smRowSelection);
    grid.setHeight(250);

    ContentPanel contentPanel = new ContentPanel();
    contentPanel.setFrame(true);
    contentPanel.setCollapsible(true);
    contentPanel.setAnimCollapse(false);
    contentPanel.setButtonAlign(HorizontalAlignment.CENTER);
    contentPanel.setIconStyle("icon-table");
    contentPanel.setLayout(new FitLayout());
    contentPanel.add(grid);
    contentPanel.setBottomComponent(toolBar);

    topPanel.add(inforPanel);
    topPanel.add(contentPanel);
    add(topPanel);
  }
  private DialogBox createDialogBox(final BeanObject bean) {
    // Create a dialog box and set the caption text
    final DialogBox dialogBox = new DialogBox();
    dialogBox.ensureDebugId("cwDialogBox");
    dialogBox.setText("插入邮件队列");
    // Create a panel to layout the content
    ColumnPanel contentPanel = new ColumnPanel();
    final ListBox list = new ListBox();
    list.addItem("普通");
    list.addItem("高");
    contentPanel.createPanel(IEmailSendList.PRIORITY, "选择优先级", list);
    // add a button to commit
    com.google.gwt.user.client.ui.Button commitButton =
        new com.google.gwt.user.client.ui.Button(
            "确定",
            new ClickListener() {
              public void onClick(Widget sender) {
                // update the mail template
                final Map<String, Object> emails = bean.getProperties();
                emails.remove(IMailTemplate.LASTSEND);
                Date currentTime = new Date();
                final Timestamp nowTime = new Timestamp(currentTime.getTime());
                emails.put(IMailTemplate.LASTSEND, nowTime);
                BeanObject emailBean = new BeanObject(ModelNames.MAILTEMPLATE, emails);
                new UpdateService()
                    .updateBean(
                        (Long) emails.get(IMailTemplate.ID),
                        emailBean,
                        new UpdateService.Listener() {

                          @Override
                          public void onSuccess(Boolean success) {}
                        });

                new EmailSettings()
                    .getSettingsInfo(
                        new EmailSettings.Listener() {
                          public void onSuccess(HashMap<String, String> result) {
                            // create new mail send list
                            int index = list.getSelectedIndex();
                            Map<String, Object> sendlist = new HashMap<String, Object>();
                            sendlist.put(IEmailSendList.EMAIL, result.get("account"));
                            sendlist.put(IEmailSendList.TEMPLATEID, emails.get(IMailTemplate.ID));
                            sendlist.put(
                                IEmailSendList.EMAILCONTENT, emails.get(IMailTemplate.CONTENT));
                            sendlist.put(IEmailSendList.ERROR, 0);
                            sendlist.put(IEmailSendList.LASTSEND, nowTime);
                            sendlist.put(IEmailSendList.PRIORITY, index);
                            // new bean object of send list
                            BeanObject listBean =
                                new BeanObject(ModelNames.EMAILSENDLIST, sendlist);
                            new CreateService()
                                .createBean(
                                    listBean,
                                    new CreateService.Listener() {
                                      public void onSuccess(String id) {}
                                    });
                            dialogBox.hide();
                            toolBar.refresh();

                            // 采用BFS算法的原理,处理邮件队列中的邮件。
                            new ListService()
                                .listBeans(
                                    ModelNames.EMAILLIST,
                                    new ListService.Listener() {

                                      @Override
                                      public void onSuccess(List<BeanObject> beans) {
                                        // 取出所有订阅者的订阅地址,构造发送列表
                                        StringBuffer sendTo = new StringBuffer();
                                        for (BeanObject bean : beans) {
                                          Boolean isConfirm = bean.get(IEmailList.CONFIRM);
                                          if (isConfirm.booleanValue()) {
                                            sendTo.append(";" + bean.getString(IEmailList.EMAIL));
                                          }
                                        }
                                        HashMap<String, String> subscribe =
                                            new HashMap<String, String>();
                                        subscribe.put("sendTo", sendTo.substring(1));
                                        subscribe.put(
                                            "subject", (String) emails.get(IMailTemplate.SUBJECT));
                                        subscribe.put(
                                            "content", (String) emails.get(IMailTemplate.CONTENT));
                                        new EmailSettings()
                                            .sendEmailAndGetState(
                                                subscribe,
                                                new EmailSettings.Listener() {
                                                  public void onSuccess(Boolean result) {}

                                                  public void onFailure(Throwable caught) {}
                                                });
                                      }
                                    });
                          }
                        });
              }
            });
    // Add a close button at the bottom of the dialog
    com.google.gwt.user.client.ui.Button closeButton =
        new com.google.gwt.user.client.ui.Button(
            "Close",
            new ClickListener() {
              public void onClick(Widget sender) {
                dialogBox.hide();
              }
            });

    contentPanel.add(closeButton);
    contentPanel.add(commitButton);
    dialogBox.setWidget(contentPanel);
    return dialogBox;
  }