#import "NameFormatter.h"
#import "NSOutlineView-SelectedItems.h"
#import "Resource.h"

/* NameFormatter has been deprecated (it never did what I wanted anyway :-) */
/* functionality is now in -outlineView:willDisplayCell:forTableColumn:item: */

@implementation NameFormatter

- (NSString *)stringForObjectValue:(id)obj
{
	if( ![obj isKindOfClass:[NSString class]] ) return nil;
	if( [obj isEqualToString:@""] )
	{
		// unfortunetly this is wrong, the resource I'm being asked about is NOT the selected one!
		if( [[(Resource *)[outlineView selectedItem] type] isEqualToString:@"icns"] )
			return NSLocalizedString( @"Custom Icon", nil );
		else return NSLocalizedString( @"Untitled Resource", nil );
	}
	else return obj;
}

- (NSAttributedString *)attributedStringForObjectValue:(id)obj withDefaultAttributes:(NSDictionary *)attrs
{
	NSString *string = [self stringForObjectValue:obj];
	if( [obj isEqualToString:@""] )
		return [[NSAttributedString alloc] initWithString:string attributes:[NSDictionary dictionaryWithObject:[NSColor grayColor] forKey:NSForegroundColorAttributeName]];
	else return [[NSAttributedString alloc] initWithString:string attributes:attrs];
}

- (NSString *)editingStringForObjectValue:(id)obj
{
	return obj;
}

- (BOOL)getObjectValue:(id *)obj forString:(NSString *)string errorDescription:(NSString **)error
{
	*obj = string;
	return YES;
}

- (BOOL)isPartialStringValid:(NSString *)partialString newEditingString:(NSString **)newString errorDescription:(NSString **)error
{
	return YES;
}

@end
