Package honeycrm.client.s

Source Code of honeycrm.client.s.ProposalView$ProposalViewUiBinder

package honeycrm.client.s;

import honeycrm.client.dto.Dto;
import honeycrm.client.s.ModulePresenter.Display;

import java.util.Date;

import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.RunAsyncCallback;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
import com.google.gwt.event.logical.shared.AttachEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiFactory;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.cellview.client.ColumnSortEvent.AsyncHandler;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.SimplePager;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DateLabel;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SuggestBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;

public class ProposalView extends ModuleView implements Display {

  private static ProposalViewUiBinder uiBinder = GWT.create(ProposalViewUiBinder.class);

  interface ProposalViewUiBinder extends UiBinder<Widget, ProposalView> {
  }

  @UiField
  Label nameLbl;
  @UiField
  Label dateLbl;
  @UiField
  Label contactLbl;
  @UiField
  Label productsLbl;
  @UiField
  Label nameDetail;
  @UiField
  Label dateDetail;
  @UiField
  Label contactDetail;
  @UiField
  Label productsDetail;
  @UiField
  TextBox nameEdit;
  @UiField
  DateLabel dateEdit;
  @UiField
  SuggestBox contactEdit;
  @UiField
  Button productsAddBtn;
  @UiField
  CellTable<Dto> productsEdit;
  @UiField
  SimplePager productsEditPager;

  public ProposalView(GenericDataProvider provider) {
    super(Module.Proposal, provider);
    initWidget(uiBinder.createAndBindUi(this));
  }

  @Override
  public void init(Void arg) {
    GWT.runAsync(new RunAsyncCallback() {
      @Override
      public void onSuccess() {
        pager.setDisplay(list);
        list.setSelectionModel(selectionModel);
        list.setPageSize(20);
        pager.firstPage();

        final TextColumn<Dto> nameCol = new TextColumn<Dto>() {
          @Override
          public String getValue(Dto object) {
            return String.valueOf(object.get("name"));
          }
        };
        final TextColumn<Dto> dateCol = new TextColumn<Dto>() {
          @Override
          public String getValue(Dto object) {
            return String.valueOf(object.get("date"));
          }
        };
        final TextColumn<Dto> contactCol = new TextColumn<Dto>() {
          @Override
          public String getValue(Dto object) {
            return String.valueOf(object.get("contact"));
          }
        };
        nameCol.setSortable(true);

        list.addColumn(nameCol, constants.proposalsName());
        list.addColumn(dateCol, constants.proposalsDate());
        list.addColumn(contactCol, constants.proposalsContact());

        initProductTable();
       
        list.addColumnSortHandler(new AsyncHandler(list));
        provider.addDataDisplay(list);
        provider.refresh(list, list.getColumnSortList());

        createBtn.setText(constants.create());
        deleteBtn.setText(constants.delete());
        editBtn.setText(constants.edit());
        saveBtn.setText(constants.save());

        nameLbl.setText(constants.proposalsName());
        dateLbl.setText(constants.proposalsDate());
        contactLbl.setText(constants.proposalsContact());
        productsLbl.setText(constants.proposalsProducts());
        productsAddBtn.setText(constants.add());
      }

      private void initProductTable() {
        final TextColumn<Dto> nameCol = new TextColumn<Dto>() {
          @Override
          public String getValue(Dto object) {
            return String.valueOf(object.get("name"));
          }
        };
        nameCol.setSortable(true);

        productsEdit.addColumn(nameCol, constants.productsName());
      }

      @Override
      public void onFailure(Throwable reason) {
      }
    });
  }

  @Override
  public HasKeyPressHandlers[] getAllFields() {
    return new HasKeyPressHandlers[] { nameEdit, contactEdit };
  }

  @Override
  public Dto getDto() {
    final Dto d = new Dto(Module.Proposal.toString());
    d.set("name", nameEdit.getText());
    d.set("date", dateEdit.getValue());
    d.set("contact", contactEdit.getText());
    // TODO serialize and store products
    return d;
  }

  @Override
  public void openView(Dto selectedObject) {
    nameDetail.setText(String.valueOf(selectedObject.get("name")));
    dateDetail.setText(String.valueOf(selectedObject.get("date")));
    contactLbl.setText(String.valueOf(selectedObject.get("contact")));
    // TODO insert products table data
  }

  @Override
  protected String[] getFieldNames() {
    return new String[] { "name", "date", "contact", "products" };
  }

  @Override
  protected Label[] getDetailViewFields() {
    return new Label[] { nameDetail, dateDetail, contactDetail, productsDetail };
  }

  @Override
  protected UIObject[] getEditViewFields() {
    // TODO need special treatment in super class for DatePicker
    return new UIObject[]{nameEdit, contactEdit };
  }

  @Override
  protected void openEditView() {
    nameEdit.setText(String.valueOf(currentDto.get("name")));
    dateEdit.setValue((Date) currentDto.get("date"));
    contactEdit.setText(String.valueOf(currentDto.get("contact")));
    // TODO insert data into productsEdit
   
   
    toggleVisibility(true, nameEdit, dateEdit, contactEdit);
     toggleVisibility(false, nameDetail, dateDetail, contactDetail, productsDetail);
    grid.setVisible(true);
  }
 
  @UiHandler("productsAddBtn")
  void onClick(ClickEvent e) {
    final DialogBox dialog = new DialogBox(true);
    dialog.setText(constants.proposalsPleaseSelectProducts());
    dialog.addAttachHandler(new AttachEvent.Handler() {
      @Override
      public void onAttachOrDetach(AttachEvent event) {
        dialog.center();
      }
    });
    dialog.add(new AddProductView());
    dialog.show();
  }
}
TOP

Related Classes of honeycrm.client.s.ProposalView$ProposalViewUiBinder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.