The following example, from the Erewhon Investments example schema supplied on the JADE release medium, shows the use of the
zLoadSubsetReversed(whichEnd: Integer) updating, protected // The whichEnd parameter is used to fill the list from the end of the list // box if EndOfList, otherwise fill starting from the top of the list box. vars linesInDisplay, idx : Integer; obj : Object; begin linesInDisplay := self.lines; idx := self.listCount; if whichEnd = EndOfList then // Fill from the end of the list box while zMyIterator.back(obj) do idx := idx + 1; // Add the item text and object addItem(displayEntry(self, obj, idx)); itemObject[idx] := obj; // If the entry was selected, then select it in the list if zSelectedObjects.includes(obj) then self.itemSelected[idx] := true; endif; zCurrentIteratorPosition := idx; if showUpdates then // We want to be told about changes to this object beginNotification(obj, Object_Update_Event, Response_Continuous, NotifyInstanceUpdate); endif; if idx = linesInDisplay then break; // We've filled enough endif; endwhile; else // Fill from the start of the list box idx := 1; while zMyIterator.back(obj) do // Add the item text and object addItemAt(displayEntry(self, obj, idx), idx); itemObject[idx] := obj; // If the entry was selected, then select it in the list if zSelectedObjects.includes(obj) then itemSelected[idx] := true; endif; zCurrentIteratorPosition := idx; if showUpdates then // We want to be told about changes to this object beginNotification(obj, Object_Update_Event, Response_Continuous, NotifyInstanceUpdate); endif; if self.listCount = linesInDisplay then break; // We've filled enough endif; idx := idx + 1; endwhile; endif; end;