Skip to content

Commit e945b3e

Browse files
author
Open Lowcode SAS
committed
Close #258
1 parent e37d94b commit e945b3e

2 files changed

Lines changed: 26 additions & 19 deletions

File tree

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public CComponentBand(int direction, CPageSignifPath parentpath) {
9797
super(parentpath, null);
9898
this.direction = direction;
9999
elements = new ArrayList<CPageNode>();
100-
100+
this.conditionalelements = new HashMap<Integer, ArrayList<ConditionalBlock>>();
101101
}
102102

103103
/**
@@ -137,18 +137,18 @@ public CComponentBand(MessageReader reader, CPageSignifPath parentpath) throws O
137137
int index = reader.returnNextIntegerField("IND");
138138
CPageDataRef datareference = CPageDataRef.parseCPageDataRef(reader);
139139
ArrayList<String> validvalues = new ArrayList<String>();
140-
140+
reader.startStructureArray("VLD");
141141
while (reader.structureArrayHasNextElement("VLD")) {
142142
validvalues.add(reader.returnNextStringField("PLD"));
143143
reader.returnNextEndStructure("VLD");
144144
}
145145
ArrayList<CPageNode> conditionalelements = new ArrayList<CPageNode>();
146+
reader.startStructureArray("ELT");
146147
while (reader.structureArrayHasNextElement("ELT")) {
147148
conditionalelements.add(CPageNode.parseNode(reader, this.nodepath));
148149
reader.returnNextEndStructure("ELT");
149150
}
150-
ConditionalBlock conditionalblock = new ConditionalBlock( datareference, validvalues,
151-
conditionalelements);
151+
ConditionalBlock conditionalblock = new ConditionalBlock(datareference, validvalues, conditionalelements);
152152
ArrayList<ConditionalBlock> elementsforindex = this.conditionalelements.get(new Integer(index));
153153
if (elementsforindex == null) {
154154
elementsforindex = new ArrayList<ConditionalBlock>();
@@ -221,10 +221,13 @@ private void checkConditionNode(
221221
for (int j = 0; j < block.validvalues.size(); j++)
222222
if (block.validvalues.get(j).equals(choice.getStoredValue()))
223223
choicevalid = true;
224-
for (int j = 0; j < block.conditionalelements.size(); j++) {
225-
thispane.getChildren().add(block.conditionalelements.get(j).getNode(actionmanager, inputdata,
226-
parentwindow, parenttabpanes, nodetocollapsewhenactiontriggered));
227-
}
224+
if (choicevalid)
225+
for (int j = 0; j < block.conditionalelements.size(); j++) {
226+
Node currentnode = block.conditionalelements.get(j).getNode(actionmanager, inputdata,
227+
parentwindow, parenttabpanes, nodetocollapsewhenactiontriggered);
228+
if (currentnode != null)
229+
thispane.getChildren().add(currentnode);
230+
}
228231
}
229232
}
230233

src/org/openlowcode/server/graphic/widget/SComponentBand.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@ public void addElement(SPageNode element) {
130130

131131
}
132132

133-
134133
@Override
135134
public void WritePayloadToCDL(MessageWriter writer, SPageData input, SecurityBuffer buffer) throws IOException {
136135
writer.sendMessageElement(new MessageStringField("DIR", "" + direction));
@@ -143,36 +142,36 @@ public void WritePayloadToCDL(MessageWriter writer, SPageData input, SecurityBuf
143142
writer.endStructure("ELT");
144143
}
145144
}
146-
145+
147146
writer.endStructure("ELTS");
148147

149148
writer.startStructure("CDNBLKS");
150-
for (int i=0;i<this.conditionalblocks.size();i++) {
149+
for (int i = 0; i < this.conditionalblocks.size(); i++) {
151150
writer.startStructure("CDNBLK");
152151
ConditionalBlock thisblock = this.conditionalblocks.get(i);
153-
writer.addIntegerField("IND",thisblock.insertbeforeindex);
152+
writer.addIntegerField("IND", thisblock.insertbeforeindex);
154153
thisblock.conditionchoice.writeReferenceToCML(writer);
155154
// values block
156155
writer.startStructure("VLDS");
157-
for (int j=0;j<thisblock.validchoices.length;j++) {
156+
for (int j = 0; j < thisblock.validchoices.length; j++) {
158157
writer.startStructure("VLD");
159-
writer.addStringField("PLD",thisblock.validchoices[j].getStorageCode());
158+
writer.addStringField("PLD", thisblock.validchoices[j].getStorageCode());
160159
writer.endStructure("VLD");
161160
}
162161
writer.endStructure("VLDS");
163-
// ------ Node block
162+
// ------ Node block
164163
writer.startStructure("ELTS");
165-
for (int j=0;j<thisblock.conditionalelements.length;j++) {
164+
for (int j = 0; j < thisblock.conditionalelements.length; j++) {
166165
writer.startStructure("ELT");
167166
thisblock.conditionalelements[j].WriteToCDL(writer, input, buffer);
168167
writer.endStructure("ELT");
169168
}
170169
writer.endStructure("ELTS");
171-
170+
172171
writer.endStructure("CDNBLK");
173172
}
174173
writer.endStructure("CDNBLKS");
175-
174+
176175
}
177176

178177
@Override
@@ -195,16 +194,21 @@ public void populateDown(SPageSignifPath parentpath, SPageNode[] widgetpathtoroo
195194
SPageNode[] newwidgetpathtoroot = this.addCurrentWidgetToRoot(widgetpathtoroot);
196195

197196
for (int i = 0; i < this.elements.size(); i++) {
197+
198198
this.elements.get(i).populateDown(pathforelements, newwidgetpathtoroot);
199199
}
200+
for (int i = 0; i < this.conditionalblocks.size(); i++) {
201+
ConditionalBlock block = this.conditionalblocks.get(i);
202+
for (int j = 0; j < block.conditionalelements.length; j++)
203+
block.conditionalelements[j].populateDown(pathforelements, newwidgetpathtoroot);
204+
}
200205
}
201206

202207
@Override
203208
public String toString() {
204209
return "SCOMPONENTBAND[" + callstackatcreation + "]";
205210
}
206211

207-
208212
/**
209213
* adds a conditional block in the page band
210214
*

0 commit comments

Comments
 (0)