geoportal-data-entry-app/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/PublishUnPublishOperationPa...

106 lines
3.3 KiB
Java

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<Widget, PublishUnPublishOperationPanel> {
}
/**
* 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);
}
});
}
}