94 lines
2.3 KiB
Java
94 lines
2.3 KiB
Java
package org.gcube.portlets_widgets.catalogue_sharing_widget.client;
|
|
|
|
import org.gcube.portlets_widgets.catalogue_sharing_widget.shared.ItemUrls;
|
|
|
|
import com.github.gwtbootstrap.client.ui.AlertBlock;
|
|
import com.github.gwtbootstrap.client.ui.Form;
|
|
import com.github.gwtbootstrap.client.ui.Well;
|
|
import com.github.gwtbootstrap.client.ui.base.TextBox;
|
|
import com.google.gwt.core.client.GWT;
|
|
import com.google.gwt.uibinder.client.UiBinder;
|
|
import com.google.gwt.uibinder.client.UiField;
|
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
import com.google.gwt.user.client.ui.Composite;
|
|
import com.google.gwt.user.client.ui.Widget;
|
|
|
|
public class ShareCatalogueWidget extends Composite {
|
|
|
|
private static ShareCatalogueWidgetUiBinder uiBinder = GWT
|
|
.create(ShareCatalogueWidgetUiBinder.class);
|
|
|
|
interface ShareCatalogueWidgetUiBinder extends
|
|
UiBinder<Widget, ShareCatalogueWidget> {
|
|
}
|
|
|
|
public static final ShareServicesAsync ckanServices = GWT.create(ShareServices.class);
|
|
|
|
public static final String SERVICE_UNAVAILABLE = "The service is currently unavailable, retry later";
|
|
|
|
@UiField
|
|
Well loadingIcon;
|
|
|
|
@UiField
|
|
AlertBlock errorBlock;
|
|
|
|
@UiField
|
|
Form formWithInformation;
|
|
|
|
@UiField
|
|
TextBox itemShortUrl;
|
|
|
|
@UiField
|
|
TextBox itemTitle;
|
|
|
|
@UiField
|
|
TextBox itemName;
|
|
|
|
@UiField
|
|
TextBox itemLongUrl;
|
|
|
|
|
|
public ShareCatalogueWidget(String itemUUID) {
|
|
initWidget(uiBinder.createAndBindUi(this));
|
|
|
|
ckanServices.getPackageUrl(itemUUID, new AsyncCallback<ItemUrls>() {
|
|
|
|
@Override
|
|
public void onSuccess(ItemUrls result) {
|
|
|
|
if(result == null){
|
|
|
|
onError(null);
|
|
|
|
}else{
|
|
|
|
loadingIcon.setVisible(false);
|
|
formWithInformation.setVisible(true);
|
|
itemShortUrl.setText(result.getShortUrl() == null ? "" : result.getShortUrl());
|
|
itemLongUrl.setText(result.getUrl() == null ? "" : result.getUrl());
|
|
itemTitle.setText(result.getProductTitle() == null ? "" : result.getProductTitle());
|
|
itemName.setText(result.getProductName() == null ? "" : result.getProductName());
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable caught) {
|
|
|
|
onError(caught.getMessage());
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
private void onError(String msg) {
|
|
|
|
loadingIcon.setVisible(false);
|
|
formWithInformation.setVisible(false);
|
|
errorBlock.setText(SERVICE_UNAVAILABLE + (msg == null ? "" : "(" + msg + ")"));
|
|
errorBlock.setVisible(true);
|
|
|
|
}
|
|
|
|
}
|