Package honeycrm.client.s

Source Code of honeycrm.client.s.ModuleView

package honeycrm.client.s;

import honeycrm.client.dto.Dto;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.dom.client.HasKeyDownHandlers;
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.CellTable;
import com.google.gwt.user.cellview.client.ColumnSortList;
import com.google.gwt.user.cellview.client.SimplePager;
import com.google.gwt.user.cellview.client.SimplePager.TextLocation;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.view.client.HasData;
import com.google.gwt.view.client.ProvidesKey;
import com.google.gwt.view.client.SelectionModel;
import com.google.gwt.view.client.SingleSelectionModel;

abstract public class ModuleView extends LocalizedView {
  @UiField
  Button createBtn;
  @UiField
  Button deleteBtn;
  @UiField
  Button editBtn;
  @UiField
  Button saveBtn;
  @UiField
  TextBox search;
  @UiField
  Grid grid;
  @UiField
  CellTable<Dto> list;
  @UiField
  SimplePager pager;

  protected Dto currentDto = null;
  protected final Module module;
  protected SingleSelectionModel<Dto> selectionModel;
  protected GenericDataProvider provider;
  public static final ProvidesKey<Dto> keyProvider = new ProvidesKey<Dto>() {
    @Override
    public Object getKey(Dto item) {
      return null == item ? null : item.getId();
    }
  };

  public ModuleView(Module module, GenericDataProvider provider) {
    this.module = module;
    this.provider = provider;
    this.selectionModel = new SingleSelectionModel<Dto>(keyProvider);
  }

  public HasClickHandlers getCreate() {
    return createBtn;
  }
 
  public HasClickHandlers getSaveBtn() {
    return saveBtn;
  }

  abstract protected void openEditView();
 
  abstract protected String[] getFieldNames();

  abstract protected Label[] getDetailViewFields();

  abstract protected UIObject[] getEditViewFields();

  protected void empty(HasText... textFields) {
    for (HasText f : textFields) {
      f.setText("");
    }
  }

  protected void toggleVisibility(boolean visible, UIObject... uiObjects) {
    for (UIObject o : uiObjects) {
      o.setVisible(visible);
    }
  }

  @UiFactory
  SimplePager makePager() {
    return new SimplePager(TextLocation.CENTER);
  }

  @UiFactory
  CellTable<Dto> makeTable() {
    return new CellTable<Dto>(keyProvider);
  }

  public SelectionModel<Dto> getSelectionHandler() {
    return selectionModel;
  }

  public Dto getSelectedObject() {
    return selectionModel.getSelectedObject();
  }

  public HasKeyDownHandlers getSearchBtn() {
    return search;
  }

  public String getSearch() {
    return search.getText();
  }

  public GenericDataProvider getProvider() {
    return provider;
  }

  public HasData<Dto> getList() {
    return list;
  }

  public ColumnSortList getColSortList() {
    return list.getColumnSortList();
  }

  public void refresh() {
    provider.refresh(list, list.getColumnSortList());
    grid.setVisible(false);
  }

  @UiHandler("saveBtn")
  public void handleClickSave(ClickEvent e) {
  }
 
  @UiHandler("editBtn")
  public void handleClickEdit(ClickEvent e) {
    openEditView();
  }

  @UiHandler("createBtn")
  public void handleClick(ClickEvent e) {
    currentDto = new Dto(module.toString());
    for (String field : getFieldNames()) {
      currentDto.set(field, "");
    }

    for (UIObject o : getEditViewFields()) {
      empty((HasText) o);
      o.setVisible(true);
    }
    for (Label l : getDetailViewFields()) {
      l.setVisible(false);
    }
    grid.setVisible(true);
  }
}
TOP

Related Classes of honeycrm.client.s.ModuleView

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.