if (fListener != null) fListener.setCurrentPosition(currentPosition, deltaOffset + event.getText().length());
if (fListener != null) { int length= event.getText() == null ? 0 : event.getText().length(); fListener.setCurrentPosition(currentPosition, deltaOffset + length); }
	public void documentChanged(DocumentEvent event) {				// have to handle code assist, so can't just leave the linked mode 		// leave(true);				IDocument document= event.getDocument();		Position[] positions= getPositions(document);		TypedPosition currentPosition= (TypedPosition) findCurrentPosition(positions, event.getOffset());		// ignore document changes (assume it won't invalidate constraints)		if (currentPosition == null)			return;				int deltaOffset= event.getOffset() - currentPosition.getOffset();				if (fListener != null)			fListener.setCurrentPosition(currentPosition, deltaOffset + event.getText().length());				for (int i= 0; i != positions.length; i++) {			TypedPosition p= (TypedPosition) positions[i];									if (p.getType().equals(currentPosition.getType()) && !p.equals(currentPosition)) {				Replace replace= new Replace(p, deltaOffset, event.getLength(), event.getText());				((IDocumentExtension) document).registerPostNotificationReplace(this, replace);			}		}	}