Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(454)

Side by Side Diff: chrome/browser/ui/cocoa/table_model_array_controller.mm

Issue 5831001: Objective-C Readability CL for bauerb. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/ui/cocoa/table_model_array_controller.h" 5 #import "chrome/browser/ui/cocoa/table_model_array_controller.h"
6 6
7 #include "app/table_model.h" 7 #include "app/table_model.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/sys_string_conversions.h" 9 #include "base/sys_string_conversions.h"
10 #include "chrome/browser/remove_rows_table_model.h" 10 #include "chrome/browser/remove_rows_table_model.h"
11 11
12 @interface TableModelArrayController (PrivateMethods) 12 @interface TableModelArrayController ()
13 13
14 - (NSUInteger)offsetForGroupID:(int)groupID; 14 - (NSUInteger)offsetForGroupID:(int)groupID;
15 - (NSUInteger)offsetForGroupID:(int)groupID startingOffset:(NSUInteger)offset; 15 - (NSUInteger)offsetForGroupID:(int)groupID startingOffset:(NSUInteger)offset;
16 - (NSIndexSet*)controllerRowsForModelRowsInRange:(NSRange)range; 16 - (NSIndexSet*)controllerRowsForModelRowsInRange:(NSRange)range;
17 - (void)setModelRows:(RemoveRowsTableModel::Rows*)modelRows 17 - (void)setModelRows:(RemoveRowsTableModel::Rows*)modelRows
18 fromControllerRows:(NSIndexSet*)rows; 18 fromControllerRows:(NSIndexSet*)rows;
19 - (void)modelDidChange; 19 - (void)modelDidChange;
20 - (void)modelDidAddItemsInRange:(NSRange)range; 20 - (void)modelDidAddItemsInRange:(NSRange)range;
21 - (void)modelDidRemoveItemsInRange:(NSRange)range; 21 - (void)modelDidRemoveItemsInRange:(NSRange)range;
22 - (NSDictionary*)columnValuesForRow:(NSInteger)row; 22 - (NSDictionary*)columnValuesForRow:(NSInteger)row;
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 NSUInteger offset = 1; 143 NSUInteger offset = 1;
144 for (NSUInteger i = range.location; i < NSMaxRange(range); ++i) { 144 for (NSUInteger i = range.location; i < NSMaxRange(range); ++i) {
145 int group = model_->GetGroupID(i); 145 int group = model_->GetGroupID(i);
146 offset = [self offsetForGroupID:group startingOffset:offset]; 146 offset = [self offsetForGroupID:group startingOffset:offset];
147 [indexes addIndex:i + offset]; 147 [indexes addIndex:i + offset];
148 } 148 }
149 return indexes; 149 return indexes;
150 } 150 }
151 151
152 - (void)modelDidAddItemsInRange:(NSRange)range { 152 - (void)modelDidAddItemsInRange:(NSRange)range {
153 if (range.length == 0)
154 return;
153 NSMutableArray* rows = [NSMutableArray arrayWithCapacity:range.length]; 155 NSMutableArray* rows = [NSMutableArray arrayWithCapacity:range.length];
154 for (NSUInteger i=range.location; i<NSMaxRange(range); ++i) 156 for (NSUInteger i = range.location; i < NSMaxRange(range); ++i)
155 [rows addObject:[self columnValuesForRow:i]]; 157 [rows addObject:[self columnValuesForRow:i]];
156 [self insertObjects:rows 158 NSArray* indexes = [self controllerRowsForModelRowsInRange:range];
157 atArrangedObjectIndexes:[self controllerRowsForModelRowsInRange:range]]; 159 [self insertObjects:rows atArrangedObjectIndexes:indexes];
158 } 160 }
159 161
160 - (void)modelDidRemoveItemsInRange:(NSRange)range { 162 - (void)modelDidRemoveItemsInRange:(NSRange)range {
163 if (range.length == 0)
164 return;
161 NSMutableIndexSet* indexes = 165 NSMutableIndexSet* indexes =
162 [NSMutableIndexSet indexSetWithIndexesInRange:range]; 166 [NSMutableIndexSet indexSetWithIndexesInRange:range];
163 if (model_->HasGroups()) { 167 if (model_->HasGroups()) {
164 // When this method is called, the model has already removed items, so 168 // When this method is called, the model has already removed items, so
165 // accessing items in the model from |range.location| on may not be possible 169 // accessing items in the model from |range.location| on may not be possible
166 // anymore. Therefore we use the item right before that, if it exists. 170 // anymore. Therefore we use the item right before that, if it exists.
167 NSUInteger offset = 0; 171 NSUInteger offset = 0;
168 if (range.location > 0) { 172 if (range.location > 0) {
169 int last_group = model_->GetGroupID(range.location - 1); 173 int last_group = model_->GetGroupID(range.location - 1);
170 offset = [self offsetForGroupID:last_group]; 174 offset = [self offsetForGroupID:last_group];
(...skipping 19 matching lines...) Expand all
190 forKey:kGroupID]; 194 forKey:kGroupID];
191 } 195 }
192 for (NSString* identifier in columns_.get()) { 196 for (NSString* identifier in columns_.get()) {
193 int column_id = [[columns_ objectForKey:identifier] intValue]; 197 int column_id = [[columns_ objectForKey:identifier] intValue];
194 std::wstring text = model_->GetText(row, column_id); 198 std::wstring text = model_->GetText(row, column_id);
195 [dict setObject:base::SysWideToNSString(text) forKey:identifier]; 199 [dict setObject:base::SysWideToNSString(text) forKey:identifier];
196 } 200 }
197 return dict; 201 return dict;
198 } 202 }
199 203
200 // Overridden from NSArrayController ----------------------------------------- 204 #pragma mark Overridden from NSArrayController
201 205
202 - (BOOL)canRemove { 206 - (BOOL)canRemove {
203 if (!model_) 207 if (!model_)
204 return NO; 208 return NO;
205 RemoveRowsTableModel::Rows rows; 209 RemoveRowsTableModel::Rows rows;
206 [self setModelRows:&rows fromControllerRows:[self selectionIndexes]]; 210 [self setModelRows:&rows fromControllerRows:[self selectionIndexes]];
207 return model_->CanRemoveRows(rows); 211 return model_->CanRemoveRows(rows);
208 } 212 }
209 213
210 - (IBAction)remove:(id)sender { 214 - (IBAction)remove:(id)sender {
211 RemoveRowsTableModel::Rows rows; 215 RemoveRowsTableModel::Rows rows;
212 [self setModelRows:&rows fromControllerRows:[self selectionIndexes]]; 216 [self setModelRows:&rows fromControllerRows:[self selectionIndexes]];
213 model_->RemoveRows(rows); 217 model_->RemoveRows(rows);
214 } 218 }
215 219
216 // Table View Delegate -------------------------------------------------------- 220 #pragma mark NSTableView delegate methods
217 221
218 - (BOOL)tableView:(NSTableView*)tv isGroupRow:(NSInteger)row { 222 - (BOOL)tableView:(NSTableView*)tableView isGroupRow:(NSInteger)row {
219 NSDictionary* values = [[self arrangedObjects] objectAtIndex:row]; 223 NSDictionary* values = [[self arrangedObjects] objectAtIndex:row];
220 return [[values objectForKey:kIsGroupRow] boolValue]; 224 return [[values objectForKey:kIsGroupRow] boolValue];
221 } 225 }
222 226
223 - (NSIndexSet*)tableView:(NSTableView*)tableView 227 - (NSIndexSet*)tableView:(NSTableView*)tableView
224 selectionIndexesForProposedSelection:(NSIndexSet*)proposedIndexes { 228 selectionIndexesForProposedSelection:(NSIndexSet*)proposedIndexes {
225 NSMutableIndexSet* indexes = [proposedIndexes mutableCopy]; 229 NSMutableIndexSet* indexes = [proposedIndexes mutableCopy];
226 for (NSUInteger i = [proposedIndexes firstIndex]; 230 for (NSUInteger i = [proposedIndexes firstIndex];
227 i != NSNotFound; 231 i != NSNotFound;
228 i = [proposedIndexes indexGreaterThanIndex:i]) { 232 i = [proposedIndexes indexGreaterThanIndex:i]) {
229 if ([self tableView:tableView isGroupRow:i]) { 233 if ([self tableView:tableView isGroupRow:i]) {
230 [indexes removeIndex:i]; 234 [indexes removeIndex:i];
231 NSUInteger row = i + 1; 235 NSUInteger row = i + 1;
232 while (row < [[self arrangedObjects] count] && 236 while (row < [[self arrangedObjects] count] &&
233 ![self tableView:tableView isGroupRow:row]) 237 ![self tableView:tableView isGroupRow:row])
234 [indexes addIndex:row++]; 238 [indexes addIndex:row++];
235 } 239 }
236 } 240 }
237 return indexes; 241 return indexes;
238 } 242 }
239 243
240 // Actions -------------------------------------------------------------------- 244 #pragma mark Actions
241 245
242 - (IBAction)removeAll:(id)sender { 246 - (IBAction)removeAll:(id)sender {
243 model_->RemoveAll(); 247 model_->RemoveAll();
244 } 248 }
245 249
246 @end 250 @end
251
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698