BWToolkit / BWToolbarItem.m

//
//  BWToolbarItem.m
//  BWToolkit
//
//  Created by Brandon Walkin (www.brandonwalkin.com)
//  All code is provided under the New BSD license.
//

#import "BWToolbarItem.h"
#import "NSString+BWAdditions.h"

@interface BWToolbarItem ()
@property (copy) NSString *identifierString;
@end

@interface NSToolbarItem (BWTIPrivate)
- (void)_setItemIdentifier:(id)fp8;
- (id)initWithCoder:(NSCoder *)coder;
- (void)encodeWithCoder:(NSCoder*)coder;
@end

@implementation BWToolbarItem

@synthesize identifierString;

- (id)initWithCoder:(NSCoder *)coder 
{
    if ((self = [super initWithCoder:coder]) != nil)
	{
		[self setIdentifierString:[coder decodeObjectForKey:@"BWTIIdentifierString"]];
	}
	return self;
}

- (void)encodeWithCoder:(NSCoder*)coder
{
	[super encodeWithCoder:coder];
	
	[coder encodeObject:[self identifierString] forKey:@"BWTIIdentifierString"];
}

- (void)setIdentifierString:(NSString *)aString
{
	if (identifierString != aString)
	{
		[identifierString release];
		identifierString = [aString copy];
	}
	
	if (identifierString == nil || [identifierString isEqualToString:@""])
		[self _setItemIdentifier:[[NSString bwRandomUUID] retain]];
	else
		[self _setItemIdentifier:identifierString];
}

- (void)dealloc
{
	[identifierString release];
	[super dealloc];
}

@end
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.