package org.gcube.portlets.user.geoportaldataentry.client.ui; import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV; import org.gcube.portlets.user.geoportaldataentry.client.events.PublishUnPublishProjectEvent; import org.gcube.portlets.user.geoportaldataentry.shared.PUBLISHING_UNPUBLISHING_OPERATION; import com.github.gwtbootstrap.client.ui.AlertBlock; import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.ListBox; import com.github.gwtbootstrap.client.ui.TextBox; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; 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; /** * The Class PublishUnPublishOperationPanel. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * * Jun 1, 2022 */ public class PublishUnPublishOperationPanel extends Composite { @UiField TextBox projectNameTextBox; @UiField AlertBlock infoBlock; @UiField AlertBlock infoProjectName; @UiField Button submitButton; @UiField ListBox listBoxPublisUnPublish; private HandlerManager appManagerBus; private ConcessioneDV selectedProject; private static PublishUnPublishOperationPanelUiBinder uiBinder = GWT .create(PublishUnPublishOperationPanelUiBinder.class); /** * The Interface PublishUnPublishOperationPanelUiBinder. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * * Jun 1, 2022 */ interface PublishUnPublishOperationPanelUiBinder extends UiBinder { } /** * Instantiates a new publish un publish operation panel. * * @param eventBus the event bus * @param concessione the concessione */ public PublishUnPublishOperationPanel(HandlerManager eventBus, ConcessioneDV concessione) { initWidget(uiBinder.createAndBindUi(this)); this.appManagerBus = eventBus; this.selectedProject = concessione; infoProjectName.setText(selectedProject.getNome()); projectNameTextBox.setText(selectedProject.getNome()); projectNameTextBox.setEnabled(false); listBoxPublisUnPublish.addItem(PUBLISHING_UNPUBLISHING_OPERATION.PUBLISH.name(), PUBLISHING_UNPUBLISHING_OPERATION.PUBLISH.getTitle()); listBoxPublisUnPublish.addItem(PUBLISHING_UNPUBLISHING_OPERATION.UNPUBLISH.name(), PUBLISHING_UNPUBLISHING_OPERATION.UNPUBLISH.getTitle()); submitButton.setText("Confirm " + listBoxPublisUnPublish.getSelectedValue()); listBoxPublisUnPublish.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { submitButton.setText("Confirm " + listBoxPublisUnPublish.getSelectedValue()); } }); submitButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { appManagerBus.fireEvent(new PublishUnPublishProjectEvent(selectedProject, PUBLISHING_UNPUBLISHING_OPERATION.valueOf(listBoxPublisUnPublish.getSelectedValue().toUpperCase()))); submitButton.setEnabled(false); } }); } }