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();