diff --git a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowPanel.java b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowPanel.java index f99f6a4..cc5a4fd 100644 --- a/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowPanel.java +++ b/src/main/java/org/gcube/portlets/user/td/tablewidget/client/rows/EditRowPanel.java @@ -22,6 +22,7 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.i18n.client.DateTimeFormat; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.web.bindery.event.shared.EventBus; @@ -41,8 +42,8 @@ import com.sencha.gxt.widget.core.client.container.SimpleContainer; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; import com.sencha.gxt.widget.core.client.event.SelectEvent; -import com.sencha.gxt.widget.core.client.event.TriggerClickEvent; import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; +import com.sencha.gxt.widget.core.client.event.TriggerClickEvent; import com.sencha.gxt.widget.core.client.event.TriggerClickEvent.TriggerClickHandler; import com.sencha.gxt.widget.core.client.form.ComboBox; import com.sencha.gxt.widget.core.client.form.DateField; @@ -59,8 +60,8 @@ public class EditRowPanel extends FramedPanel { protected String WIDTH = "560px"; protected String HEIGHT = "400px"; protected String FIELDSHEIGHT = "400px"; - protected int LABELSIZE=140; - + protected int LABELSIZE = 140; + protected EditRowDialog parent; protected TRId trId; protected EventBus eventBus; @@ -69,9 +70,9 @@ public class EditRowPanel extends FramedPanel { private TextButton btnSave; private TextButton btnClose; - - private DateTimeFormat sdf= DateTimeFormat.getFormat("yyyy-MM-dd"); - + + private DateTimeFormat sdf = DateTimeFormat.getFormat("yyyy-MM-dd"); + public EditRowPanel(EditRowDialog parent, TRId trId, RowRaw row, EventBus eventBus) { super(); @@ -143,12 +144,13 @@ public class EditRowPanel extends FramedPanel { } - + container.forceLayout(); + VerticalLayoutContainer vPanel = new VerticalLayoutContainer(); vPanel.add(container, new VerticalLayoutData(1, -1)); vPanel.add(flowButton, new VerticalLayoutData(1, -1, new Margins(1))); add(vPanel); - + } protected void retrieveColumn() { @@ -183,13 +185,22 @@ public class EditRowPanel extends FramedPanel { ArrayList fields = new ArrayList(); for (ColumnData col : columns) { + String label = new String(); + if (col != null && col.getLabel() != null) { + label = SafeHtmlUtils.htmlEscape(col.getLabel()); + if (label.length() > LABELSIZE - 1) { + label = label.substring(0, LABELSIZE - 3); + label += ".."; + } + } if (!col.isViewColumn()) { if (col.getTypeCode().compareTo( ColumnTypeCode.DIMENSION.toString()) == 0 || col.getTypeCode().compareTo( ColumnTypeCode.TIMEDIMENSION.toString()) == 0) { - FieldLabel dimensionLabel = retrieveDimensionLabel(col); + FieldLabel dimensionLabel = retrieveDimensionLabel(col, + label); dimensionLabel.setLabelWidth(LABELSIZE); fields.add(dimensionLabel); } else { @@ -199,9 +210,9 @@ public class EditRowPanel extends FramedPanel { radioTrue.setBoxLabel("true"); Radio radioFalse = new Radio(); radioFalse.setBoxLabel("false"); - - String value=rowRaw.getMap().get(col.getColumnId()); - if(new Boolean(value)){ + + String value = rowRaw.getMap().get(col.getColumnId()); + if (new Boolean(value)) { radioTrue.setValue(true); } else { radioFalse.setValue(true); @@ -209,13 +220,11 @@ public class EditRowPanel extends FramedPanel { ToggleGroup toggleGroup = new ToggleGroup(); toggleGroup.add(radioTrue); toggleGroup.add(radioFalse); - + HorizontalPanel hp = new HorizontalPanel(); hp.add(radioTrue); hp.add(radioFalse); - - FieldLabel booleanLabel = new FieldLabel(hp, - col.getLabel()); + FieldLabel booleanLabel = new FieldLabel(hp, label); booleanLabel.setLabelWidth(LABELSIZE); booleanLabel.setId(col.getColumnId()); fields.add(booleanLabel); @@ -223,18 +232,19 @@ public class EditRowPanel extends FramedPanel { if (col.getDataTypeName().compareTo( ColumnDataType.Date.toString()) == 0) { DateField date = new DateField(); - String value=rowRaw.getMap().get(col.getColumnId()); - Date d=null; - try{ - d=sdf.parse(value); - } catch(Throwable e){ - Log.error("Error parsing date string: "+e.getLocalizedMessage()); + String value = rowRaw.getMap().get( + col.getColumnId()); + Date d = null; + try { + d = sdf.parse(value); + } catch (Throwable e) { + Log.error("Error parsing date string: " + + e.getLocalizedMessage()); } - if(d!=null){ + if (d != null) { date.setValue(d); } - FieldLabel dateLabel = new FieldLabel(date, - col.getLabel()); + FieldLabel dateLabel = new FieldLabel(date, label); dateLabel.setLabelWidth(LABELSIZE); dateLabel.setId(col.getColumnId()); fields.add(dateLabel); @@ -242,7 +252,8 @@ public class EditRowPanel extends FramedPanel { if (col.getDataTypeName().compareTo( ColumnDataType.Text.toString()) == 0) { TextField text = new TextField(); - String value=rowRaw.getMap().get(col.getColumnId()); + String value = rowRaw.getMap().get( + col.getColumnId()); text.setValue(value); text.addValueChangeHandler(new ValueChangeHandler() { @Override @@ -251,8 +262,9 @@ public class EditRowPanel extends FramedPanel { } }); + FieldLabel textLabel = new FieldLabel(text, - col.getLabel()); + label); textLabel.setLabelWidth(LABELSIZE); textLabel.setId(col.getColumnId()); fields.add(textLabel); @@ -260,7 +272,8 @@ public class EditRowPanel extends FramedPanel { if (col.getDataTypeName().compareTo( ColumnDataType.Geometry.toString()) == 0) { TextField geometry = new TextField(); - String value=rowRaw.getMap().get(col.getColumnId()); + String value = rowRaw.getMap().get( + col.getColumnId()); geometry.setValue(value); geometry.addValueChangeHandler(new ValueChangeHandler() { @Override @@ -269,8 +282,9 @@ public class EditRowPanel extends FramedPanel { } }); + FieldLabel geometryLabel = new FieldLabel( - geometry, col.getLabel()); + geometry, label); geometryLabel.setLabelWidth(LABELSIZE); geometryLabel.setId(col.getColumnId()); fields.add(geometryLabel); @@ -278,7 +292,8 @@ public class EditRowPanel extends FramedPanel { if (col.getDataTypeName().compareTo( ColumnDataType.Integer.toString()) == 0) { TextField integ = new TextField(); - String value=rowRaw.getMap().get(col.getColumnId()); + String value = rowRaw.getMap().get( + col.getColumnId()); integ.setValue(value); integ.addValueChangeHandler(new ValueChangeHandler() { @Override @@ -287,8 +302,9 @@ public class EditRowPanel extends FramedPanel { } }); + FieldLabel integLabel = new FieldLabel( - integ, col.getLabel()); + integ, label); integLabel.setLabelWidth(LABELSIZE); integLabel.setId(col.getColumnId()); fields.add(integLabel); @@ -297,7 +313,8 @@ public class EditRowPanel extends FramedPanel { ColumnDataType.Numeric .toString()) == 0) { TextField numeric = new TextField(); - String value=rowRaw.getMap().get(col.getColumnId()); + String value = rowRaw.getMap().get( + col.getColumnId()); numeric.setValue(value); numeric.setId(col.getColumnId()); numeric.addValueChangeHandler(new ValueChangeHandler() { @@ -308,8 +325,9 @@ public class EditRowPanel extends FramedPanel { } }); FieldLabel numericLabel = new FieldLabel( - numeric, col.getLabel()); - numericLabel.setLabelWidth(LABELSIZE); + numeric, label); + numericLabel + .setLabelWidth(LABELSIZE); numericLabel.setId(col .getColumnId()); fields.add(numericLabel); @@ -328,7 +346,8 @@ public class EditRowPanel extends FramedPanel { } - protected FieldLabel retrieveDimensionLabel(final ColumnData col) { + protected FieldLabel retrieveDimensionLabel(final ColumnData col, + String label) { // comboDimension DimensionRowsProperties propsDimension = GWT .create(DimensionRowsProperties.class); @@ -337,7 +356,7 @@ public class EditRowPanel extends FramedPanel { final ComboBox comboDimension = new ComboBox( storeComboDimensionType, propsDimension.value()); - + Log.debug("ComboDimensionType created"); final DimensionRowSelectionListener listener = new DimensionRowSelectionListener() { @@ -360,19 +379,18 @@ public class EditRowPanel extends FramedPanel { } }; - - - String viewColumn=col.getRelationship().getTargetColumnId(); - - String valueOnViewColumn=rowRaw.getMap().get(viewColumn); - - final CellData cellData = new CellData(valueOnViewColumn, "", viewColumn, - "", rowRaw.getRowId(), 0, 0); - - DimensionRow dimR=new DimensionRow(rowRaw.getRowId(),valueOnViewColumn); + + String viewColumn = col.getRelationship().getTargetColumnId(); + + String valueOnViewColumn = rowRaw.getMap().get(viewColumn); + + final CellData cellData = new CellData(valueOnViewColumn, "", + viewColumn, "", rowRaw.getRowId(), 0, 0); + + DimensionRow dimR = new DimensionRow(rowRaw.getRowId(), + valueOnViewColumn); comboDimension.setValue(dimR); - - + comboDimension.addTriggerClickHandler(new TriggerClickHandler() { @Override @@ -394,8 +412,7 @@ public class EditRowPanel extends FramedPanel { comboDimension.setEditable(false); comboDimension.setTriggerAction(TriggerAction.ALL); - FieldLabel dimensionLabel = new FieldLabel(comboDimension, - col.getLabel()); + FieldLabel dimensionLabel = new FieldLabel(comboDimension, label); dimensionLabel.setId(col.getColumnId()); return dimensionLabel; }