package org.gcube.portlets.user.geoportaldataentry.client.ui; import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV; import org.gcube.portlets.user.geoportaldataentry.client.events.CloneProjectEvent; import com.github.gwtbootstrap.client.ui.AlertBlock; import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.CheckBox; import com.github.gwtbootstrap.client.ui.TextBox; import com.github.gwtbootstrap.client.ui.constants.AlertType; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; public class CloneOperationPanel extends Composite { @UiField TextBox projectNameTextBox; @UiField AlertBlock infoBlock; @UiField AlertBlock infoProjectName; @UiField Button submitButton; @UiField CheckBox checkBoxPublish; private static CloneOperationPanelUiBinder uiBinder = GWT.create(CloneOperationPanelUiBinder.class); interface CloneOperationPanelUiBinder extends UiBinder { } private HandlerManager appManagerBus; public CloneOperationPanel(HandlerManager eventBus, ConcessioneDV concessione) { initWidget(uiBinder.createAndBindUi(this)); GWT.log("Cloning the: " + concessione); this.appManagerBus = eventBus; this.selectedProject = concessione; infoProjectName.setText(selectedProject.getNome()); projectNameTextBox.setText(selectedProject.getNome()); projectNameTextBox.setEnabled(false); submitButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { boolean isValid = checkIsValidForm(); if (isValid) { appManagerBus.fireEvent(new CloneProjectEvent(selectedProject, projectNameTextBox.getText(), checkBoxPublish.getValue())); submitButton.setEnabled(false); } } }); checkBoxPublish.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if(checkBoxPublish.getValue()) { submitButton.setText("Clone and Publish as New Project"); }else submitButton.setText("Clone as New Project"); } }); } private ConcessioneDV selectedProject; protected boolean checkIsValidForm() { String text = projectNameTextBox.getText(); if (text == null || text.isEmpty()) { infoBlock.setVisible(true); infoBlock.setText("The Project's name cannot be empty!"); infoBlock.setType(AlertType.ERROR); return false; } return true; } }