Minor Update

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-table-widget@95702 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-05-14 18:37:52 +00:00 committed by Giancarlo Panichi
parent 2b466883b7
commit 4f8532d9e1
1 changed files with 67 additions and 50 deletions

View File

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