@Override public String get(int offset, int length) { return fTextStore.get(offset, length); }
@Override public void replace(int offset, int length, String text) { if (fTextStore != fModifiableTextStore) { String content= fTextStore.get(0, fTextStore.getLength()); fTextStore= fModifiableTextStore; fTextStore.set(content); } fTextStore.replace(offset, length, text); }
@Override public void replace(int offset, int length, String text) { if (fTextStore != fModifiableTextStore) { String content= fTextStore.get(0, fTextStore.getLength()); fTextStore= fModifiableTextStore; fTextStore.set(content); } fTextStore.replace(offset, length, text); }
@Override public String get(int offset, int length) { return fTextStore.get(offset, length); }
/** * Commits all buffered replace commands. */ private void commit() { if (fReplaceList.isEmpty()) return; StringBuilder buffer= new StringBuilder(); int delta= 0; for (Replace replace : fReplaceList) { int offset= buffer.length() - delta; buffer.append(fSource.get(offset, replace.offset - offset)); buffer.append(replace.text); delta= getDelta(replace); } int offset= buffer.length() - delta; buffer.append(fSource.get(offset, fSource.getLength() - offset)); fSource.set(buffer.toString()); fReplaceList.clear(); } }
@Override public char get(int offset) { return fTextStore.get(offset); }
/** * Commits all buffered replace commands. */ private void commit() { if (fReplaceList.isEmpty()) return; StringBuffer buffer= new StringBuffer(); int delta= 0; for (Iterator<Replace> i= fReplaceList.iterator(); i.hasNext(); ) { Replace replace= i.next(); int offset= buffer.length() - delta; buffer.append(fSource.get(offset, replace.offset - offset)); buffer.append(replace.text); delta= getDelta(replace); } int offset= buffer.length() - delta; buffer.append(fSource.get(offset, fSource.getLength() - offset)); fSource.set(buffer.toString()); fReplaceList.clear(); } }
@Override public char get(int offset) { return fTextStore.get(offset); }
public void run() { String text = new String(content); int offset = calculateBacklogOffset(); String currentText = getStore().get(offset,getStore().getLength() - offset); currentText = currentText.concat(text); getStore().set(currentText); getTracker().set(currentText); if(isFirstTimeRead) { offset = calculateBacklogOffset(); currentText = getStore().get(offset,getStore().getLength() - offset); getStore().set(currentText); getTracker().set(currentText); } //int newOffset = getStore().getLength() > content.length ? getStore().getLength() - content.length : 0; DocumentEvent event = new DocumentEvent(LogDocument.this, getStore().getLength(), content.length, text); fireDocumentChanged(event); } };
@Override public char get(int offset) { if (fReplaceList.isEmpty()) return fSource.get(offset); Replace firstReplace= fReplaceList.getFirst(); Replace lastReplace= fReplaceList.getLast(); // before if (offset < firstReplace.newOffset) { return fSource.get(offset); // after } else if (offset >= lastReplace.newOffset + lastReplace.text.length()) { int delta= getDelta(lastReplace); return fSource.get(offset - delta); } else if (ASSERT_SEQUENTIALITY) { throw new IllegalArgumentException(); } else { int delta= 0; for (Replace replace : fReplaceList) { if (offset < replace.newOffset) return fSource.get(offset - delta); else if (offset < replace.newOffset + replace.text.length()) return replace.text.charAt(offset - replace.newOffset); delta= getDelta(replace); } return fSource.get(offset - delta); } }
/** * Creates a projection document for the given master document. * * @param masterDocument the master document */ public ProjectionDocument(IDocument masterDocument) { super(); fMasterDocument= masterDocument; if (fMasterDocument instanceof IDocumentExtension) fMasterDocumentExtension= (IDocumentExtension) fMasterDocument; fSegmentsCategory= SEGMENTS_CATEGORY; fFragmentsCategory= FRAGMENTS_CATEGORY_PREFIX + hashCode(); fMasterDocument.addPositionCategory(fFragmentsCategory); fFragmentsUpdater= new FragmentUpdater(fFragmentsCategory); fMasterDocument.addPositionUpdater(fFragmentsUpdater); fMapping= new ProjectionMapping(masterDocument, fFragmentsCategory, this, fSegmentsCategory); ITextStore s= new ProjectionTextStore(masterDocument, fMapping); ILineTracker tracker= new DefaultLineTracker(); setTextStore(s); setLineTracker(tracker); completeInitialization(); initializeProjection(); tracker.set(s.get(0, s.getLength())); }
@Override public char get(int offset) { if (fReplaceList.isEmpty()) return fSource.get(offset); Replace firstReplace= fReplaceList.getFirst(); Replace lastReplace= fReplaceList.getLast(); // before if (offset < firstReplace.newOffset) { return fSource.get(offset); // after } else if (offset >= lastReplace.newOffset + lastReplace.text.length()) { int delta= getDelta(lastReplace); return fSource.get(offset - delta); } else if (ASSERT_SEQUENTIALITY) { throw new IllegalArgumentException(); } else { int delta= 0; for (Iterator<Replace> i= fReplaceList.iterator(); i.hasNext(); ) { Replace replace= i.next(); if (offset < replace.newOffset) return fSource.get(offset - delta); else if (offset < replace.newOffset + replace.text.length()) return replace.text.charAt(offset - replace.newOffset); delta= getDelta(replace); } return fSource.get(offset - delta); } }
/** * Creates a projection document for the given master document. * * @param masterDocument the master document */ public ProjectionDocument(IDocument masterDocument) { super(); fMasterDocument= masterDocument; if (fMasterDocument instanceof IDocumentExtension) fMasterDocumentExtension= (IDocumentExtension) fMasterDocument; fSegmentsCategory= SEGMENTS_CATEGORY; fFragmentsCategory= FRAGMENTS_CATEGORY_PREFIX + hashCode(); fMasterDocument.addPositionCategory(fFragmentsCategory); fFragmentsUpdater= new FragmentUpdater(fFragmentsCategory); fMasterDocument.addPositionUpdater(fFragmentsUpdater); fMapping= new ProjectionMapping(masterDocument, fFragmentsCategory, this, fSegmentsCategory); ITextStore s= new ProjectionTextStore(masterDocument, fMapping); ILineTracker tracker= new DefaultLineTracker(); setTextStore(s); setLineTracker(tracker); completeInitialization(); initializeProjection(); tracker.set(s.get(0, s.getLength())); }
return fSource.get(offset, length); return fSource.get(offset, length); return fSource.get(offset - delta, length); for (Replace replace : fReplaceList) { if (offset + length < replace.newOffset) { return fSource.get(offset - delta, length); return fSource.get(offset, length); return fSource.get(offset - delta, length);
@Override public String get() { return getStore().get(0, getLength()); }
@Override public String get() { return getStore().get(0, getLength()); }
@Override public char getChar(int pos) throws BadLocationException { if ((0 > pos) || (pos >= getLength())) throw new BadLocationException(); return getStore().get(pos); }
@Override public char getChar(int pos) throws BadLocationException { if ((0 > pos) || (pos >= getLength())) throw new BadLocationException(); return getStore().get(pos); }
@Override public String get(int pos, int length) throws BadLocationException { int myLength= getLength(); if ((0 > pos) || (0 > length) || (pos + length > myLength)) throw new BadLocationException(); return getStore().get(pos, length); }
@Override public String get(int pos, int length) throws BadLocationException { int myLength= getLength(); if ((0 > pos) || (0 > length) || (pos + length > myLength)) throw new BadLocationException(); return getStore().get(pos, length); }