// // WordAZContainer.m // Duncan // // Created by Banlu Kemiyatorn on Sun Aug 03 2003. // Copyright (c) 2003 __MyCompanyName__. All rights reserved. // #import "WordAZContainer.h" @implementation WordAZContainer - (id)init { self = [super init]; [self setString:@"A-Z Dictionary"]; [self buildDictionary]; return self; } - (void)registerWord:(Word *)nw { NSEnumerator *dictEnum = [self objectEnumerator]; id dictkey; BOOL added = NO; while ((dictkey = [dictEnum nextObject])) { if ([[[nw string] capitalizedString] characterAtIndex:0] == [[dictkey string] characterAtIndex:0]) { [dictkey addWord:nw]; added = YES; break; } } if (!added) { [udict addWord:nw]; } } - (void)buildDictionary { NSArray *larray = [NSArray arrayWithObjects:@"...",@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z",nil]; NSDictionary *thedict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Dictionary" ofType:@"plist"]]; NSEnumerator *anEnum = [larray objectEnumerator]; id key; while ((key = [anEnum nextObject])) { id container = [[WordContainer alloc] initWithName:key]; [self addWord:container]; if ([[container string] isEqualToString:@"..."]) { udict = container; } } anEnum = [thedict keyEnumerator]; while ((key = [anEnum nextObject])) { [self registerWord:[Word wordWithString:key definition:[thedict objectForKey:key]]]; } } - (void) query:(id)datarep withParentPath:(NSString *)parentpath { [super byPassQuery:datarep withParentPath:parentpath]; NSEnumerator *dictEnum = [self objectEnumerator]; id dictkey; id thestring = [datarep keyword]; id pathString = [NSString stringWithFormat:@"%@/%@",parentpath,string]; while ((dictkey = [dictEnum nextObject])) { if ([[[thestring substringToIndex:1] uppercaseString] characterAtIndex:0] == [[dictkey string] characterAtIndex:0]) { [dictkey query:datarep withParentPath:pathString]; return; } } [udict query:datarep withParentPath:pathString]; } @end