geoportal-data-viewer-app/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/DetailsPanel.java

92 lines
2.6 KiB
Java
Raw Normal View History

2020-11-19 15:19:27 +01:00
package org.gcube.portlets.user.geoportaldataviewer.client.ui;
2022-10-18 17:32:12 +02:00
import org.gcube.application.geoportalcommon.shared.GeoportalItemReferences;
2022-10-11 15:00:39 +02:00
import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView;
2020-11-19 15:19:27 +01:00
import org.gcube.portlets.user.geoportaldataviewer.client.events.ClosedViewDetailsEvent;
2022-10-11 15:00:39 +02:00
import org.gcube.portlets.user.geoportaldataviewer.client.ui.cms.project.ProjectViewer;
2020-11-19 15:19:27 +01:00
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
2020-11-20 18:10:43 +01:00
import com.github.gwtbootstrap.client.ui.constants.IconSize;
2020-11-19 15:19:27 +01:00
import com.github.gwtbootstrap.client.ui.constants.IconType;
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.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
public class DetailsPanel extends Composite {
private static DetailsPanelUiBinder uiBinder = GWT.create(DetailsPanelUiBinder.class);
@UiField
Button closeButton;
@UiField
HTMLPanel datailsContainerPanel;
@UiField
HTMLPanel detailsHTMLPanel;
2022-10-11 15:00:39 +02:00
private ProjectView displayedProject = null;
2020-11-19 15:19:27 +01:00
private HandlerManager applicationBus;
interface DetailsPanelUiBinder extends UiBinder<Widget, DetailsPanel> {
}
public DetailsPanel() {
initWidget(uiBinder.createAndBindUi(this));
closeButton.setType(ButtonType.LINK);
2020-11-20 18:10:43 +01:00
closeButton.setIcon(IconType.REMOVE);
closeButton.setIconSize(IconSize.LARGE);
2020-11-19 15:19:27 +01:00
closeButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
hidePanelDetails();
applicationBus.fireEvent(new ClosedViewDetailsEvent());
}
});
}
public void setApplicationBus(HandlerManager applicationBus) {
this.applicationBus = applicationBus;
}
2022-10-18 17:32:12 +02:00
public void showDetailsFor(ProjectView result, GeoportalItemReferences geonaItemRef) {
2022-10-11 15:00:39 +02:00
this.displayedProject = result;
2020-11-19 15:19:27 +01:00
datailsContainerPanel.clear();
if(detailsHTMLPanel.getParent()!=null) {
2020-11-19 15:19:27 +01:00
detailsHTMLPanel.getParent().getElement().setScrollTop(0);
}
2020-11-19 15:19:27 +01:00
2022-11-03 17:03:15 +01:00
datailsContainerPanel.add(new ProjectViewer(applicationBus, geonaItemRef, result));
2020-11-19 15:19:27 +01:00
showPanelDetails();
}
private void showPanelDetails() {
detailsHTMLPanel.setVisible(true);
}
public void hidePanelDetails() {
2022-10-11 15:00:39 +02:00
this.displayedProject = null;
2020-11-19 15:19:27 +01:00
datailsContainerPanel.clear();
detailsHTMLPanel.setVisible(false);
}
2022-10-11 15:00:39 +02:00
public ProjectView getDisplayedProject() {
return displayedProject;
2020-11-19 15:19:27 +01:00
}
}