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:
parent
4f8532d9e1
commit
54e9614f2a
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue