Package honeycrm.client.mvp.presenters

Source Code of honeycrm.client.mvp.presenters.ListPresenter$Display

package honeycrm.client.mvp.presenters;

import honeycrm.client.dto.Dto;
import honeycrm.client.mvp.events.DeleteEvent;
import honeycrm.client.mvp.events.OpenEvent;
import honeycrm.client.mvp.events.OpenModuleEvent;
import honeycrm.client.mvp.events.OpenModuleEventHandler;
import honeycrm.client.mvp.events.UpdateEvent;
import honeycrm.client.mvp.events.UpdateEventHandler;
import honeycrm.client.mvp.views.HasSelectionHandler;
import honeycrm.client.mvp.views.SelectionHandler;
import honeycrm.client.services.CreateServiceAsync;
import honeycrm.client.services.ReadServiceAsync;
import honeycrm.client.services.UpdateServiceAsync;

import java.util.HashSet;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.SimpleEventBus;
import com.google.gwt.user.client.ui.Widget;

public class ListPresenter extends Selector {
  public interface Display extends HasSelectionHandler {
    boolean shouldDelete();
    HasClickHandlers getAddButton();
    HasClickHandlers getDeleteButton();
    Widget asWidget();
    void refresh();
  }

  boolean listViewInitialized = false;
  final String module;
  final SimpleEventBus eventBus;
  final Display view;
  final ReadServiceAsync readService;
  final UpdateServiceAsync updateService;
  final CreateServiceAsync createService;

  public ListPresenter(final ReadServiceAsync readService, final UpdateServiceAsync updateService, final CreateServiceAsync createService, final Display view, final SimpleEventBus eventBus, final String kind) {
    super(eventBus, view);
   
    this.view = view;
    this.readService = readService;
    this.updateService = updateService;
    this.createService = createService;
    this.eventBus = eventBus;
    this.module = kind;
   
    bind();
  }

  private void bind() {
    view.setSelectionHandler(new SelectionHandler() {
      @Override
      public void onSelect(Dto dto) {
        eventBus.fireEvent(new OpenEvent(dto));       
      }
    });
   
    view.getDeleteButton().addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
        if (view.shouldDelete()) {
          eventBus.fireEvent(new DeleteEvent(module, new HashSet<Long>()));
        }
      }
    });
   
    eventBus.addHandler(UpdateEvent.TYPE, new UpdateEventHandler() {
      @Override
      public void onAddEvent(UpdateEvent event) {
        refresh(event.getModule());
      }
    });
    eventBus.addHandler(OpenModuleEvent.TYPE, new OpenModuleEventHandler() {
      @Override
      public void onOpenModule(OpenModuleEvent event) {
        refresh(event.getModule());
      }
    });
  }

  public void refresh(final String refreshModule) {
    if (module.equals(refreshModule)) {
      view.refresh();
    }
  }
}
TOP

Related Classes of honeycrm.client.mvp.presenters.ListPresenter$Display

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.