edit_facility_26115 #3
|
@ -1,6 +1,7 @@
|
|||
package org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.resources;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.CKanMetadataPublisher;
|
||||
|
@ -9,6 +10,7 @@ import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.AddResou
|
|||
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.DeleteResourceEvent;
|
||||
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.DeleteResourceEventHandler;
|
||||
import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.ResourceElementBean;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.ui.utils.LoaderIcon;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Accordion;
|
||||
import com.github.gwtbootstrap.client.ui.AccordionGroup;
|
||||
|
@ -24,6 +26,7 @@ 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.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.HTML;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
@ -46,17 +49,22 @@ public class AddedResourcesSummary extends Composite {
|
|||
// list of added resources (beans)
|
||||
List<ResourceElementBean> addedResources;
|
||||
|
||||
LinkedHashMap<Integer, Accordion> mapAddedResources = new LinkedHashMap<Integer, Accordion>();
|
||||
|
||||
@UiField
|
||||
VerticalPanel addResourcesPanel;
|
||||
|
||||
@UiField
|
||||
Alert alertMessage;
|
||||
|
||||
FlowPanel alertPanel = new FlowPanel();
|
||||
|
||||
public AddedResourcesSummary(HandlerManager eventBus) {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
|
||||
alertMessage.setType(AlertType.ERROR);
|
||||
alertMessage.setClose(true);
|
||||
alertMessage.add(alertPanel);
|
||||
// save bus
|
||||
this.eventBus = eventBus;
|
||||
// bind on add resource event
|
||||
|
@ -81,21 +89,18 @@ public class AddedResourcesSummary extends Composite {
|
|||
final ResourceElementBean justAddedResource = addResourceEvent.getResource();
|
||||
|
||||
// Build an accordion to show resource info
|
||||
Accordion accordion = new Accordion();
|
||||
final Accordion accordion = new Accordion();
|
||||
AccordionGroup accordionGroup = new AccordionGroup();
|
||||
accordionGroup.setHeading("* " + justAddedResource.getName());
|
||||
accordionGroup.getHeading().getElement().getStyle().setBackgroundColor("#FFEDBE");
|
||||
accordionGroup.getHeading().getElement().getStyle().setBackgroundColor("#f1f3f9");
|
||||
accordion.add(accordionGroup);
|
||||
|
||||
// add sub-info such as url and description
|
||||
Paragraph pUrl = new Paragraph();
|
||||
HTML htmlURL = new HTML();
|
||||
if (justAddedResource.getUrl() != null) {
|
||||
pUrl.setText("URL:");
|
||||
HTML htmlLink = new HTML();
|
||||
htmlLink.setHTML(
|
||||
"<a href=" + justAddedResource.getUrl() + ">" + justAddedResource.getUrl() + "</a>");
|
||||
// pUrl.add(pUrl);
|
||||
pUrl.add(htmlLink);
|
||||
htmlURL.setHTML(
|
||||
"URL: <a href=" + justAddedResource.getUrl() + ">" + justAddedResource.getUrl() + "</a>");
|
||||
|
||||
}
|
||||
Paragraph pDescription = new Paragraph();
|
||||
pDescription.setText("Description : " + justAddedResource.getDescription());
|
||||
|
@ -114,7 +119,7 @@ public class AddedResourcesSummary extends Composite {
|
|||
});
|
||||
|
||||
// fill accordion
|
||||
accordionGroup.add(pUrl);
|
||||
accordionGroup.add(htmlURL);
|
||||
accordionGroup.add(pDescription);
|
||||
accordionGroup.add(deleteButton);
|
||||
|
||||
|
@ -123,6 +128,8 @@ public class AddedResourcesSummary extends Composite {
|
|||
|
||||
// add to the panel
|
||||
addResourcesPanel.add(accordion);
|
||||
|
||||
mapAddedResources.put(justAddedResource.getBeanID(), accordion);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -140,13 +147,18 @@ public class AddedResourcesSummary extends Composite {
|
|||
|
||||
toDeleteButton.setEnabled(false);
|
||||
|
||||
LoaderIcon loader = new LoaderIcon("Deleting resource, please wait...");
|
||||
setAlertMessage(loader, null, AlertType.INFO, true);
|
||||
|
||||
// find it
|
||||
for (int i = 0; i < addedResources.size(); i++) {
|
||||
|
||||
if (addedResources.get(i).equals(toDelete)) {
|
||||
|
||||
// get the associated widget and remove it
|
||||
final Widget widget = addResourcesPanel.getWidget(i);
|
||||
// final Widget widget = addResourcesPanel.getWidget(i);
|
||||
|
||||
final Accordion toDeleteAccordion = mapAddedResources.get(toDelete.getBeanID());
|
||||
|
||||
// remote call to remove it from the dataset
|
||||
CKanMetadataPublisher.ckanServices.deleteResourceFromDataset(toDelete,
|
||||
|
@ -156,24 +168,22 @@ public class AddedResourcesSummary extends Composite {
|
|||
public void onSuccess(Boolean result) {
|
||||
|
||||
if (result) {
|
||||
setAlertMessage(null, "The resource described by " + toDelete.getName()
|
||||
+ " has been deleted!", AlertType.SUCCESS, true);
|
||||
// remove from the list
|
||||
addedResources.remove(toDelete);
|
||||
alertMessage.setType(AlertType.SUCCESS);
|
||||
alertMessage.setHTML("The resource described by " + toDelete.getName()
|
||||
+ " has been deleted!");
|
||||
widget.removeFromParent();
|
||||
addResourcesPanel.remove(toDeleteAccordion);
|
||||
} else {
|
||||
alertMessage.setVisible(true);
|
||||
alertMessage.setHTML("Sorry, the resource described by "
|
||||
+ toDelete.getName() + " cannot be deleted");
|
||||
setAlertMessage(null, "Sorry, the resource described by "
|
||||
+ toDelete.getName() + " cannot be deleted", AlertType.SUCCESS,
|
||||
true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
toDeleteButton.setEnabled(false);
|
||||
alertMessage.setVisible(true);
|
||||
alertMessage.setHTML(caught.getMessage());
|
||||
setAlertMessage(null, caught.getMessage(), AlertType.ERROR, true);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -184,6 +194,21 @@ public class AddedResourcesSummary extends Composite {
|
|||
});
|
||||
}
|
||||
|
||||
private void setAlertMessage(LoaderIcon loader, String message, AlertType type, boolean visible) {
|
||||
|
||||
alertPanel.clear();
|
||||
|
||||
if (loader != null) {
|
||||
alertPanel.add(loader);
|
||||
}
|
||||
alertMessage.setType(type);
|
||||
alertMessage.setVisible(visible);
|
||||
|
||||
if (message != null) {
|
||||
alertPanel.add(new HTML(message));
|
||||
}
|
||||
}
|
||||
|
||||
public HandlerManager getEventBus() {
|
||||
return eventBus;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue