93 lines
2.7 KiB
Java
93 lines
2.7 KiB
Java
package org.gcube.portlets.user.geoportaldataviewer.client.ui;
|
|
|
|
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
|
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
|
import org.gcube.application.geoportalcommon.shared.products.model.RecordDV;
|
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.ClosedViewDetailsEvent;
|
|
import org.gcube.portlets.user.geoportaldataviewer.client.ui.products.concessioni.ConcessioneView;
|
|
|
|
import com.github.gwtbootstrap.client.ui.Button;
|
|
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
|
|
import com.github.gwtbootstrap.client.ui.constants.IconSize;
|
|
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;
|
|
|
|
private RecordDV displayedRecord = null;
|
|
|
|
private HandlerManager applicationBus;
|
|
|
|
interface DetailsPanelUiBinder extends UiBinder<Widget, DetailsPanel> {
|
|
}
|
|
|
|
|
|
public DetailsPanel() {
|
|
initWidget(uiBinder.createAndBindUi(this));
|
|
|
|
closeButton.setType(ButtonType.LINK);
|
|
closeButton.setIcon(IconType.REMOVE);
|
|
closeButton.setIconSize(IconSize.LARGE);
|
|
|
|
closeButton.addClickHandler(new ClickHandler() {
|
|
|
|
@Override
|
|
public void onClick(ClickEvent event) {
|
|
hidePanelDetails();
|
|
applicationBus.fireEvent(new ClosedViewDetailsEvent());
|
|
}
|
|
});
|
|
}
|
|
|
|
public void setApplicationBus(HandlerManager applicationBus) {
|
|
this.applicationBus = applicationBus;
|
|
}
|
|
|
|
|
|
public void showDetailsFor(ConcessioneDV cdv, GeoNaItemRef geonaItemRef) {
|
|
this.displayedRecord = cdv;
|
|
datailsContainerPanel.clear();
|
|
|
|
if(detailsHTMLPanel.getParent()!=null) {
|
|
detailsHTMLPanel.getParent().getElement().setScrollTop(0);
|
|
}
|
|
|
|
datailsContainerPanel.add(new ConcessioneView(geonaItemRef, cdv));
|
|
showPanelDetails();
|
|
}
|
|
|
|
private void showPanelDetails() {
|
|
detailsHTMLPanel.setVisible(true);
|
|
}
|
|
|
|
public void hidePanelDetails() {
|
|
this.displayedRecord = null;
|
|
datailsContainerPanel.clear();
|
|
detailsHTMLPanel.setVisible(false);
|
|
}
|
|
|
|
public RecordDV getDisplayedRecord() {
|
|
return displayedRecord;
|
|
}
|
|
|
|
}
|