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

120 lines
4.0 KiB
Java

package org.gcube.portlets.user.geoportaldataviewer.client.ui.products.concessioni;
import java.util.List;
import org.gcube.application.geoportalcommon.shared.products.content.WorkspaceContentDV;
import org.gcube.application.geoportalcommon.shared.products.model.AbstractRelazioneScavoDV;
import org.gcube.application.geoportalcommon.shared.products.model.RelazioneScavoDV;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
import org.gcube.portlets.user.geoportaldataviewer.client.ui.util.CustomFlexTable;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.Paragraph;
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.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.HTML;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
public class RelazioneScavoView extends Composite {
private static final String SHOW_ITALIAN_DESCR = "Italian description";
private static final String SHOW_ENGLISH_DESCR = "English description";
private static RelazioneScavoViewUiBinder uiBinder = GWT.create(RelazioneScavoViewUiBinder.class);
interface RelazioneScavoViewUiBinder extends UiBinder<Widget, RelazioneScavoView> {
}
@UiField
HTMLPanel relazioneScavoPanel;
@UiField
Paragraph abstractParagraphIta;
@UiField
Paragraph abstractParagraphEng;
@UiField
Button linkAbstractLanguage;
private CustomFlexTable customTable = new CustomFlexTable();
public RelazioneScavoView(AbstractRelazioneScavoDV abstractRelazioneDV, RelazioneScavoDV relazioneScavoDV) {
initWidget(uiBinder.createAndBindUi(this));
GWT.log("Showing abstract: "+abstractRelazioneDV);
GWT.log("Showing relazioneScavoDV: "+relazioneScavoDV);
if (abstractRelazioneDV != null) {
relazioneScavoPanel.setVisible(true);
if (abstractRelazioneDV.getAbstractSectionIta() != null) {
abstractParagraphIta.setText(abstractRelazioneDV.getAbstractSectionIta());
if (abstractRelazioneDV.getAbstractSectionEng() != null) {
linkAbstractLanguage.setVisible(true);
abstractParagraphEng.setText(abstractRelazioneDV.getAbstractSectionEng());
linkAbstractLanguage.setText(SHOW_ENGLISH_DESCR);
}
}
showLinkToDownloadWsContent("Abstract Relazione", abstractRelazioneDV.getListWsContent());
}
linkAbstractLanguage.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
GWT.log("Clicked");
if (abstractParagraphIta.isVisible()) {
linkAbstractLanguage.setText(SHOW_ITALIAN_DESCR);
abstractParagraphIta.setVisible(false);
abstractParagraphEng.setVisible(true);
} else {
linkAbstractLanguage.setText(SHOW_ENGLISH_DESCR);
abstractParagraphIta.setVisible(true);
abstractParagraphEng.setVisible(false);
}
}
});
if (relazioneScavoDV != null) {
relazioneScavoPanel.setVisible(true);
// customTable.addNextKeyValue("Created", relazioneScavoDV.getCreationTime());
// customTable.addNextKeyValue("ID Licenza", relazioneScavoDV.getLicenseID());
customTable.addNextKeyValues("Responsabili", relazioneScavoDV.getResponsabili(),
GeoportalDataViewerConstants.NEW_LINE_BR);
showLinkToDownloadWsContent("Relazione", relazioneScavoDV.getListWsContent());
}
relazioneScavoPanel.add(customTable);
}
private void showLinkToDownloadWsContent(String title, List<WorkspaceContentDV> listContent) {
if (listContent != null) {
int i = 0;
String fieldLabel = title;
for (WorkspaceContentDV workspaceContentDV : listContent) {
if (i > 0) {
fieldLabel = "";
}
String downloadLabel = "download";
if(workspaceContentDV.getName()!=null) {
downloadLabel = workspaceContentDV.getName();
}
customTable.addNextKeyWidget(fieldLabel, new HTML(
"<a href=\"" + workspaceContentDV.getLink() + "\">" + downloadLabel + "</a>"));
}
}
}
}