Examples of UserEditAtom


Examples of org.apache.poi.hslf.record.UserEditAtom

      Record r = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          (int)cua.getCurrentEditOffset()
      );
      if(! (r instanceof UserEditAtom)) { return null; }
      UserEditAtom uea = (UserEditAtom)r;
     
      // Now get the PersistPtrHolder
      Record r2 = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          uea.getPersistPointersOffset()
      );
      if(! (r2 instanceof PersistPtrHolder)) { return null; }
      PersistPtrHolder pph = (PersistPtrHolder)r2;
     
      // Now get the last record
View Full Code Here

Examples of org.apache.poi.hslf.record.UserEditAtom

      // Add the new Slide into the PersistPtr stuff
      int offset = 0;
      int slideOffset = 0;
      PersistPtrHolder ptr = null;
      UserEditAtom usr = null;
      for (int i = 0; i < _records.length; i++) {
        Record record = _records[i];
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        record.writeOut(out);
       
        // Grab interesting records as they come past
        if(_records[i].getRecordType() == RecordTypes.PersistPtrIncrementalBlock.typeID){
          ptr = (PersistPtrHolder)_records[i];
        }
        if(_records[i].getRecordType() == RecordTypes.UserEditAtom.typeID) {
          usr = (UserEditAtom)_records[i];
        }
       
        if(i == slideRecordPos) {
          slideOffset = offset;
        }
        offset += out.size();
      }
     
    // Add the new slide into the last PersistPtr
      // (Also need to tell it where it is)
    slideRecord.setLastOnDiskOffset(slideOffset);
    ptr.addSlideLookup(sp.getRefID(), slideOffset);
    logger.log(POILogger.INFO, "New slide ended up at " + slideOffset);

    // Last view is now of the slide
      usr.setLastViewType((short)UserEditAtom.LAST_VIEW_SLIDE_VIEW);
     
      // All done and added
      slide.setSlideShow(this);
      return slide;
  }
View Full Code Here

Examples of org.apache.poi.hslf.record.UserEditAtom

      // Add the new Slide into the PersistPtr stuff
      int offset = 0;
      int slideOffset = 0;
      PersistPtrHolder ptr = null;
      UserEditAtom usr = null;
      for (int i = 0; i < _records.length; i++) {
        Record record = _records[i];
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        record.writeOut(out);
       
        // Grab interesting records as they come past
        if(_records[i].getRecordType() == RecordTypes.PersistPtrIncrementalBlock.typeID){
          ptr = (PersistPtrHolder)_records[i];
        }
        if(_records[i].getRecordType() == RecordTypes.UserEditAtom.typeID) {
          usr = (UserEditAtom)_records[i];
        }
       
        if(i == slideRecordPos) {
          slideOffset = offset;
        }
        offset += out.size();
      }
     
    // Add the new slide into the last PersistPtr
      // (Also need to tell it where it is)
    slideRecord.setLastOnDiskOffset(slideOffset);
    ptr.addSlideLookup(sp.getRefID(), slideOffset);
    logger.log(POILogger.INFO, "New slide ended up at " + slideOffset);

    // Last view is now of the slide
      usr.setLastViewType((short)UserEditAtom.LAST_VIEW_SLIDE_VIEW);
     
      // All done and added
      slide.setSlideShow(this);
      return slide;
  }
View Full Code Here

Examples of org.apache.poi.hslf.record.UserEditAtom

    // Should only have a master SLWT
    assertEquals(1, ss_empty.getDocumentRecord().getSlideListWithTexts().length);

        //grab UserEditAtom
        UserEditAtom usredit = null;
        Record[] _records = hss_empty.getRecords();
        for (int i = 0; i < _records.length; i++) {
            Record record = _records[i];
            if(record.getRecordType() == RecordTypes.UserEditAtom.typeID) {
                usredit = (UserEditAtom)record;
            }
       }
       assertNotNull(usredit);

    // Add one
    Slide slide = ss_empty.createSlide();
    assertEquals(1, ss_empty.getSlides().length);
    assertEquals(256, slide._getSheetNumber());
    assertEquals(3, slide._getSheetRefId());
    assertEquals(1, slide.getSlideNumber());
        assertEquals(usredit.getMaxPersistWritten(), slide._getSheetRefId());

    // Write out, and read back in
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    hss_empty.write(baos);
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
View Full Code Here

Examples of org.apache.poi.hslf.record.UserEditAtom

   * Test adding a slide to an existing slideshow,
   *  with two slides already
   */
  public void testAddSlideToExisting2() throws Exception {
        //grab UserEditAtom
        UserEditAtom usredit = null;
        Record[] _records = hss_two.getRecords();
        for (int i = 0; i < _records.length; i++) {
            Record record = _records[i];
            if(_records[i].getRecordType() == RecordTypes.UserEditAtom.typeID) {
                usredit = (UserEditAtom)_records[i];
            }
       }
       assertNotNull(usredit);

    // Has two slides
    assertEquals(2, ss_two.getSlides().length);
    Slide s1 = ss_two.getSlides()[0];
    Slide s2 = ss_two.getSlides()[1];

    // Check slide 1 is as expected
    assertEquals(256, s1._getSheetNumber());
    assertEquals(4, s1._getSheetRefId()); // master has notes
    assertEquals(1, s1.getSlideNumber());
    // Check slide 2 is as expected
    assertEquals(257, s2._getSheetNumber());
    assertEquals(6, s2._getSheetRefId()); // master and 1 have notes
    assertEquals(2, s2.getSlideNumber());

    // Add a third one
    Slide s3 = ss_two.createSlide();
    assertEquals(3, ss_two.getSlides().length);
    assertEquals(258, s3._getSheetNumber());
    assertEquals(8, s3._getSheetRefId()); // lots of notes before us
    assertEquals(3, s3.getSlideNumber());
        assertEquals(usredit.getMaxPersistWritten(), s3._getSheetRefId());

    // Write out, and read back in
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    hss_two.write(baos);
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
View Full Code Here

Examples of org.apache.poi.hslf.record.UserEditAtom

            (int)cua.getCurrentEditOffset()
        );
      } catch(ArrayIndexOutOfBoundsException e) {}
      if(r == null) { return null; }
      if(! (r instanceof UserEditAtom)) { return null; }
      UserEditAtom uea = (UserEditAtom)r;

      // Now get the PersistPtrHolder
      Record r2 = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          uea.getPersistPointersOffset()
      );
      if(! (r2 instanceof PersistPtrHolder)) { return null; }
      PersistPtrHolder pph = (PersistPtrHolder)r2;

      // Now get the last record
View Full Code Here

Examples of org.apache.poi.hslf.record.UserEditAtom

    private Record[] read(byte[] docstream, int usrOffset){
        ArrayList<Integer> lst = new ArrayList<Integer>();
        HashMap<Integer,Integer> offset2id = new HashMap<Integer,Integer>();
        while (usrOffset != 0){
            UserEditAtom usr = (UserEditAtom) Record.buildRecordAtOffset(docstream, usrOffset);
            lst.add(Integer.valueOf(usrOffset));
            int psrOffset = usr.getPersistPointersOffset();

            PersistPtrHolder ptr = (PersistPtrHolder)Record.buildRecordAtOffset(docstream, psrOffset);
            lst.add(Integer.valueOf(psrOffset));
            Hashtable<Integer,Integer> entries = ptr.getSlideLocationsLookup();
            for(Integer id : entries.keySet()) {
                Integer offset = entries.get(id);
                lst.add(offset);
                offset2id.put(offset, id);
            }

            usrOffset = usr.getLastUserEditAtomOffset();
        }
        //sort found records by offset.
        //(it is not necessary but SlideShow.findMostRecentCoreRecords() expects them sorted)
        Integer a[] = lst.toArray(new Integer[lst.size()]);
        Arrays.sort(a);
View Full Code Here

Examples of org.apache.poi.hslf.record.UserEditAtom

        } catch (IOException e) {
            throw new HSLFException(e);
        }
   
    PersistPtrHolder ptr = (PersistPtrHolder)interestingRecords.get(RecordTypes.PersistPtrIncrementalBlock);
    UserEditAtom usr = (UserEditAtom)interestingRecords.get(RecordTypes.UserEditAtom);

    // persist ID is UserEditAtom.maxPersistWritten + 1
    int psrId = usr.getMaxPersistWritten() + 1;

    // Last view is now of the slide
    usr.setLastViewType((short) UserEditAtom.LAST_VIEW_SLIDE_VIEW);
    // increment the number of persistent objects
    usr.setMaxPersistWritten(psrId);

    // Add the new slide into the last PersistPtr
    // (Also need to tell it where it is)
    int slideOffset = slideRecord.getLastOnDiskOffset();
    slideRecord.setLastOnDiskOffset(slideOffset);
View Full Code Here

Examples of org.apache.poi.hslf.record.UserEditAtom

    private Record[] read(byte[] docstream, int usrOffset){
        ArrayList<Integer> lst = new ArrayList<Integer>();
        HashMap<Integer,Integer> offset2id = new HashMap<Integer,Integer>();
        while (usrOffset != 0){
            UserEditAtom usr = (UserEditAtom) Record.buildRecordAtOffset(docstream, usrOffset);
            lst.add(usrOffset);
            int psrOffset = usr.getPersistPointersOffset();

            PersistPtrHolder ptr = (PersistPtrHolder)Record.buildRecordAtOffset(docstream, psrOffset);
            lst.add(psrOffset);
            Hashtable<Integer,Integer> entries = ptr.getSlideLocationsLookup();
            for(Integer id : entries.keySet()) {
                Integer offset = entries.get(id);
                lst.add(offset);
                offset2id.put(offset, id);
            }

            usrOffset = usr.getLastUserEditAtomOffset();
        }
        //sort found records by offset.
        //(it is not necessary but SlideShow.findMostRecentCoreRecords() expects them sorted)
        Integer a[] = lst.toArray(new Integer[lst.size()]);
        Arrays.sort(a);
View Full Code Here

Examples of org.apache.poi.hslf.record.UserEditAtom

       
        // For now, we're only handling PositionDependentRecord's that
        // happen at the top level.
        // In future, we'll need the handle them everywhere, but that's
        // a bit trickier
      UserEditAtom usr = null;
        for (Record record : _records) {
            if (record instanceof PositionDependentRecord) {
                // We've already figured out their new location, and
                // told them that
                // Tell them of the positions of the other records though
                PositionDependentRecord pdr = (PositionDependentRecord)record;
                pdr.updateOtherRecordReferences(oldToNewPositions);
   
                // Grab interesting records as they come past
                // this will only save the very last record of each type
                RecordTypes.Type saveme = null;
                int recordType = (int)record.getRecordType();
                if (recordType == RecordTypes.PersistPtrIncrementalBlock.typeID) {
                    saveme = RecordTypes.PersistPtrIncrementalBlock;
                } else if (recordType == RecordTypes.UserEditAtom.typeID) {
                    saveme = RecordTypes.UserEditAtom;
                    usr = (UserEditAtom)pdr;
                }
                if (interestingRecords != null && saveme != null) {
                    interestingRecords.put(saveme,pdr);
                }
            }
           
            // Whatever happens, write out that record tree
            if (os != null) {
                record.writeOut(os);
            }
        }

        // Update and write out the Current User atom
        int oldLastUserEditAtomPos = (int)currentUser.getCurrentEditOffset();
        Integer newLastUserEditAtomPos = oldToNewPositions.get(oldLastUserEditAtomPos);
        if(usr == null || newLastUserEditAtomPos == null || usr.getLastOnDiskOffset() != newLastUserEditAtomPos) {
            throw new HSLFException("Couldn't find the new location of the last UserEditAtom that used to be at " + oldLastUserEditAtomPos);
        }
        currentUser.setCurrentEditOffset(usr.getLastOnDiskOffset());
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.