Minor Update

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-table-widget@95712 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-05-15 10:57:06 +00:00 committed by Giancarlo Panichi
parent 4f8532d9e1
commit 54e9614f2a
1 changed files with 210 additions and 34 deletions

View File

@ -2,6 +2,7 @@ package org.gcube.portlets.user.td.tablewidget.client.rows;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import org.gcube.portlets.user.td.columnwidget.client.dimension.DimensionRowSelectionDialog;
import org.gcube.portlets.user.td.columnwidget.client.dimension.DimensionRowSelectionListener;
@ -67,12 +68,46 @@ public class EditRowPanel extends FramedPanel {
protected EventBus eventBus;
protected ArrayList<ColumnData> columns;
protected RowRaw rowRaw;
protected boolean editRow;
protected VerticalLayoutContainer v;
private TextButton btnSave;
private TextButton btnClose;
private DateTimeFormat sdf = DateTimeFormat.getFormat("yyyy-MM-dd");
public class Cupple {
String columnId;
String value;
public Cupple(String columnId, String value) {
this.columnId = columnId;
this.value = value;
}
public String getColumnId() {
return columnId;
}
public void setColumnId(String columnId) {
this.columnId = columnId;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "Cupple [columnId=" + columnId + ", value=" + value + "]";
}
}
public EditRowPanel(EditRowDialog parent, TRId trId, RowRaw row,
EventBus eventBus) {
super();
@ -80,6 +115,7 @@ public class EditRowPanel extends FramedPanel {
this.trId = trId;
this.rowRaw = row;
this.eventBus = eventBus;
this.editRow = true;
Log.debug("Create EditRowPanel(): [" + trId.toString() + " , RowRaw:"
+ row + "]");
if (rowRaw == null) {
@ -90,6 +126,26 @@ public class EditRowPanel extends FramedPanel {
}
}
/**
* Add a new row
*
* @param parent
* @param trId
* @param eventBus
*/
public EditRowPanel(EditRowDialog parent, TRId trId, EventBus eventBus) {
super();
this.parent = parent;
this.trId = trId;
this.eventBus = eventBus;
this.editRow = false;
Log.debug("Create For Add Row EditRowPanel(): [" + trId.toString()
+ "]");
init();
retrieveColumn();
}
protected void init() {
setWidth(WIDTH);
setHeight(HEIGHT);
@ -101,7 +157,7 @@ public class EditRowPanel extends FramedPanel {
SimpleContainer container = new SimpleContainer();
container.setHeight(FIELDSHEIGHT);
VerticalLayoutContainer v = new VerticalLayoutContainer();
v = new VerticalLayoutContainer();
v.setScrollMode(ScrollMode.AUTO);
container.add(v);
@ -143,14 +199,14 @@ public class EditRowPanel extends FramedPanel {
v.add(fl, new VerticalLayoutData(1, -1, new Margins(1)));
}
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() {
@ -174,13 +230,6 @@ public class EditRowPanel extends FramedPanel {
}
protected void save() {
}
protected void close() {
parent.close();
}
protected ArrayList<FieldLabel> generateFields() {
ArrayList<FieldLabel> fields = new ArrayList<FieldLabel>();
@ -192,7 +241,7 @@ public class EditRowPanel extends FramedPanel {
label = label.substring(0, LABELSIZE - 3);
label += "..";
}
}
}
if (!col.isViewColumn()) {
if (col.getTypeCode().compareTo(
ColumnTypeCode.DIMENSION.toString()) == 0
@ -211,7 +260,11 @@ public class EditRowPanel extends FramedPanel {
Radio radioFalse = new Radio();
radioFalse.setBoxLabel("false");
String value = rowRaw.getMap().get(col.getColumnId());
String value = "true";
if (editRow) {
value = rowRaw.getMap().get(col.getColumnId());
}
if (new Boolean(value)) {
radioTrue.setValue(true);
} else {
@ -232,14 +285,17 @@ 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());
if (editRow) {
String value = rowRaw.getMap().get(
col.getColumnId());
try {
d = sdf.parse(value);
} catch (Throwable e) {
Log.error("Error parsing date string: "
+ e.getLocalizedMessage());
}
}
if (d != null) {
date.setValue(d);
@ -252,8 +308,11 @@ 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 = "";
if (editRow) {
value = rowRaw.getMap().get(
col.getColumnId());
}
text.setValue(value);
text.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
@ -272,8 +331,11 @@ 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 = "";
if (editRow) {
value = rowRaw.getMap().get(
col.getColumnId());
}
geometry.setValue(value);
geometry.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
@ -292,8 +354,11 @@ 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 = "";
if (editRow) {
value = rowRaw.getMap().get(
col.getColumnId());
}
integ.setValue(value);
integ.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
@ -313,8 +378,11 @@ public class EditRowPanel extends FramedPanel {
ColumnDataType.Numeric
.toString()) == 0) {
TextField numeric = new TextField();
String value = rowRaw.getMap().get(
col.getColumnId());
String value = "";
if (editRow) {
value = rowRaw.getMap().get(
col.getColumnId());
}
numeric.setValue(value);
numeric.setId(col.getColumnId());
numeric.addValueChangeHandler(new ValueChangeHandler<String>() {
@ -382,14 +450,17 @@ public class EditRowPanel extends FramedPanel {
String viewColumn = col.getRelationship().getTargetColumnId();
String valueOnViewColumn = rowRaw.getMap().get(viewColumn);
String valueOnViewColumn = null;
String rowId = null;
if (editRow) {
valueOnViewColumn = rowRaw.getMap().get(viewColumn);
rowId = rowRaw.getRowId();
DimensionRow dimR = new DimensionRow(rowId, valueOnViewColumn);
comboDimension.setValue(dimR);
}
final CellData cellData = new CellData(valueOnViewColumn, "",
viewColumn, "", rowRaw.getRowId(), 0, 0);
DimensionRow dimR = new DimensionRow(rowRaw.getRowId(),
valueOnViewColumn);
comboDimension.setValue(dimR);
viewColumn, "", rowId, 0, 0);
comboDimension.addTriggerClickHandler(new TriggerClickHandler() {
@ -417,4 +488,109 @@ public class EditRowPanel extends FramedPanel {
return dimensionLabel;
}
protected void save() {
int i = 0;
int lenght = v.getWidgetCount();
HashMap<String, String> maps = new HashMap<String, String>();
for (; i < lenght; i++) {
FieldLabel fieldLabel = (FieldLabel) v.getWidget(i);
String columnId = fieldLabel.getId();
ColumnData colCurrent = null;
for (ColumnData col : columns) {
if (col.getColumnId().compareTo(columnId) == 0) {
colCurrent = col;
break;
}
}
if (colCurrent == null) {
return;
}
if (colCurrent.getTypeCode().compareTo(
ColumnTypeCode.DIMENSION.toString()) == 0
|| colCurrent.getTypeCode().compareTo(
ColumnTypeCode.TIMEDIMENSION.toString()) == 0) {
fieldLabel.getWidget();
} else {
if (colCurrent.getDataTypeName().compareTo(
ColumnDataType.Boolean.toString()) == 0) {
Radio radioTrue = (Radio) fieldLabel.getWidget();
maps.put(columnId, radioTrue.getValue().toString());
} else {
if (colCurrent.getDataTypeName().compareTo(
ColumnDataType.Date.toString()) == 0) {
DateField date = (DateField) fieldLabel.getWidget();
if (date == null || date.getCurrentValue() == null) {
maps.put(columnId, null);
} else {
Date d = date.getCurrentValue();
String dateS = sdf.format(d);
maps.put(columnId, dateS);
}
} else {
if (colCurrent.getDataTypeName().compareTo(
ColumnDataType.Text.toString()) == 0) {
TextField text = (TextField) fieldLabel.getWidget();
maps.put(columnId, text.getCurrentValue());
} else {
if (colCurrent.getDataTypeName().compareTo(
ColumnDataType.Geometry.toString()) == 0) {
TextField geometry = (TextField) fieldLabel
.getWidget();
maps.put(columnId, geometry.getCurrentValue());
} else {
if (colCurrent.getDataTypeName().compareTo(
ColumnDataType.Integer.toString()) == 0) {
TextField integ = (TextField) fieldLabel
.getWidget();
@SuppressWarnings("unused")
Integer intege;
try {
intege = new Integer(
integ.getCurrentValue());
} catch (NumberFormatException e) {
UtilsGXT3.alert("Attentions",
colCurrent.getLabel()+" is no a valid Integer type");
return;
}
maps.put(columnId, integ.getCurrentValue());
} else {
if (colCurrent.getDataTypeName().compareTo(
ColumnDataType.Numeric.toString()) == 0) {
TextField numeric = (TextField) fieldLabel
.getWidget();
@SuppressWarnings("unused")
Double d;
try {
d = new Double(
numeric.getCurrentValue());
} catch (NumberFormatException e) {
UtilsGXT3.alert("Attentions",
colCurrent.getLabel()+" is no a valid Numeric type");
return;
}
maps.put(columnId,
numeric.getCurrentValue());
} else {
}
}
}
}
}
}
}
}
}
protected void close() {
if (parent != null) {
parent.close();
}
}
}