Package opus.gwt.management.console.client

Source Code of opus.gwt.management.console.client.ManagementConsoleController

package opus.gwt.management.console.client;

import opus.gwt.management.console.client.event.AddProjectEvent;
import opus.gwt.management.console.client.event.AddProjectEventHandler;
import opus.gwt.management.console.client.event.AsyncRequestEvent;
import opus.gwt.management.console.client.event.DeleteProjectEvent;
import opus.gwt.management.console.client.event.DeleteProjectEventHandler;
import opus.gwt.management.console.client.event.GetApplicationsEvent;
import opus.gwt.management.console.client.event.GetApplicationsEventHandler;
import opus.gwt.management.console.client.event.GetDjangoPackagesEvent;
import opus.gwt.management.console.client.event.GetDjangoPackagesEventHandler;
import opus.gwt.management.console.client.event.GetProjectsEvent;
import opus.gwt.management.console.client.event.GetProjectsEventHandler;
import opus.gwt.management.console.client.event.GetUserEvent;
import opus.gwt.management.console.client.event.GetUserEventHandler;
import opus.gwt.management.console.client.event.PanelTransitionEvent;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.Window;


public class ManagementConsoleController {

  private boolean projectsReady;
  private boolean userReady;
  private boolean djangoPackagesReady;
  private boolean applicationsReady;
  private ClientFactory clientFactory;
  private EventBus eventBus;
 
  public ManagementConsoleController(ClientFactory clientFactory){
    this.clientFactory = clientFactory;
    this.eventBus = clientFactory.getEventBus();
    registerHandlers();
    eventBus.fireEvent(new AsyncRequestEvent("getProjects"));
    eventBus.fireEvent(new AsyncRequestEvent("getApplications"));
    eventBus.fireEvent(new AsyncRequestEvent("getUser"));
    eventBus.fireEvent(new AsyncRequestEvent("getDjangoPackages"));
  }
 
  private void registerHandlers(){
    eventBus.addHandler(GetApplicationsEvent.TYPE,
      new GetApplicationsEventHandler() {
        public void onGetApplications(GetApplicationsEvent event) {
          clientFactory.setApplications(event.getApplications());
          applicationsReady = true;
          start();
        }
    });
    eventBus.addHandler(GetDjangoPackagesEvent.TYPE,
      new GetDjangoPackagesEventHandler() {
        public void onGetDjangoPackages(GetDjangoPackagesEvent event) {
          clientFactory.setDjangoPackages(event.getDjangoPackages());
          djangoPackagesReady = true;
          start();
        }
    });
    eventBus.addHandler(GetUserEvent.TYPE,
      new GetUserEventHandler() {
        public void onGetUser(GetUserEvent event) {
          clientFactory.setUser(event.getUser());
          userReady = true;
          start();
        }
    });
    eventBus.addHandler(GetProjectsEvent.TYPE,
      new GetProjectsEventHandler(){
        public void onGetProjects(GetProjectsEvent event) {
          clientFactory.setProjects(event.getProjects());
          projectsReady = true;
          start();
        }
    });
    eventBus.addHandler(AddProjectEvent.TYPE,
        new AddProjectEventHandler(){
          public void onAddProject(AddProjectEvent event) {
            clientFactory.getProjects().put(event.getProject().getName(), event.getProject());
            eventBus.fireEvent(new PanelTransitionEvent(PanelTransitionEvent.TransitionTypes.DASHBOARD, event.getProject().getName()));
          }
    });
    eventBus.addHandler(DeleteProjectEvent.TYPE,
        new DeleteProjectEventHandler(){
          public void onDeleteProject(DeleteProjectEvent event) {
            clientFactory.getProjects().remove(event.getProjectName());
            eventBus.fireEvent(new PanelTransitionEvent(PanelTransitionEvent.TransitionTypes.PROJECTS));
          }
    });
  }
 
  private void start(){
    if(projectsReady && applicationsReady && userReady && djangoPackagesReady){
      ManagementConsole mc = new ManagementConsole(clientFactory);
    }
  }
}
TOP

Related Classes of opus.gwt.management.console.client.ManagementConsoleController

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.