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.ArrayList;
|
||||||
import java.util.Date;
|
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.DimensionRowSelectionDialog;
|
||||||
import org.gcube.portlets.user.td.columnwidget.client.dimension.DimensionRowSelectionListener;
|
import org.gcube.portlets.user.td.columnwidget.client.dimension.DimensionRowSelectionListener;
|
||||||
|
@ -67,12 +68,46 @@ public class EditRowPanel extends FramedPanel {
|
||||||
protected EventBus eventBus;
|
protected EventBus eventBus;
|
||||||
protected ArrayList<ColumnData> columns;
|
protected ArrayList<ColumnData> columns;
|
||||||
protected RowRaw rowRaw;
|
protected RowRaw rowRaw;
|
||||||
|
protected boolean editRow;
|
||||||
|
|
||||||
|
protected VerticalLayoutContainer v;
|
||||||
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 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,
|
public EditRowPanel(EditRowDialog parent, TRId trId, RowRaw row,
|
||||||
EventBus eventBus) {
|
EventBus eventBus) {
|
||||||
super();
|
super();
|
||||||
|
@ -80,6 +115,7 @@ public class EditRowPanel extends FramedPanel {
|
||||||
this.trId = trId;
|
this.trId = trId;
|
||||||
this.rowRaw = row;
|
this.rowRaw = row;
|
||||||
this.eventBus = eventBus;
|
this.eventBus = eventBus;
|
||||||
|
this.editRow = true;
|
||||||
Log.debug("Create EditRowPanel(): [" + trId.toString() + " , RowRaw:"
|
Log.debug("Create EditRowPanel(): [" + trId.toString() + " , RowRaw:"
|
||||||
+ row + "]");
|
+ row + "]");
|
||||||
if (rowRaw == null) {
|
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() {
|
protected void init() {
|
||||||
setWidth(WIDTH);
|
setWidth(WIDTH);
|
||||||
setHeight(HEIGHT);
|
setHeight(HEIGHT);
|
||||||
|
@ -101,7 +157,7 @@ public class EditRowPanel extends FramedPanel {
|
||||||
SimpleContainer container = new SimpleContainer();
|
SimpleContainer container = new SimpleContainer();
|
||||||
container.setHeight(FIELDSHEIGHT);
|
container.setHeight(FIELDSHEIGHT);
|
||||||
|
|
||||||
VerticalLayoutContainer v = new VerticalLayoutContainer();
|
v = new VerticalLayoutContainer();
|
||||||
v.setScrollMode(ScrollMode.AUTO);
|
v.setScrollMode(ScrollMode.AUTO);
|
||||||
container.add(v);
|
container.add(v);
|
||||||
|
|
||||||
|
@ -143,14 +199,14 @@ public class EditRowPanel extends FramedPanel {
|
||||||
v.add(fl, new VerticalLayoutData(1, -1, new Margins(1)));
|
v.add(fl, new VerticalLayoutData(1, -1, new Margins(1)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
container.forceLayout();
|
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() {
|
||||||
|
@ -174,13 +230,6 @@ public class EditRowPanel extends FramedPanel {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void save() {
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void close() {
|
|
||||||
parent.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ArrayList<FieldLabel> generateFields() {
|
protected ArrayList<FieldLabel> generateFields() {
|
||||||
ArrayList<FieldLabel> fields = new ArrayList<FieldLabel>();
|
ArrayList<FieldLabel> fields = new ArrayList<FieldLabel>();
|
||||||
|
|
||||||
|
@ -192,7 +241,7 @@ public class EditRowPanel extends FramedPanel {
|
||||||
label = label.substring(0, LABELSIZE - 3);
|
label = label.substring(0, LABELSIZE - 3);
|
||||||
label += "..";
|
label += "..";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!col.isViewColumn()) {
|
if (!col.isViewColumn()) {
|
||||||
if (col.getTypeCode().compareTo(
|
if (col.getTypeCode().compareTo(
|
||||||
ColumnTypeCode.DIMENSION.toString()) == 0
|
ColumnTypeCode.DIMENSION.toString()) == 0
|
||||||
|
@ -211,7 +260,11 @@ public class EditRowPanel extends FramedPanel {
|
||||||
Radio radioFalse = new Radio();
|
Radio radioFalse = new Radio();
|
||||||
radioFalse.setBoxLabel("false");
|
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)) {
|
if (new Boolean(value)) {
|
||||||
radioTrue.setValue(true);
|
radioTrue.setValue(true);
|
||||||
} else {
|
} else {
|
||||||
|
@ -232,14 +285,17 @@ 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());
|
|
||||||
Date d = null;
|
Date d = null;
|
||||||
try {
|
if (editRow) {
|
||||||
d = sdf.parse(value);
|
String value = rowRaw.getMap().get(
|
||||||
} catch (Throwable e) {
|
col.getColumnId());
|
||||||
Log.error("Error parsing date string: "
|
|
||||||
+ e.getLocalizedMessage());
|
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);
|
date.setValue(d);
|
||||||
|
@ -252,8 +308,11 @@ 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(
|
String value = "";
|
||||||
col.getColumnId());
|
if (editRow) {
|
||||||
|
value = rowRaw.getMap().get(
|
||||||
|
col.getColumnId());
|
||||||
|
}
|
||||||
text.setValue(value);
|
text.setValue(value);
|
||||||
text.addValueChangeHandler(new ValueChangeHandler<String>() {
|
text.addValueChangeHandler(new ValueChangeHandler<String>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -272,8 +331,11 @@ 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(
|
String value = "";
|
||||||
col.getColumnId());
|
if (editRow) {
|
||||||
|
value = rowRaw.getMap().get(
|
||||||
|
col.getColumnId());
|
||||||
|
}
|
||||||
geometry.setValue(value);
|
geometry.setValue(value);
|
||||||
geometry.addValueChangeHandler(new ValueChangeHandler<String>() {
|
geometry.addValueChangeHandler(new ValueChangeHandler<String>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -292,8 +354,11 @@ 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(
|
String value = "";
|
||||||
col.getColumnId());
|
if (editRow) {
|
||||||
|
value = rowRaw.getMap().get(
|
||||||
|
col.getColumnId());
|
||||||
|
}
|
||||||
integ.setValue(value);
|
integ.setValue(value);
|
||||||
integ.addValueChangeHandler(new ValueChangeHandler<String>() {
|
integ.addValueChangeHandler(new ValueChangeHandler<String>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -313,8 +378,11 @@ 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(
|
String value = "";
|
||||||
col.getColumnId());
|
if (editRow) {
|
||||||
|
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>() {
|
||||||
|
@ -382,14 +450,17 @@ public class EditRowPanel extends FramedPanel {
|
||||||
|
|
||||||
String viewColumn = col.getRelationship().getTargetColumnId();
|
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, "",
|
final CellData cellData = new CellData(valueOnViewColumn, "",
|
||||||
viewColumn, "", rowRaw.getRowId(), 0, 0);
|
viewColumn, "", rowId, 0, 0);
|
||||||
|
|
||||||
DimensionRow dimR = new DimensionRow(rowRaw.getRowId(),
|
|
||||||
valueOnViewColumn);
|
|
||||||
comboDimension.setValue(dimR);
|
|
||||||
|
|
||||||
comboDimension.addTriggerClickHandler(new TriggerClickHandler() {
|
comboDimension.addTriggerClickHandler(new TriggerClickHandler() {
|
||||||
|
|
||||||
|
@ -417,4 +488,109 @@ public class EditRowPanel extends FramedPanel {
|
||||||
return dimensionLabel;
|
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