Package com.ubx1.pdpscanner.client.views.project

Source Code of com.ubx1.pdpscanner.client.views.project.ProjectManagementTab

package com.ubx1.pdpscanner.client.views.project;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.ubx1.pdpscanner.client.PdpScanner;
import com.ubx1.pdpscanner.client.views.AbstractView;
import com.ubx1.pdpscanner.shared.Project;

/**
* The tab for managing the project
*
* @author wbraik
*
*/
public class ProjectManagementTab extends AbstractView {

  /**
   * The associated Project object
   */
  protected Project project = null;

  // View components

  private final HorizontalPanel panel = new HorizontalPanel();
  private final Button deleteProjectButton = new Button("Supprimer le projet");

  public ProjectManagementTab(Project project) {

    super(new VerticalPanel());
    this.project = project;

    this.panel.setSpacing(5);
  }

  @Override
  public void buildView() {

    this.deleteProjectButton.addClickHandler(new ClickHandler() {

      @Override
      public void onClick(ClickEvent event) {

        // Ask confirmation before deleting the project
        if (Window.confirm(PdpScanner.DELETE_PROJECT_CONFIRM)) {

          ProjectManagementTab.this.deleteProject();
        }
      }
    });

    this.panel.add(this.deleteProjectButton);
    this.viewPanel.add(this.panel);
  }

  /**
   * Delete the project
   */
  private void deleteProject() {

    Project p = this.project;

    // Prepare callback
    AsyncCallback<String> callback = new AsyncCallback<String>() {

      @Override
      public void onFailure(Throwable caught) {

        System.err.println(caught.getClass().getName() + " :: "
            + caught.getMessage());
        caught.printStackTrace();

        Window.alert(PdpScanner.DELETE_PROJECT_ERROR);
      }

      @Override
      public void onSuccess(String result) {

        Window.alert(PdpScanner.DELETE_PROJECT_SUCCESS);

        History.newItem("Home");
      }
    };

    // Tell the project to delete the project from the database
    PdpScanner.projectService.deleteProject(p.getId(), callback);
  }

}
TOP

Related Classes of com.ubx1.pdpscanner.client.views.project.ProjectManagementTab

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.