[Biococoa-dev] strider and gck format

Alexander Griekspoor mek at mekentosj.com
Sat Mar 25 06:22:06 EST 2006


I don't think that is a bug. I guess that is a personal taste. I see  
the columns purely as a visual aid, but think a sequence is a  
continues stretch of characters, hence not separated by spaces. I  
think the whitespace approach is a hack, and this is more elegant but  
that's a personal opinion. It would definitely complicates working  
with the sequence a lot if you continuously have to take the spaces  
into account.
The "1st 10 char selection" bug must be one that is to fix, and if we  
indeed want the word selection that is something that should be able  
to be relatively easily implemented using: - (NSRange) 
selectionRangeForProposedRange:(NSRange)proposedCharRange granularity: 
(NSSelectionGranularity)granularity
(which we override anyway already). The granularity normal returns  
one (selectByCharacter), but two upon doubleclick (selectByWord) or  
three upon tripple click (by paragraph).

..and then I decided to just do it ;-)

Here's the specific method, and now it selects the 10 nucleotides on  
which you doubleclick ;-)

- (NSRange)selectionRangeForProposedRange:(NSRange)proposedCharRange  
granularity:(NSSelectionGranularity)granularity{
	NSRange newCharRange;
	if(granularity == NSSelectByWord){
		newCharRange.location = (proposedCharRange.location / 10) * 10;
		newCharRange.length = ((proposedCharRange.location +  
proposedCharRange.length) / 10 + 1) * 10 - newCharRange.location;
		// sanity checks
		if(newCharRange.location < 0){
			newCharRange.length -= -newCharRange.location;
			newCharRange.location = 0;
		}
		if(newCharRange.location + newCharRange.length > [[self textStorage] 
length]){
			newCharRange.length -= (newCharRange.location +  
newCharRange.length)  - [[self textStorage]length];
		}
	}
	else {
		newCharRange = [super  
selectionRangeForProposedRange:proposedCharRange  
granularity:granularity];
	}
	//NSLog(@"%d -> old: %@ new: %@", granularity, NSStringFromRange 
(proposedCharRange), NSStringFromRange(newCharRange));

	// DRAGGING SELECTION
	id <KDTextViewDelegate> delegate = [self delegate];
     if ([delegate respondsToSelector:@selector 
(didDragSelectionInTextView:range:)]){
		[delegate didDragSelectionInTextView: self range: newCharRange];
	}

	// MAKE SURE THAT SELECTION IS REDRAWN DURING DRAG	
	[self setNeedsDisplay: YES];
	return newCharRange;
}


Now please please let's stay away from the whitespace hack, at least  
I will ;-)
Only this one stupid bug to fix... I'll post that one on cocoa-dev.
Cheers,
Alex



On 25-mrt-2006, at 11:48, Koen van der Drift wrote:

>
> On Mar 19, 2006, at 11:08 AM, Alexander Griekspoor wrote:
>
>> One other thing, there seems to be a bug in the textview that if  
>> you have less than one row of text, you can't select any of the  
>> first 10 characters
>
> There is another bug probably related to this. If I doubleclick in  
> a column, I expect only those 10 symbols to be selected (just as if  
> it is a word in a sentence). However, the whole sequence gets  
> selected. I am wondering if we should go back to inserting the  
> whitespace approach.
>
> cheers,
>
> - Koen.
>

*********************************************************
                     ** Alexander Griekspoor **
*********************************************************
               The Netherlands Cancer Institute
               Department of Tumorbiology (H4)
          Plesmanlaan 121, 1066 CX, Amsterdam
                    Tel:  + 31 20 - 512 2023
                   Fax:  + 31 20 - 512 2029
                   AIM: mekentosj at mac.com
                  E-mail: a.griekspoor at nki.nl
               Web: http://www.mekentosj.com

               4Peaks - For Peaks, Four Peaks.
        2004 Winner of the Apple Design Awards
                Best Mac OS X Student Product
              http://www.mekentosj.com/4peaks

*********************************************************




More information about the Biococoa-dev mailing list