diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/normalize/DenormalizePanel.java b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/normalize/DenormalizePanel.java
index 33df951..3c134c3 100644
--- a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/normalize/DenormalizePanel.java
+++ b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/normalize/DenormalizePanel.java
@@ -54,6 +54,12 @@ import com.sencha.gxt.widget.core.client.form.ComboBox;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
import com.sencha.gxt.widget.core.client.info.Info;
+/**
+ *
+ * @author giancarlo
+ * email: g.panichi@isti.cnr.it
+ *
+ */
public class DenormalizePanel extends FramedPanel implements
MonitorDialogListener {
protected String WIDTH = "640px";
diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/normalize/NormalizePanel.java b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/normalize/NormalizePanel.java
index 2ec0ce3..188b23f 100644
--- a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/normalize/NormalizePanel.java
+++ b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/normalize/NormalizePanel.java
@@ -21,6 +21,7 @@ import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredTy
import org.gcube.portlets.user.td.widgetcommonevent.shared.OperationResult;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnData;
+import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.GWT;
@@ -55,6 +56,12 @@ import com.sencha.gxt.widget.core.client.grid.ColumnConfig;
import com.sencha.gxt.widget.core.client.grid.ColumnModel;
import com.sencha.gxt.widget.core.client.grid.Grid;
+/**
+ *
+ * @author giancarlo email: g.panichi@isti.cnr.it
+ *
+ */
public class NormalizePanel extends FramedPanel implements
MonitorDialogListener {
protected String WIDTH = "640px";
@@ -90,13 +97,46 @@ public class NormalizePanel extends FramedPanel implements
}
protected void create() {
+ Log.debug("Create NormalizationPanel(): [" + trId.toString() + "]");
setWidth(WIDTH);
setHeight(HEIGHT);
setHeaderVisible(false);
setBodyBorder(false);
- Log.debug("Create NormalizationPanel(): [" + trId.toString() + "]");
+ // Normalize Button
+ normalizeButton = new TextButton("Normalize");
+ normalizeButton.setIcon(ResourceBundle.INSTANCE.tableNormalize());
+ normalizeButton.setIconAlign(IconAlign.RIGHT);
+ normalizeButton.setTitle("Normalize");
+
+ SelectHandler normalizeHandler = new SelectHandler() {
+
+ public void onSelect(SelectEvent event) {
+ onNormalize();
+
+ }
+ };
+ normalizeButton.addSelectHandler(normalizeHandler);
+
+ normalizedColumnName = new TextField();
+ FieldLabel normalizedColumnNameLabel = new FieldLabel(
+ normalizedColumnName, "Normalized column");
+ normalizedColumnNameLabel.setLabelWidth(110);
+
+ valueColumnName = new TextField();
+ FieldLabel valueColumnNameLabel = new FieldLabel(valueColumnName,
+ "Value column");
+ valueColumnNameLabel.setLabelWidth(110);
+
+ FieldLabel columnsLabel = new FieldLabel(null, "Columns to Normalize");
+ columnsLabel.setLabelWidth(150);
+ columnsLabel.getElement().applyStyles("font-weight:bold");
+
+ HBoxLayoutContainer hBox = new HBoxLayoutContainer();
+ hBox.add(normalizeButton, new BoxLayoutData(new Margins(2, 5, 2, 5)));
+
+ // Grid ColumnData
ColumnDataProperties props = GWT.create(ColumnDataProperties.class);
ColumnConfig labelCol = new ColumnConfig(
@@ -153,38 +193,6 @@ public class NormalizePanel extends FramedPanel implements
grid.setColumnReordering(true);
grid.setColumnResize(false);
- // Normalize Button
- normalizeButton = new TextButton("Normalize");
- normalizeButton.setIcon(ResourceBundle.INSTANCE.tableNormalize());
- normalizeButton.setIconAlign(IconAlign.RIGHT);
- normalizeButton.setTitle("Normalize");
-
- SelectHandler deleteHandler = new SelectHandler() {
-
- public void onSelect(SelectEvent event) {
- onNormalize();
-
- }
- };
- normalizeButton.addSelectHandler(deleteHandler);
-
- normalizedColumnName = new TextField();
- FieldLabel normalizedColumnNameLabel = new FieldLabel(
- normalizedColumnName, "Normalized column");
- normalizedColumnNameLabel.setLabelWidth(110);
-
- valueColumnName = new TextField();
- FieldLabel valueColumnNameLabel = new FieldLabel(valueColumnName,
- "Value column");
- valueColumnNameLabel.setLabelWidth(110);
-
- FieldLabel columnsLabel = new FieldLabel(null, "Columns to Normalize");
- columnsLabel.setLabelWidth(150);
-
- columnsLabel.getElement().applyStyles("font-weight:bold");
- HBoxLayoutContainer hBox = new HBoxLayoutContainer();
- hBox.add(normalizeButton, new BoxLayoutData(new Margins(2, 5, 2, 5)));
-
VerticalLayoutContainer v = new VerticalLayoutContainer();
v.setScrollMode(ScrollMode.AUTOY);
v.setAdjustForScroll(true);
@@ -230,13 +238,27 @@ public class NormalizePanel extends FramedPanel implements
"Error retrieving columns");
}
}
+
+ normalizeButton.disable();
callback.onFailure(caught);
}
public void onSuccess(ArrayList result) {
Log.trace("loaded " + result.size() + " ColumnData");
- callback.onSuccess(new ListLoadResultBean(
- result));
+ sanitizesColumns(result);
+ if (result.size() > 0) {
+ callback.onSuccess(new ListLoadResultBean(
+ result));
+
+ } else {
+ normalizeButton.disable();
+ Log.error("This tabular resource has not Integer or Numeric columns, normalize is not applicable!");
+ UtilsGXT3
+ .alert("Attention",
+ "This tabular resource has not Integer or Numeric columns, normalize is not applicable!");
+ callback.onFailure(new Throwable(
+ "This tabular resource has not Integer or Numeric columns, normalize is not applicable!"));
+ }
}
@@ -244,6 +266,19 @@ public class NormalizePanel extends FramedPanel implements
}
+ protected void sanitizesColumns(ArrayList columns) {
+ ArrayList removableColumn = new ArrayList();
+ for (ColumnData c : columns) {
+ if (!(c.getDataTypeName().compareTo(
+ ColumnDataType.Integer.toString()) == 0 || c
+ .getDataTypeName().compareTo(
+ ColumnDataType.Numeric.toString()) == 0)) {
+ removableColumn.add(c);
+ }
+ }
+ columns.removeAll(removableColumn);
+ }
+
protected void onNormalize() {
ArrayList col = getSelectedItems();
if (col == null || col.size() < 1) {
@@ -308,7 +343,8 @@ public class NormalizePanel extends FramedPanel implements
public void operationComplete(OperationResult operationResult) {
ChangeTableWhy why = ChangeTableWhy.TABLEUPDATED;
ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent(
- ChangeTableRequestType.NORMALIZE, operationResult.getTrId(), why);
+ ChangeTableRequestType.NORMALIZE, operationResult.getTrId(),
+ why);
eventBus.fireEvent(changeTableRequestEvent);
close();
}
@@ -321,10 +357,12 @@ public class NormalizePanel extends FramedPanel implements
}
@Override
- public void operationStopped(OperationResult operationResult, String reason, String details) {
+ public void operationStopped(OperationResult operationResult,
+ String reason, String details) {
ChangeTableWhy why = ChangeTableWhy.TABLECURATION;
ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent(
- ChangeTableRequestType.NORMALIZE, operationResult.getTrId(), why);
+ ChangeTableRequestType.NORMALIZE, operationResult.getTrId(),
+ why);
eventBus.fireEvent(changeTableRequestEvent);
close();