private void addRegion(int offset, int length) { if (regionCount == 0) { offsets[0] = offset; lengths[0] = length; } else { if (regionCount == offsets.length) { growRegionArray(regionCount * 2); } offsets[regionCount] = offset; lengths[regionCount] = length; } regionCount++; }
private void addRegion(int offset, int length) { if (regionCount == 0) { offsets[0] = offset; lengths[0] = length; } else { if (regionCount == offsets.length) { growRegionArray(regionCount * 2); } offsets[regionCount] = offset; lengths[regionCount] = length; } regionCount++; }
public synchronized void documentAboutToBeChanged(DocumentEvent event) { if (document == null) { return; } TextChangingEvent changeEvent = new TextChangingEvent(this); changeEvent.start = event.fOffset; changeEvent.newText = (event.fText == null ? "" : event.fText); //$NON-NLS-1$ changeEvent.replaceCharCount = event.fLength; changeEvent.newCharCount = (event.fText == null ? 0 : event.fText.length()); int first = getLineAtOffset(event.fOffset); int lOffset = Math.max(event.fOffset + event.fLength - 1, 0); int last = getLineAtOffset(lOffset); changeEvent.replaceLineCount = Math.max(last - first, 0); int newLineCount = countNewLines(event.fText); changeEvent.newLineCount = newLineCount >= 0 ? newLineCount : 0; if (changeEvent.newLineCount > offsets.length-regionCount) { growRegionArray(changeEvent.newLineCount); } for (Iterator iter = textChangeListeners.iterator(); iter.hasNext();) { TextChangeListener element = (TextChangeListener) iter.next(); element.textChanging(changeEvent); } }
@Override public synchronized void documentAboutToBeChanged(DocumentEvent event) { if (document == null) { return; } TextChangingEvent changeEvent = new TextChangingEvent(this); changeEvent.start = event.fOffset; changeEvent.newText = (event.fText == null ? "" : event.fText); //$NON-NLS-1$ changeEvent.replaceCharCount = event.fLength; changeEvent.newCharCount = (event.fText == null ? 0 : event.fText.length()); int first = getLineAtOffset(event.fOffset); int lOffset = Math.max(event.fOffset + event.fLength - 1, 0); int last = getLineAtOffset(lOffset); changeEvent.replaceLineCount = Math.max(last - first, 0); int newLineCount = countNewLines(event.fText); changeEvent.newLineCount = newLineCount >= 0 ? newLineCount : 0; if (changeEvent.newLineCount > offsets.length-regionCount) { growRegionArray(changeEvent.newLineCount); } for (TextChangeListener listener : textChangeListeners) { listener.textChanging(changeEvent); } }