question: public int viewToModel ( float fx , float fy , Shape a , Position . Bias [ ] bias ) { bias [ 0 ] = Position . Bias . Forward ; Rectangle alloc = ( Rectangle ) a ; RSyntaxDocument doc = ( RSyntaxDocument ) getDocument ( ) ; int x = ( int ) fx ; int y = ( int ) fy ; if ( y < alloc . y ) { return getStartOffset ( ) ; } else if ( y > alloc . y + alloc . height ) { return getEndOffset ( ) - 1 ; } else { RSyntaxTextArea textArea = ( RSyntaxTextArea ) getContainer ( ) ; alloc . height = textArea . getLineHeight ( ) ; int p1 = getEndOffset ( ) ; Element map = doc . getDefaultRootElement ( ) ; int p0 = getStartOffset ( ) ; int line = map . getElementIndex ( p0 ) ; Token tlist = doc . getTokenListForLine ( line ) ; while ( p0 < p1 ) { RSyntaxUtilities . makeTokenListStartAt ( tlist , p0 , WrappedSyntaxView . this , textArea , alloc . x ) ; int p = calculateBreakPosition ( p0 , tlist , alloc . x ) ; if ( ( y >= alloc . y ) && ( y < ( alloc . y + alloc . height ) ) ) { if ( x < alloc . x ) { return p0 ; } else if ( x > alloc . x + alloc . width ) { return p - 1 ; } else { int n = tlist . getListOffset ( textArea , WrappedSyntaxView . this , alloc . x , x ) ; return Math . max ( Math . min ( n , p1 - 1 ) , p0 ) ; } } p0 = ( p == p0 ) ? p1 : p ; alloc . y += alloc . height ; } return getEndOffset ( ) - 1 ; } }
target:  Provides a mapping from the view coordinate space to the logical coordinate space of the model.