Пример #1
0
        public ListFormatOverrideLevel GetOverrideLevel(int level)
        {
            ListFormatOverrideLevel retLevel = null;

            for (int x = 0; x < _levelOverrides.Length; x++)
            {
                if (_levelOverrides[x].GetLevelNum() == level)
                {
                    retLevel = _levelOverrides[x];
                }
            }
            return(retLevel);
        }
Пример #2
0
        internal ListEntry(PAPX papx, Range parent, ListTables tables)
            : base(papx, parent)
        {

            if (tables != null)
            {
                ListFormatOverride override1 = tables.GetOverride(_props.GetIlfo());
                _overrideLevel = override1.GetOverrideLevel(_props.GetIlvl());
                _level = tables.GetLevel(override1.GetLsid(), _props.GetIlvl());
            }
            else
            {
                //log.log(POILogger.WARN, "No ListTables found for ListEntry - document probably partly corrupt, and you may experience problems");
            }
        }
Пример #3
0
        public ListTables(byte[] tableStream, int lstOffset, int lfoOffset)
        {
            // get the list data
            int length = LittleEndian.GetShort(tableStream, lstOffset);

            lstOffset += LittleEndianConsts.SHORT_SIZE;
            int levelOffset = lstOffset + (length * LIST_DATA_SIZE);

            for (int x = 0; x < length; x++)
            {
                ListData lst = new ListData(tableStream, lstOffset);
                _listMap.Add(lst.GetLsid(), lst);
                lstOffset += LIST_DATA_SIZE;

                int num = lst.numLevels();
                for (int y = 0; y < num; y++)
                {
                    ListLevel lvl = new ListLevel(tableStream, levelOffset);
                    lst.SetLevel(y, lvl);
                    levelOffset += lvl.GetSizeInBytes();
                }
            }

            // now get the list format overrides. The size is an int unlike the LST size
            length     = LittleEndian.GetInt(tableStream, lfoOffset);
            lfoOffset += LittleEndianConsts.INT_SIZE;
            int lfolvlOffset = lfoOffset + (LIST_FORMAT_OVERRIDE_SIZE * length);

            for (int x = 0; x < length; x++)
            {
                ListFormatOverride lfo = new ListFormatOverride(tableStream, lfoOffset);
                lfoOffset += LIST_FORMAT_OVERRIDE_SIZE;
                int num = lfo.numOverrides();
                for (int y = 0; y < num; y++)
                {
                    while (tableStream[lfolvlOffset] == 255)
                    {
                        lfolvlOffset++;
                    }
                    ListFormatOverrideLevel lfolvl = new ListFormatOverrideLevel(tableStream, lfolvlOffset);
                    lfo.SetOverride(y, lfolvl);
                    lfolvlOffset += lfolvl.GetSizeInBytes();
                }
                _overrideList.Add(lfo);
            }
        }
Пример #4
0
        public ListTables(byte[] tableStream, int lstOffset, int lfoOffset)
        {
            // get the list data
            int length = LittleEndian.GetShort(tableStream, lstOffset);
            lstOffset += LittleEndianConsts.SHORT_SIZE;
            int levelOffset = lstOffset + (length * LIST_DATA_SIZE);

            for (int x = 0; x < length; x++)
            {
                ListData lst = new ListData(tableStream, lstOffset);
                _listMap.Add(lst.GetLsid(), lst);
                lstOffset += LIST_DATA_SIZE;

                int num = lst.numLevels();
                for (int y = 0; y < num; y++)
                {
                    ListLevel lvl = new ListLevel(tableStream, levelOffset);
                    lst.SetLevel(y, lvl);
                    levelOffset += lvl.GetSizeInBytes();
                }
            }

            // now get the list format overrides. The size is an int unlike the LST size
            length = LittleEndian.GetInt(tableStream, lfoOffset);
            lfoOffset += LittleEndianConsts.INT_SIZE;
            int lfolvlOffset = lfoOffset + (LIST_FORMAT_OVERRIDE_SIZE * length);
            for (int x = 0; x < length; x++)
            {
                ListFormatOverride lfo = new ListFormatOverride(tableStream, lfoOffset);
                lfoOffset += LIST_FORMAT_OVERRIDE_SIZE;
                int num = lfo.numOverrides();
                for (int y = 0; y < num; y++)
                {
                    while (tableStream[lfolvlOffset] == 255)
                    {
                        lfolvlOffset++;
                    }
                    ListFormatOverrideLevel lfolvl = new ListFormatOverrideLevel(tableStream, lfolvlOffset);
                    lfo.SetOverride(y, lfolvl);
                    lfolvlOffset += lfolvl.GetSizeInBytes();
                }
                _overrideList.Add(lfo);
            }
        }
Пример #5
0
        public override bool Equals(Object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            ListFormatOverrideLevel lfolvl = (ListFormatOverrideLevel)obj;
            bool lvlEquality = false;

            if (_lvl != null)
            {
                lvlEquality = _lvl.Equals(lfolvl._lvl);
            }
            else
            {
                lvlEquality = lfolvl._lvl == null;
            }

            return(lvlEquality && lfolvl._iStartAt == _iStartAt && lfolvl._info == _info &&
                   Arrays.Equals(lfolvl._reserved, _reserved));
        }
Пример #6
0
 public void SetOverride(int index, ListFormatOverrideLevel lfolvl)
 {
     _levelOverrides[index] = lfolvl;
 }
Пример #7
0
 public void SetOverride(int index, ListFormatOverrideLevel lfolvl)
 {
     _levelOverrides[index] = lfolvl;
 }