Skip to content

Commit aea20ab

Browse files
author
Open Lowcode SAS
committed
Extra stability fix for #169
1 parent def4631 commit aea20ab

File tree

2 files changed

+39
-19
lines changed

2 files changed

+39
-19
lines changed

src/org/openlowcode/client/graphic/widget/CGrid.java

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,7 +1111,7 @@ public DataElt getDataElt(DataEltType type, String eltname, String objectdataloc
11111111

11121112
@Override
11131113
public void forceUpdateData(DataElt dataelt) {
1114-
reviewDataWarningForGrid();
1114+
11151115

11161116
if (!(dataelt instanceof ArrayDataElt))
11171117
throw new RuntimeException(
@@ -1124,27 +1124,33 @@ public void forceUpdateData(DataElt dataelt) {
11241124
updatedrowsbyid.put(thiselementarray.getObjectAtIndex(i).getUID(), thiselementarray.getObjectAtIndex(i));
11251125
}
11261126
int updated = 0;
1127-
for (int i = 0; i < dataingrid.getSize(); i++) {
1128-
CObjectGridLine<String> currentline = dataingrid.get(i);
1129-
for (int j = 0; j < currentline.getObjectinlineNumber(); j++) {
1130-
ObjectInGrid object = currentline.getObjectinline(j);
1131-
String uid = object.getObject().getUID();
1132-
ObjectDataElt relevantobject = updatedrowsbyid.get(uid);
1133-
logger.finest("adding new object through force update data - Adding to Grid Line "
1134-
+ currentline.getLineLabel() + " (" + currentline.hashCode() + ") " + relevantobject.hashCode()
1135-
+ " - " + relevantobject.lookupEltByName("ID") + " - "
1136-
+ relevantobject.lookupEltByName("YEARALLOCATED"));
1137-
if (relevantobject != null) {
1138-
object.forceUpdatedObject(relevantobject);
1139-
updated++;
1140-
}
1127+
if (!this.reversetree) {
1128+
for (int i = 0; i < dataingrid.getSize(); i++) {
1129+
CObjectGridLine<String> currentline = dataingrid.get(i);
1130+
for (int j = 0; j < currentline.getObjectinlineNumber(); j++) {
1131+
ObjectInGrid object = currentline.getObjectinline(j);
1132+
String uid = object.getObject().getUID();
1133+
ObjectDataElt relevantobject = updatedrowsbyid.get(uid);
1134+
logger.finest("adding new object through force update data - Adding to Grid Line "
1135+
+ currentline.getLineLabel() + " (" + currentline.hashCode() + ") "
1136+
+ relevantobject.hashCode() + " - " + relevantobject.lookupEltByName("ID") + " - "
1137+
+ relevantobject.lookupEltByName("YEARALLOCATED"));
1138+
if (relevantobject != null) {
1139+
object.forceUpdatedObject(relevantobject);
1140+
updated++;
1141+
}
11411142

1143+
}
11421144
}
1145+
if (updated != thiselementarray.getObjectNumber())
1146+
actionmanager.getClientSession().getActiveClientDisplay()
1147+
.updateStatusBar("Received " + thiselementarray.getObjectNumber() + " elements, but only "
1148+
+ updated + " could be updated on the page", true);
1149+
} else {
1150+
logger.severe("Tree Table Resetunmarked items");
1151+
treetable.unMarkUpdatedItems();
11431152
}
1144-
if (updated != thiselementarray.getObjectNumber())
1145-
actionmanager.getClientSession().getActiveClientDisplay()
1146-
.updateStatusBar("Received " + thiselementarray.getObjectNumber() + " elements, but only " + updated
1147-
+ " could be updated on the page", true);
1153+
reviewDataWarningForGrid();
11481154
}
11491155

11501156
@Override
@@ -1246,7 +1252,9 @@ public void reviewDataWarningForGrid() {
12461252
updatedrow++;
12471253
}
12481254
} else {
1255+
12491256
updatedrow = this.treetable.getUpdatedItems().size();
1257+
logger.severe("Get all updated rows, result = "+updatedrow);
12501258
}
12511259
if (updatedrow == 0) {
12521260
// remove any present unsaved data warning for this component

src/org/openlowcode/client/graphic/widget/table/EditableTreeTable.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,13 @@ public List<E> getUpdatedItems() {
166166
}
167167
return updateditems;
168168
}
169+
170+
public void unMarkUpdatedItems() {
171+
for (int i = 0; i < this.wrappedpayload.size(); i++) {
172+
Wrapper<E> item = this.wrappedpayload.get(i);
173+
item.setNotUpdated();
174+
}
175+
}
169176

170177
/**
171178
* defines a line grouping based on the value of a given field of the payload
@@ -1298,6 +1305,11 @@ public Wrapper(E payload) {
12981305
this.payload = payload;
12991306
}
13001307

1308+
public void setNotUpdated() {
1309+
this.updated=false;
1310+
1311+
}
1312+
13011313
public E getPayload() {
13021314
return payload;
13031315
}

0 commit comments

Comments
 (0)