added loading icon

This commit is contained in:
Francesco Mangiacrapa 2021-08-02 17:05:01 +02:00
parent a2131b7bf1
commit fea98c837d
2 changed files with 122 additions and 107 deletions

View File

@ -1,9 +1,9 @@
package org.gcube.portlets.user.geoportaldataviewer.client.ui.dialogs; package org.gcube.portlets.user.geoportaldataviewer.client.ui.dialogs;
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef; import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
import org.gcube.application.geoportalcommon.shared.PublicLink; import org.gcube.application.geoportalcommon.shared.PublicLink;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync; import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync;
import org.gcube.portlets.user.geoportaldataviewer.client.util.LoaderIcon;
import com.github.gwtbootstrap.client.ui.Alert; import com.github.gwtbootstrap.client.ui.Alert;
import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.Button;
@ -16,6 +16,7 @@ import com.github.gwtbootstrap.client.ui.Tooltip;
import com.github.gwtbootstrap.client.ui.constants.VisibilityChange; import com.github.gwtbootstrap.client.ui.constants.VisibilityChange;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.MouseOverEvent; import com.google.gwt.event.dom.client.MouseOverEvent;
@ -26,6 +27,7 @@ import com.google.gwt.user.client.Random;
import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;
@ -109,6 +111,9 @@ public class DialogShareableLink extends Composite {
@UiField @UiField
Button showPublicLongLinkButton; Button showPublicLongLinkButton;
@UiField
HTMLPanel info_panel;
// @UiField // @UiField
// HTMLPanel panelFieldsContainer; // HTMLPanel panelFieldsContainer;
@ -126,6 +131,7 @@ public class DialogShareableLink extends Composite {
+ "with your coworkers, you will enact the users of the group the folder is shared with, " + "with your coworkers, you will enact the users of the group the folder is shared with, "
+ "to access the file and the shared folder content. Login required"; + "to access the file and the shared folder content. Login required";
private LoaderIcon loadingIcon = new LoaderIcon("loading...");
/** /**
* The Interface DialogShareableLinkUiBinder. * The Interface DialogShareableLinkUiBinder.
@ -175,8 +181,9 @@ public class DialogShareableLink extends Composite {
} }
}); });
showMessage("", false); showMessage("", false);
loadingIcon.getElement().getStyle().setMarginBottom(20,Unit.PX);
showLoadingIcon(true);
// alertFilePublicLink.setVisible(true); // alertFilePublicLink.setVisible(true);
loadAndShowPublicLinksForItem(item); loadAndShowPublicLinksForItem(item);
@ -271,7 +278,6 @@ public class DialogShareableLink extends Composite {
} }
}); });
privateLongLinkCopyButton.addClickHandler(new ClickHandler() { privateLongLinkCopyButton.addClickHandler(new ClickHandler() {
@Override @Override
@ -382,7 +388,6 @@ public class DialogShareableLink extends Composite {
} }
/** /**
* Copy to clipboard. * Copy to clipboard.
* *
@ -399,7 +404,6 @@ public class DialogShareableLink extends Composite {
//alert("Copied the text: " + copyText.value); //alert("Copied the text: " + copyText.value);
}-*/; }-*/;
/** /**
* Load and show public links for item. * Load and show public links for item.
* *
@ -407,11 +411,11 @@ public class DialogShareableLink extends Composite {
*/ */
private void loadAndShowPublicLinksForItem(GeoNaItemRef item) { private void loadAndShowPublicLinksForItem(GeoNaItemRef item) {
GeoportalDataViewerServiceAsync.Util.getInstance().getPublicLinksFor(item, GeoportalDataViewerServiceAsync.Util.getInstance().getPublicLinksFor(item, new AsyncCallback<GeoNaItemRef>() {
new AsyncCallback<GeoNaItemRef>() {
@Override @Override
public void onSuccess(GeoNaItemRef itemReferences) { public void onSuccess(GeoNaItemRef itemReferences) {
showLoadingIcon(false);
openPublicLink = itemReferences.getOpenLink(); openPublicLink = itemReferences.getOpenLink();
restrictedPublicLink = itemReferences.getRestrictedLink(); restrictedPublicLink = itemReferences.getRestrictedLink();
String toPublicURL = openPublicLink.getShortURL() != null && !openPublicLink.getShortURL().isEmpty() String toPublicURL = openPublicLink.getShortURL() != null && !openPublicLink.getShortURL().isEmpty()
@ -421,8 +425,8 @@ public class DialogShareableLink extends Composite {
textPublicLink.setValue(toPublicURL); textPublicLink.setValue(toPublicURL);
textPublicLongLink.setValue(openPublicLink.getCompleteURL()); textPublicLongLink.setValue(openPublicLink.getCompleteURL());
String toPrivateURL = restrictedPublicLink.getShortURL() != null && !restrictedPublicLink.getShortURL().isEmpty() String toPrivateURL = restrictedPublicLink.getShortURL() != null
? restrictedPublicLink.getShortURL() && !restrictedPublicLink.getShortURL().isEmpty() ? restrictedPublicLink.getShortURL()
: restrictedPublicLink.getCompleteURL(); : restrictedPublicLink.getCompleteURL();
textPrivateLink.setValue(toPrivateURL); textPrivateLink.setValue(toPrivateURL);
@ -431,6 +435,7 @@ public class DialogShareableLink extends Composite {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
showLoadingIcon(false);
openPublicLink = null; openPublicLink = null;
disableTextBox(textPublicLink); disableTextBox(textPublicLink);
disableTextBox(textPrivateLink); disableTextBox(textPrivateLink);
@ -439,6 +444,17 @@ public class DialogShareableLink extends Composite {
}); });
} }
public void showLoadingIcon(boolean show) {
try {
if(show)
info_panel.add(loadingIcon);
else
info_panel.remove(loadingIcon);
}catch (Exception e) {
}
}
/** /**
* Disable text box. * Disable text box.
* *

View File

@ -44,12 +44,11 @@
} }
</ui:style> </ui:style>
<g:HTMLPanel> <g:HTMLPanel>
<g:HTMLPanel ui:field="info_panel"></g:HTMLPanel>
<b:Form type="HORIZONTAL"> <b:Form type="HORIZONTAL">
<b:Alert ui:field="actionAlert" close="false" type="INFO" <b:Alert ui:field="actionAlert" close="false" type="INFO"
visible="false"> visible="false">
<b:Icon type="ROTATE_RIGHT" spin="true" />
</b:Alert> </b:Alert>
<g:VerticalPanel ui:field="fieldPrivateSharing" <g:VerticalPanel ui:field="fieldPrivateSharing"
addStyleNames="{style.margin-bottom-20}"> addStyleNames="{style.margin-bottom-20}">
<g:HorizontalPanel> <g:HorizontalPanel>