public synchronized void ReviseItemsInReflectionWindow( TReflectionWindowStruc RW, byte[] ExistingItemsBA, TCanceller Canceller) throws IOException, CancelException { TSpaceHint LastItem = null; TSpaceHint Item = Items; while (Item != null) { boolean flRemove = false; if (RW.Container_IsNodeVisible(Item.BindingPointX, Item.BindingPointY)) { flRemove = true; int Idx = 0; int _ItemsCount = TDataConverter.ConvertLEByteArrayToInt32(ExistingItemsBA, Idx); Idx += 4; for (int I = 0; I < _ItemsCount; I++) { int ItemID = TDataConverter.ConvertLEByteArrayToInt32(ExistingItemsBA, Idx); Idx += 8; // . Int64 if (ItemID == Item.ID) { flRemove = false; break; // . > } Idx = Item.ByteArraySkip(ExistingItemsBA, Idx); } } if (flRemove) { if (LastItem != null) LastItem.Next = Item.Next; else Items = Item.Next; ItemsTable.remove(Item.ID); ItemsCount--; } else LastItem = Item; // . if (Canceller != null) Canceller.Check(); // . Item = Item.Next; } }