diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/AddedResourcesSummary.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/AddedResourcesSummary.java index 9fce342..8c44615 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/AddedResourcesSummary.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/AddedResourcesSummary.java @@ -9,6 +9,7 @@ import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.AddResou import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.AddResourceEventHandler; import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.DeleteResourceEvent; import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.DeleteResourceEventHandler; +import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.ReloadDatasetPageEvent; import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.ResourceElementBean; import org.gcube.portlets.widgets.mpformbuilder.client.ui.utils.LoaderIcon; @@ -16,7 +17,6 @@ import com.github.gwtbootstrap.client.ui.Accordion; import com.github.gwtbootstrap.client.ui.AccordionGroup; import com.github.gwtbootstrap.client.ui.Alert; import com.github.gwtbootstrap.client.ui.Button; -import com.github.gwtbootstrap.client.ui.Paragraph; import com.github.gwtbootstrap.client.ui.Tab; import com.github.gwtbootstrap.client.ui.constants.AlertType; import com.github.gwtbootstrap.client.ui.constants.IconPosition; @@ -29,6 +29,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.FlexTable; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.VerticalPanel; @@ -118,24 +119,32 @@ public class AddedResourcesSummary extends Composite { tabAddedResources.setIconPosition(IconPosition.RIGHT); // get the resource - final ResourceElementBean justAddedResource = addResourceEvent.getResource(); + final ResourceElementBean addedResourceBean = addResourceEvent.getResource(); // Build an accordion to show resource info final Accordion accordion = new Accordion(); AccordionGroup accordionGroup = new AccordionGroup(); - accordionGroup.setHeading("* " + justAddedResource.getName()); + accordionGroup.setHeading("* " + addedResourceBean.getName()); accordionGroup.getHeading().addStyleName("accordion-resource-added"); accordion.add(accordionGroup); + + FlexTable resourceTable = new FlexTable(); + resourceTable.addStyleName("resource-table"); // add sub-info such as url and description - HTML htmlURL = new HTML(); - if (justAddedResource.getUrl() != null) { - htmlURL.setHTML( - "URL: " + justAddedResource.getUrl() + ""); + //HTML htmlURL = new HTML(); + if (addedResourceBean.getUrl() != null) { +// htmlURL.setHTML( +// "URL: " + addedResourceBean.getUrl() + ""); + resourceTable.setWidget(0, 0, new HTML("URL")); + resourceTable.setWidget(0, 1, new HTML("" + addedResourceBean.getUrl() + "")); } - Paragraph pDescription = new Paragraph(); - pDescription.setText("Description : " + justAddedResource.getDescription()); + //Paragraph pDescription = new Paragraph(); + //pDescription.setText("Description : " + addedResourceBean.getDescription()); + + resourceTable.setWidget(1, 0, new HTML("Description")); + resourceTable.setWidget(1, 1, new HTML(addedResourceBean.getDescription())); // button to delete the resource final Button deleteButton = new Button(); @@ -145,23 +154,23 @@ public class AddedResourcesSummary extends Composite { @Override public void onClick(ClickEvent event) { - eventBus.fireEvent(new DeleteResourceEvent(deleteButton, justAddedResource)); + eventBus.fireEvent(new DeleteResourceEvent(deleteButton, addedResourceBean)); } }); // fill accordion - accordionGroup.add(htmlURL); - accordionGroup.add(pDescription); + //accordionGroup.add(htmlURL); + accordionGroup.add(resourceTable); accordionGroup.add(deleteButton); // add to the list - addedResources.add(justAddedResource); + addedResources.add(addedResourceBean); // add to the panel addResourcesPanel.add(accordion); - mapAddedResources.put(justAddedResource.getBeanID(), accordion); + mapAddedResources.put(addedResourceBean.getBeanID(), accordion); checkNoResources(); } }); @@ -205,6 +214,11 @@ public class AddedResourcesSummary extends Composite { // remove from the list addedResources.remove(toDelete); addResourcesPanel.remove(toDeleteAccordion); + + //Firing event to reload the dataset page + eventBus.fireEvent(new ReloadDatasetPageEvent( + deleteResourceEvent.getResource().getCkanDatasetId())); + checkNoResources(); } else { setAlertMessage(null, "Sorry, the resource described by '" diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/AddedResourcesSummary.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/AddedResourcesSummary.ui.xml index 9969ce3..840d758 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/AddedResourcesSummary.ui.xml +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/AddedResourcesSummary.ui.xml @@ -1,9 +1,12 @@ + xmlns:g="urn:import:com.google.gwt.user.client.ui" + xmlns:b="urn:import:com.github.gwtbootstrap.client.ui"> + + + -

Added Resources

+
Added Resources
diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/ManageResources.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/ManageResources.java index 580324d..11d76b7 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/ManageResources.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/ManageResources.java @@ -7,6 +7,8 @@ import com.github.gwtbootstrap.client.ui.TabPanel; import com.github.gwtbootstrap.client.ui.constants.IconType; import com.github.gwtbootstrap.client.ui.resources.Bootstrap.Tabs; import com.google.gwt.core.client.GWT; +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.shared.HandlerManager; @@ -33,7 +35,7 @@ public class ManageResources extends Composite { private AddedResourcesSummary addedResourcesSummary; - private AddResourceToDataset resourceForm; + private AddResourceToDataset addResourceForm; private HandlerManager eventBus; @@ -43,19 +45,27 @@ public class ManageResources extends Composite { initWidget(uiBinder.createAndBindUi(this)); this.eventBus = eventBus; - resourceForm = new AddResourceToDataset(eventBus, theDatasetBean.getId(), theDatasetBean.getTitle(), + addResourceForm = new AddResourceToDataset(eventBus, theDatasetBean.getId(), theDatasetBean.getTitle(), theDatasetBean.getSelectedOrganization(), datasetUrl); addedResourcesSummary = new AddedResourcesSummary(eventBus, addedResources, addedResourcesIcon); // tab for the form - addResources.add(resourceForm); + addResources.add(addResourceForm); addedResources.add(addedResourcesSummary); - - tabPanel.setTabPosition(Tabs.LEFT.name()); - tabPanel.selectTab(0); bind(); + + tabPanel.setTabPosition(Tabs.ABOVE.name()); + tabPanel.selectTab(0); + + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + + @Override + public void execute() { + tabPanel.selectTab(0); + } + }); } private void bind() { diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/ManageResources.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/ManageResources.ui.xml index 56d69c1..a898500 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/ManageResources.ui.xml +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/resources/ManageResources.ui.xml @@ -8,6 +8,7 @@ } +

Manage Resources

diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/public/CKanMetadataPublisher.css b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/public/CKanMetadataPublisher.css index 4f2886b..1e43e4c 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/public/CKanMetadataPublisher.css +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/public/CKanMetadataPublisher.css @@ -139,4 +139,21 @@ padding: 2px; box-shadow: 3px 3px #888; border-radius: 3px; +} + +.resource-table { + margin: 5px; + margin-bottom: 10px; + font-size: 14px; + max-width: 98%; + word-break: break-word; +} + +.resource-table td { + padding: 3px; +} + +.resource-table td:first-child { + color: gray; + width: 75px; } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/PublisherCatalogueConveter.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/PublisherCatalogueConveter.java index 8f27c7e..ee56908 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/PublisherCatalogueConveter.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/server/PublisherCatalogueConveter.java @@ -29,6 +29,7 @@ public class PublisherCatalogueConveter { reb.setUrl(ckanResource.getUrl()); reb.setMimeType(ckanResource.getMimetype()); reb.setOrganizationNameDatasetParent(orgNameParent); + reb.setCkanDatasetId(ckanResource.getPackageId()); return reb; } diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/ResourceElementBean.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/ResourceElementBean.java index bdb4d96..e7ab5ee 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/ResourceElementBean.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/shared/ResourceElementBean.java @@ -70,6 +70,8 @@ public class ResourceElementBean implements Comparable, Ser private String ckanResourceID; + private String ckanDatasetId; + /** * The key provider that provides the unique ID of a bean. */ @@ -467,11 +469,14 @@ public class ResourceElementBean implements Comparable, Ser this.rootIdInWorkspace = rootIdInWorkspace; } - /** - * To string. - * - * @return the string - */ + public void setCkanDatasetId(String packageId) { + this.ckanDatasetId = packageId; + } + + public String getCkanDatasetId() { + return ckanDatasetId; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -497,10 +502,14 @@ public class ResourceElementBean implements Comparable, Ser builder.append(description); builder.append(", organizationNameDatasetParent="); builder.append(organizationNameDatasetParent); - builder.append(", childrenSize="); - builder.append(childrenSize); builder.append(", toPublish="); builder.append(toPublish); + builder.append(", identifierGWT="); + builder.append(identifierGWT); + builder.append(", ckanResourceID="); + builder.append(ckanResourceID); + builder.append(", ckanDatasetId="); + builder.append(ckanDatasetId); builder.append("]"); return builder.toString(); }