From dd4db720effb69ce45b4dbfd7fe17690596eb2f5 Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Tue, 23 Jun 2009 21:26:41 -0700 Subject: [PATCH] Added selection methods. Reviewed by me. --- AppKit/NEWCPTableView.j | 80 ++++++++++++++++++++++++++++++++++------- 1 file changed, 67 insertions(+), 13 deletions(-) diff --git a/AppKit/NEWCPTableView.j b/AppKit/NEWCPTableView.j index a946f2882..248054b7e 100644 --- a/AppKit/NEWCPTableView.j +++ b/AppKit/NEWCPTableView.j @@ -79,6 +79,9 @@ CPTableViewSelectionHighlightStyleSourceList = 1; unsigned _currentHighlightedTableColumn; unsigned _numberOfRows; + + CPIndexSet _selectedColumnIndexes; + CPIndexSet _selectedRowIndexes; } - (id)initWithFrame:(CGRect)aFrame @@ -113,6 +116,9 @@ CPTableViewSelectionHighlightStyleSourceList = 1; _cachedDataViews = { }; _intercellSpacing = _CGSizeMake(0.0, 0.0); _rowHeight = 24.0; + + _selectedColumnIndexes = [CPIndexSet indexSet]; + _selectedRowIndexes = [CPIndexSet indexSet]; } return self; @@ -399,27 +405,75 @@ _cachedDataViews = { }; { var index = [self columnWithIdentifier:anIdentifier]; - if (index < 0) + if (index === CPNotFound) return nil; return _tableColumns[index]; } //Selecting Columns and Rows +- (void)selectColumnIndexes:(CPIndexSet)columns byExtendingSelection:(BOOL)shouldExtendSelection +{ + if (shouldExtendSelection) + [_selectedColumnIndexes addIndexes:columns]; + else + _selectedColumnIndexes = [columns copy]; +} + +- (void)selectRowIndexes:(CPIndexSet)rows byExtendingSelection:(BOOL)shouldExtendSelection +{ + if (shouldExtendSelection) + [_selectedRowIndexes addIndexes:rows]; + else + _selectedRowIndexes = [rows copy]; +} + +- (CPIndexSet)selectedColumnIndexes +{ + return _selectedColumnIndexes; +} + +- (void)selectedRowIndexes +{ + return _selectedRowIndexes; +} + +- (void)deselectColumn:(CPInteger)aColumn +{ + [_selectedColumnIndexes removeIndex:aColumn]; +} + +- (void)deselectRow:(CPInteger)aRow +{ + [_selectedRowIndexes removeIndex:aRow]; +} + +- (CPInteger)numberOfSelectedColumns +{ + return [_selectedColumnIndexes count]; +} + +- (CPInteger)numberOfSelectedRows +{ + return [_selectedRowIndexes count]; +} + /* - * - selectColumnIndexes:byExtendingSelection: - * - selectRowIndexes:byExtendingSelection: - * - selectedColumnIndexes - * - selectedRowIndexes - * - deselectColumn: - * - deselectRow: - * - numberOfSelectedColumns - * - numberOfSelectedRows - * - selectedColumn +- (CPInteger)selectedColumn * - selectedRow - * - isColumnSelected: - * - isRowSelected: - * - selectAll: +*/ + +- (BOOL)isColumnSelected:(CPInteger)aColumn +{ + return [_selectedColumnIndexes containsIndex:aColumn]; +} + +- (BOOL)isRowSelected:(CPInteger)aRow +{ + return [_selectedRowIndexes containsIndex:aRow]; +} +/* +- (void)selectAll: * - deselectAll: * - allowsTypeSelect * - setAllowsTypeSelect: