Revision: 11878
http://bibdesk.svn.sourceforge.net/bibdesk/?rev=11878&view=rev
Author: hofman
Date: 2007-12-12 05:47:35 -0800 (Wed, 12 Dec 2007)
Log Message:
-----------
Make all custom fieldEditor delegate methods go through NSControl delegate
methods, implement those in the NSTableView category.
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
trunk/bibdesk/BDSKEditorTableView.m
trunk/bibdesk/BDSKFieldEditor.h
trunk/bibdesk/NSTableView_BDSKExtensions.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2007-12-12 12:54:38 UTC (rev 11877)
+++ trunk/bibdesk/BDSKEditor.m 2007-12-12 13:47:35 UTC (rev 11878)
@@ -2190,8 +2190,8 @@
}
}
-- (BOOL)tableView:(NSTableView *)tv textViewShouldLinkKeys:(NSTextView
*)textView forTableColumn:(NSTableColumn *)tableColumn row:(int)row {
- return [tv isEqual:tableView] && [[tableColumn identifier]
isEqualToString:@"value"] && [[fields objectAtIndex:row] isCitationField];
+- (BOOL)control:(NSControl *)control textViewShouldLinkKeys:(NSTextView
*)textView {
+ return [control isEqual:tableView] && [[fields objectAtIndex:[tableView
editedRow]] isCitationField];
}
static NSString *queryStringWithCiteKey(NSString *citekey)
@@ -2199,21 +2199,20 @@
return [NSString stringWithFormat:@"(net_sourceforge_bibdesk_citekey =
'%@'cd) && ((kMDItemContentType != *) || (kMDItemContentType !=
com.apple.mail.emlx))", citekey];
}
-- (BOOL)tableView:(NSTableView *)tv textView:(NSTextView *)textView
isValidKey:(NSString *)key forTableColumn:(NSTableColumn *)tableColumn
row:(int)row {
- if ([tv isEqual:tableView] == NO || [[tableColumn identifier]
isEqualToString:@"value"] == NO) {
- return NO;
- } else if ([[[publication owner] publications] itemForCiteKey:key] == nil)
{
- // don't add a search with the query here, since it gets called on
every keystroke; the formatter method gets called at the end, or when scrolling
- NSString *queryString = queryStringWithCiteKey(key);
- return [[[BDSKPersistentSearch sharedSearch]
resultsForQuery:queryString attribute:(id)kMDItemPath] count] > 0;
+- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView
isValidKey:(NSString *)key {
+ if ([control isEqual:tableView]) {
+ if ([[[publication owner] publications] itemForCiteKey:key] == nil) {
+ // don't add a search with the query here, since it gets called on
every keystroke; the formatter method gets called at the end, or when scrolling
+ NSString *queryString = queryStringWithCiteKey(key);
+ return [[[BDSKPersistentSearch sharedSearch]
resultsForQuery:queryString attribute:(id)kMDItemPath] count] > 0;
+ }
+ return YES;
}
- return YES;
+ return NO;
}
-- (BOOL)tableView:(NSTableView *)tv textView:(NSTextView *)textView
clickedOnLink:(id)aLink atIndex:(unsigned)charIndex
forTableColumn:(NSTableColumn *)tableColumn row:(int)row {
- if ([tv isEqual:tableView] == NO || [[tableColumn identifier]
isEqualToString:@"value"] == NO) {
- return NO;
- } else {
+- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView
clickedOnLink:(id)aLink atIndex:(unsigned)charIndex {
+ if ([control isEqual:tableView]) {
BibItem *pub = [[[publication owner] publications]
itemForCiteKey:aLink];
if (nil == pub) {
NSString *path = [[[BDSKPersistentSearch sharedSearch]
resultsForQuery:queryStringWithCiteKey(aLink) attribute:(id)kMDItemPath]
firstObject];
@@ -2227,6 +2226,7 @@
}
return YES;
}
+ return NO;
}
- (BOOL)citationFormatter:(BDSKCitationFormatter *)formatter
isValidKey:(NSString *)key {
Modified: trunk/bibdesk/BDSKEditorTableView.m
===================================================================
--- trunk/bibdesk/BDSKEditorTableView.m 2007-12-12 12:54:38 UTC (rev 11877)
+++ trunk/bibdesk/BDSKEditorTableView.m 2007-12-12 13:47:35 UTC (rev 11878)
@@ -118,27 +118,4 @@
- (void)highlightSelectionInClipRect:(NSRect)clipRect {}
-#pragma mark BDSKFieldEditorDelegate protocol
-
-- (BOOL)textViewShouldLinkKeys:(NSTextView *)textView {
- int row = [self editedRow], column = [self editedColumn];
- NSTableColumn *tableColumn = [[self tableColumns] objectAtIndex:column];
- return [[self delegate]
respondsToSelector:@selector(tableView:textViewShouldLinkKeys:forTableColumn:row:)]
&&
- [[self delegate] tableView:self textViewShouldLinkKeys:textView
forTableColumn:tableColumn row:row];
-}
-
-- (BOOL)textView:(NSTextView *)textView isValidKey:(NSString *)key{
- int row = [self editedRow], column = [self editedColumn];
- NSTableColumn *tableColumn = [[self tableColumns] objectAtIndex:column];
- return [[self delegate]
respondsToSelector:@selector(tableView:textView:isValidKey:forTableColumn:row:)]
&&
- [[self delegate] tableView:self textView:textView isValidKey:key
forTableColumn:tableColumn row:row];
-}
-
-- (BOOL)textView:(NSTextView *)textView clickedOnLink:(id)aLink
atIndex:(unsigned)charIndex{
- int row = [self editedRow], column = [self editedColumn];
- NSTableColumn *tableColumn = [[self tableColumns] objectAtIndex:column];
- return [[self delegate]
respondsToSelector:@selector(tableView:textView:clickedOnLink:atIndex:forTableColumn:row:)]
&&
- [[self delegate] tableView:self textView:textView
clickedOnLink:aLink atIndex:charIndex forTableColumn:tableColumn row:row];
-}
-
@end
Modified: trunk/bibdesk/BDSKFieldEditor.h
===================================================================
--- trunk/bibdesk/BDSKFieldEditor.h 2007-12-12 12:54:38 UTC (rev 11877)
+++ trunk/bibdesk/BDSKFieldEditor.h 2007-12-12 13:47:35 UTC (rev 11878)
@@ -54,7 +54,12 @@
- (BOOL)textView:(NSTextView *)textView isValidKey:(NSString *)key;
@end
+// the above delegate methods could be implemented by calling these delegate
methods for NSControl subclasses that actually have a delegate
+// currently implemented for NSTableView
@interface NSControl (NSControlBDSKFieldEditorDelegate)
- (NSRange)control:(NSControl *)control textView:(NSTextView *)textView
rangeForUserCompletion:(NSRange)charRange;
- (BOOL)control:(NSControl *)control textViewShouldAutoComplete:(NSTextView
*)textView;
+- (BOOL)control:(NSControl *)control textViewShouldLinkKeys:(NSTextView
*)textView;
+- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView
isValidKey:(NSString *)key;
+- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView
clickedOnLink:(id)aLink atIndex:(unsigned)charIndex;
@end
Modified: trunk/bibdesk/NSTableView_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSTableView_BDSKExtensions.m 2007-12-12 12:54:38 UTC (rev
11877)
+++ trunk/bibdesk/NSTableView_BDSKExtensions.m 2007-12-12 13:47:35 UTC (rev
11878)
@@ -37,10 +37,10 @@
*/
#import "NSTableView_BDSKExtensions.h"
-#import "BDSKFieldEditor.h"
#import "BDSKStringConstants.h"
#import "NSBezierPath_BDSKExtensions.h"
#import "NSLayoutManager_BDSKExtensions.h"
+#import "BDSKFieldEditor.h"
#import <OmniAppKit/OAApplication.h>
#import <OmniFoundation/OFPreference.h>
@@ -127,20 +127,6 @@
return YES; // we assume that any other implemented action is always valid
}
-#pragma mark Autocompletion
-
-- (NSRange)textView:(NSTextView *)textView
rangeForUserCompletion:(NSRange)charRange {
- if (textView == [self currentEditor] && [[self delegate]
respondsToSelector:@selector(control:textView:rangeForUserCompletion:)])
- return [[self delegate] control:self textView:textView
rangeForUserCompletion:charRange];
- return charRange;
-}
-
-- (BOOL)textViewShouldAutoComplete:(NSTextView *)textView {
- if (textView == [self currentEditor] && [[self delegate]
respondsToSelector:@selector(control:textViewShouldAutoComplete:)])
- return [(id)[self delegate] control:self
textViewShouldAutoComplete:textView];
- return NO;
-}
-
#pragma mark Font preferences methods
- (NSString *)fontNamePreferenceKey{
@@ -342,4 +328,36 @@
[self unlockFocus];
}
+#pragma mark BDSKFieldEditor delegate methods for NSControl
+
+- (NSRange)textView:(NSTextView *)textView
rangeForUserCompletion:(NSRange)charRange {
+ if (textView == [self currentEditor] && [[self delegate]
respondsToSelector:@selector(control:textView:rangeForUserCompletion:)])
+ return [[self delegate] control:self textView:textView
rangeForUserCompletion:charRange];
+ return charRange;
+}
+
+- (BOOL)textViewShouldAutoComplete:(NSTextView *)textView {
+ if (textView == [self currentEditor] && [[self delegate]
respondsToSelector:@selector(control:textViewShouldAutoComplete:)])
+ return [(id)[self delegate] control:self
textViewShouldAutoComplete:textView];
+ return NO;
+}
+
+- (BOOL)textViewShouldLinkKeys:(NSTextView *)textView {
+ return textView == [self currentEditor] &&
+ [[self delegate]
respondsToSelector:@selector(control:textViewShouldLinkKeys:)] &&
+ [[self delegate] control:self textViewShouldLinkKeys:textView];
+}
+
+- (BOOL)textView:(NSTextView *)textView isValidKey:(NSString *)key{
+ return textView == [self currentEditor] &&
+ [[self delegate]
respondsToSelector:@selector(control:textView:isValidKey:)] &&
+ [[self delegate] control:self textView:textView isValidKey:key];
+}
+
+- (BOOL)textView:(NSTextView *)textView clickedOnLink:(id)aLink
atIndex:(unsigned)charIndex{
+ return textView == [self currentEditor] &&
+ [[self delegate]
respondsToSelector:@selector(control:textView:clickedOnLink:atIndex:)] &&
+ [[self delegate] control:self textView:textView clickedOnLink:aLink
atIndex:charIndex];
+}
+
@end
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit