diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/CkanContentModeratorWidget.gwt.xml b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/CkanContentModeratorWidget.gwt.xml
index 4fdac16..0660eee 100644
--- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/CkanContentModeratorWidget.gwt.xml
+++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/CkanContentModeratorWidget.gwt.xml
@@ -18,4 +18,6 @@
+
+
diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidget.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidget.java
index 723301c..0d94cfd 100644
--- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidget.java
+++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidget.java
@@ -11,7 +11,7 @@ import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.view.client.ListDataProvider;
/**
@@ -56,17 +56,20 @@ public class CkanContentModeratorWidget {
if (!isContentModeratorEnabled)
throw new Exception("Content Moderator is not enabled in this context");
+ cmsPanel.showLoading(true);
contentModeratorService.getListItemsForStatus(status, ContentModeratorWidgetConstants.ITEMS_PER_PAGE,
ContentModeratorWidgetConstants.ITEM_START_INDEX, new AsyncCallback>() {
@Override
public void onSuccess(List result) {
+ cmsPanel.showLoading(false);
itemsTable.updateItems(result, true);
}
@Override
public void onFailure(Throwable caught) {
+ cmsPanel.showLoading(false);
// TODO Auto-generated method stub
}
@@ -99,7 +102,7 @@ public class CkanContentModeratorWidget {
}
- public ScrollPanel getPanel(){
- return cmsPanel;
+ public Composite getPanel(){
+ return cmsPanel.getPanel();
}
}
diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ContentModeratorWidgetConstants.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ContentModeratorWidgetConstants.java
index 48c8093..9232803 100644
--- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ContentModeratorWidgetConstants.java
+++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ContentModeratorWidgetConstants.java
@@ -11,6 +11,6 @@ public class ContentModeratorWidgetConstants {
public static final String NO_DATA = "No data";
- public static int ITEMS_PER_PAGE = 10;
+ public static int ITEMS_PER_PAGE = 20;
public static int ITEM_START_INDEX = 0;
}
diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/BaseViewTemplate.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/BaseViewTemplate.java
new file mode 100644
index 0000000..3508c03
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/BaseViewTemplate.java
@@ -0,0 +1,73 @@
+/**
+ *
+ */
+package org.gcube.portlets.widgets.ckancontentmoderator.client.ui;
+
+import com.github.gwtbootstrap.client.ui.FluidRow;
+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.ui.Composite;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * The Class BaseViewTemplate.
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * Feb 19, 2015
+ */
+public class BaseViewTemplate extends Composite{
+
+ @UiField
+ FluidRow top_container;
+ @UiField
+ FluidRow base_container;
+ @UiField
+ FluidRow bottom_container;
+
+
+ private static BaseViewTemplateUiBinder uiBinder = GWT.create(BaseViewTemplateUiBinder.class);
+
+ /**
+ * The Interface BaseViewTemplateUiBinder.
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * Feb 19, 2015
+ */
+ interface BaseViewTemplateUiBinder extends UiBinder {
+ }
+
+ /**
+ * Instantiates a new base view template.
+ */
+ public BaseViewTemplate() {
+ initWidget(uiBinder.createAndBindUi(this));
+ }
+
+ /**
+ * Adds the to top.
+ *
+ * @param widget the widget
+ */
+ public void addToTop(Widget widget){
+ top_container.add(widget);
+ }
+
+ /**
+ * Adds the to middle.
+ *
+ * @param widget the widget
+ */
+ public void addToMiddle(Widget widget){
+ base_container.add(widget);
+ }
+
+ /**
+ * Adds the to bottom.
+ *
+ * @param widget the widget
+ */
+ public void addToBottom(Widget widget){
+ bottom_container.add(widget);
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/BaseViewTemplate.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/BaseViewTemplate.ui.xml
new file mode 100644
index 0000000..03a8f04
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/BaseViewTemplate.ui.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ConentModeratorSystemBasePanel.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ConentModeratorSystemBasePanel.java
new file mode 100644
index 0000000..28b53dc
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ConentModeratorSystemBasePanel.java
@@ -0,0 +1,47 @@
+package org.gcube.portlets.widgets.ckancontentmoderator.client.ui;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HasText;
+import com.google.gwt.user.client.ui.Widget;
+
+public class ConentModeratorSystemBasePanel extends Composite implements HasText {
+
+ private static ConentModeratorSystemBasePanelUiBinder uiBinder = GWT
+ .create(ConentModeratorSystemBasePanelUiBinder.class);
+
+ interface ConentModeratorSystemBasePanelUiBinder extends UiBinder {
+ }
+
+ public ConentModeratorSystemBasePanel() {
+ initWidget(uiBinder.createAndBindUi(this));
+ }
+
+ @UiField
+ Button button;
+
+ public ConentModeratorSystemBasePanel(String firstName) {
+ initWidget(uiBinder.createAndBindUi(this));
+ button.setText(firstName);
+ }
+
+ @UiHandler("button")
+ void onClick(ClickEvent e) {
+ Window.alert("Hello!");
+ }
+
+ public void setText(String text) {
+ button.setText(text);
+ }
+
+ public String getText() {
+ return button.getText();
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ConentModeratorSystemBasePanel.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ConentModeratorSystemBasePanel.ui.xml
new file mode 100644
index 0000000..9db905d
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ConentModeratorSystemBasePanel.ui.xml
@@ -0,0 +1,17 @@
+
+
+
+ .important {
+ font-weight: bold;
+ }
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorSystemPanel.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorSystemPanel.java
index ac8fa9f..d910f16 100644
--- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorSystemPanel.java
+++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorSystemPanel.java
@@ -1,6 +1,14 @@
package org.gcube.portlets.widgets.ckancontentmoderator.client.ui;
+import org.gcube.portlets.widgets.ckancontentmoderator.client.resources.ContentModeratorWidgetResources;
+
+import com.google.gwt.dom.client.Style.Unit;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.Widget;
/**
@@ -10,11 +18,41 @@ import com.google.gwt.user.client.ui.ScrollPanel;
*
* Jun 15, 2021
*/
-public class ContentModeratorSystemPanel extends ScrollPanel {
+public class ContentModeratorSystemPanel {
+
+
+ private BaseViewTemplate baseViewTemplate = new BaseViewTemplate();
+ private ScrollPanel centerPanel = new ScrollPanel();
+
+ protected static final HorizontalPanel LOADING_PANEL = new HorizontalPanel();
+ protected static final Image LOADING_IMAGE = ContentModeratorWidgetResources.getIconLoading().createImage();
+
+ static {
+ LOADING_PANEL.getElement().getStyle().setMargin(5.0, Unit.PX);
+// LOADING_PANEL.setSpacing(3);
+ LOADING_PANEL.add(LOADING_IMAGE);
+ HTML loading = new HTML("Loading...");
+ loading.getElement().getStyle().setPaddingLeft(5.0, Unit.PX);
+ LOADING_PANEL.add(loading);
+ }
- public ContentModeratorSystemPanel(){
-
+ public ContentModeratorSystemPanel(){
+ baseViewTemplate.addToTop(LOADING_PANEL);
+ baseViewTemplate.addToMiddle(centerPanel);
+ }
+
+ public void showLoading(boolean show) {
+ LOADING_PANEL.setVisible(show);
+ centerPanel.setVisible(!show);
+ }
+
+ public void add(Widget w){
+ centerPanel.add(w);
+ }
+
+ public Composite getPanel(){
+ return baseViewTemplate;
}
}
diff --git a/src/main/resources/org/gcube/portlets/widgets/ckancontentmoderator/CkanContentModeratorWidget.gwt.xml b/src/main/resources/org/gcube/portlets/widgets/ckancontentmoderator/CkanContentModeratorWidget.gwt.xml
index 4fdac16..0660eee 100644
--- a/src/main/resources/org/gcube/portlets/widgets/ckancontentmoderator/CkanContentModeratorWidget.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/widgets/ckancontentmoderator/CkanContentModeratorWidget.gwt.xml
@@ -18,4 +18,6 @@
+
+