Package opus.gwt.management.console.client.dashboard

Source Code of opus.gwt.management.console.client.dashboard.DeleteProjectPanel$DeleteProjectUiBinder

/*############################################################################
# Copyright 2010 North Carolina State University                             #
#                                                                            #
#   Licensed under the Apache License, Version 2.0 (the "License");          #
#   you may not use this file except in compliance with the License.         #
#   You may obtain a copy of the License at                                  #
#                                                                            #
#       http://www.apache.org/licenses/LICENSE-2.0                           #
#                                                                            #
#   Unless required by applicable law or agreed to in writing, software      #
#   distributed under the License is distributed on an "AS IS" BASIS,        #
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
#   See the License for the specific language governing permissions and      #
#   limitations under the License.                                           #
############################################################################*/

package opus.gwt.management.console.client.dashboard;


import opus.gwt.management.console.client.ClientFactory;
import opus.gwt.management.console.client.JSVariableHandler;
import opus.gwt.management.console.client.event.BreadCrumbEvent;
import opus.gwt.management.console.client.event.DeleteProjectEvent;
import opus.gwt.management.console.client.event.PanelTransitionEvent;
import opus.gwt.management.console.client.event.PanelTransitionEventHandler;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.Hidden;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitEvent;

public class DeleteProjectPanel extends Composite {

  private static DeleteProjectUiBinder uiBinder = GWT.create(DeleteProjectUiBinder.class);
  interface DeleteProjectUiBinder extends UiBinder<Widget, DeleteProjectPanel> {}

  private final String deleteProjectURL = "/deployments/projectName/destroy";
 
  private JSVariableHandler JSVarHandler;
  private FormPanel deleteForm;
  private String projectName;
  private EventBus eventBus;
 
  @UiField Button deleteProjectButton;
  @UiField FlowPanel titlePanel;
  @UiField Label projectLabel;
 
  public DeleteProjectPanel(ClientFactory clientFactory, String projectName) {
    initWidget(uiBinder.createAndBindUi(this));
    this.eventBus = clientFactory.getEventBus();
    JSVarHandler = new JSVariableHandler();
    deleteForm = new FormPanel();
    this.projectName = projectName;
    projectLabel.setText(projectName);
    registerHandlers();
    setupDeleteForm();
  }
 
  private void registerHandlers(){
    eventBus.addHandler(PanelTransitionEvent.TYPE,
        new PanelTransitionEventHandler(){
          public void onPanelTransition(PanelTransitionEvent event){
            if( event.getTransitionType() == PanelTransitionEvent.TransitionTypes.DELETE ){
              eventBus.fireEvent(new BreadCrumbEvent(BreadCrumbEvent.Action.ADD_CRUMB, "Delete Project"));
            }
    }});
  }
 
  private void setupDeleteForm(){
    deleteForm.setMethod(FormPanel.METHOD_POST);
    deleteForm.setVisible(false);
    deleteForm.setAction(JSVarHandler.getDeployerBaseURL() + deleteProjectURL.replaceAll("/projectName/", "/" + projectName +"/"));
    titlePanel.add(deleteForm);
    final String deletedProject = projectName;
    deleteForm.addSubmitHandler(new FormPanel.SubmitHandler() {
          public void onSubmit(SubmitEvent event) {
            deleteForm.add(new Hidden("csrfmiddlewaretoken", Cookies.getCookie("csrftoken")));
          }
     });
    deleteForm.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
          public void onSubmitComplete(SubmitCompleteEvent event) {
            eventBus.fireEvent(new DeleteProjectEvent(projectName));
          }
     });
  }
 
  @UiHandler("deleteProjectButton")
  public void handleDeleteProjectButton(ClickEvent event){
    deleteForm.submit();
  }
}
TOP

Related Classes of opus.gwt.management.console.client.dashboard.DeleteProjectPanel$DeleteProjectUiBinder

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.