public ListLevel GetLevel(int listID, int level) { ListData lst = _listMap[listID]; if (level < lst.numLevels()) { ListLevel lvl = lst.GetLevels()[level]; return(lvl); } //log.log(POILogger.WARN, "Requested level " + level + " which was greater than the maximum defined (" + lst.numLevels() + ")"); return(null); }
public void WriteListDataTo(HWPFStream tableStream) { int listSize = _listMap.Count; // use this stream as a buffer for the levels since their size varies. MemoryStream levelBuf = new MemoryStream(); byte[] shortHolder = new byte[2]; LittleEndian.PutShort(shortHolder, 0, (short)listSize); tableStream.Write(shortHolder); //TODO:: sort the keys foreach (int x in _listMap.Keys) { ListData lst = _listMap[x]; tableStream.Write(lst.ToArray()); ListLevel[] lvls = lst.GetLevels(); for (int y = 0; y < lvls.Length; y++) { byte[] bytes = lvls[y].ToArray(); levelBuf.Write(bytes, 0, bytes.Length); } } tableStream.Write(levelBuf.ToArray()); }