Commit Graph

50 Commits

Author SHA1 Message Date
Blake Watters
8647fa5f42 Fix issue where grouping objects by section in RKTableController and loading an empty collection would fail to refresh table view. 2012-05-25 13:46:18 -04:00
Blake Watters
1dc765c774 Fix static analyzer warning 2012-05-24 19:06:04 -04:00
Blake Watters
59c449c2e2 Cleanups to and test coverage expansion of RKTableController API's. refs #765 2012-05-24 12:53:51 -04:00
Blake Watters
992bfb96cc Reworked table controller state into a bit mask to coalesce state change into a single observation. fixes #753
* Added RKLogIntegerAsBinary() helper for logging bit masks
* Implemented RKTableControllerDidLoadObjectsNotification for static and fetched results table controllers
* Cleaned up state definitions within table controller
* Documentation cleanups
2012-05-23 17:25:57 -04:00
Blake Watters
86ac038957 Cancel current object loader when loading a table view 2012-05-21 18:11:21 -04:00
Blake Watters
016f13dad0 Convert all tabs to four spaces. refs #743 2012-05-17 18:10:59 -04:00
Blake Watters
fcb973056b Cleanup trailing whitespace. refs #743 2012-05-17 18:00:16 -04:00
Blake Watters
4ac6a76485 Fix invalid table controller delegate invocation. fixes #683, closes #659
Rename didFinishFinalLoad to didFinalizeLoad for clarity.
2012-04-17 22:54:10 -04:00
Aaron Crespo
22225cf8a0 Fixed Static analysis warnings. 2012-04-11 22:44:58 -04:00
Blake Watters
de52c1ad52 Do not removeAllSections before loading table items into a section 2012-04-10 19:22:28 -04:00
Blake Watters
386c7aea6d Added convenience method numberOfRowsInSectionAtIndex: to RKTableController for easily counting rows in a section 2012-04-10 14:30:38 -04:00
Blake Watters
b282e3a813 Added support for grouping objects into sections within RKTableController. closes #658 2012-04-10 11:34:22 -04:00
Blake Watters
aa7778bbfd Guard notification configurations for nil in RKAbstractTableController 2012-04-09 17:38:49 -04:00
Blake Watters
5abf5569b6 Remove import of RKTableView.h 2012-04-04 13:47:54 -04:00
Blake Watters
cfd473e547 Added support for configuring class -> table cell mappings using objectClassName instead of Class object 2012-04-04 10:39:36 -04:00
Blake Watters
457a6126cf Refresh copyright notices for all source files 2012-04-04 09:08:54 -04:00
Blake Watters
f4f3f44e17 Remove UDTableView. fixes #591 2012-03-29 20:04:12 -04:00
Jawwad Ahmad
3f29ccd42b Added a new cellMappingForReuseIdentifier convenience method to RKTableViewCellMapping 2012-03-15 12:38:06 -04:00
Blake Watters
57183b364f Fix for warning emitted due to elimination of findOrCreateInstanceOfEntity:. Search Word functionality restored. closes #584
* Updates to the Core Data layer such that NSManagedObjectContexts now have a reference to the managed object store
they belong to.
* NSManagedObject instances can now return the managed object store they belong to.
* Relaxed the coupling to the sharedManager present within the RKSearchableManagedObject class.
* Expanded documentation of RKSearchableManagedObject
2012-03-14 17:08:02 -04:00
Blake Watters
c3b2ef164b Add conditional compilation for the Pull to Refresh trigger 2012-03-13 09:50:05 -04:00
Blake Watters
eeecff7bd0 Added support for loading resolution independent images ([UIImage imageWithContentsOfFile:] is broken) via UIImage
category and updated NSBundle additions to leverage the support.
2012-03-09 17:48:50 -05:00
Greg Combs
28989c5440 Reworked pull-to-refresh to use gestures
Gesture recognizers clean up some of the view hierarchy related to pull-to-refresh.  This replaces EGOPullToRefresh
2012-03-09 17:48:38 -05:00
Blake Watters
53bbeca099 Clean up build issues on OS X 2012-02-25 12:07:06 -05:00
Blake Watters
c0ae954fb9 API cleanup work in progress on Table Controller 2012-02-23 23:25:31 -05:00
Jeff Arena
1cd22d5b33 First pass at replacing RKManagedObjectCache with a more flexible block approach that leverages the new resource path pattern matching approach to registering objectMappings. 2012-02-23 22:30:08 -05:00
Blake Watters
07a18a75b0 Added category introducing convenience methods for initializing table controller from the object manager 2012-02-23 20:47:58 -05:00
Blake Watters
c779462eea Eliminated block setter methods necessary due to strange library linkage dependencies in GateGuru 2012-02-23 15:29:50 -05:00
Blake Watters
e904394b6b Miscellaneous cleanups 2012-02-17 16:34:03 -05:00
Blake Watters
4d48ef4729 Fixed breakage in OS X support 2012-02-15 17:48:59 -05:00
Blake Watters
4142ffdb42 Reorganization and cleanups of Unit Tests
* Reorganized tests to accommodate split into Logic & Application.
* Eliminated 'Spec' naming in favor of 'Test' as the suite is entirely based on SenTest.
* Pulled majority of testing support classes up into the library and documented them.
* Introduced RKApplicationTests app for running the RKTableController UI tests
2012-02-10 17:32:23 -05:00
Christopher Swasey
983b7913a2 Skip handling individual change notifications if we're using a sortSelector and just reload the table afterwards 2012-02-10 16:30:58 -05:00
Blake Watters
8670b233e0 Switched retrieval of table views cells during row selection events to lookup by indexPath on the tableView
rather than through table controller plumbing
2012-02-10 16:30:58 -05:00
Blake Watters
5ae15be560 Perform row deselection before processing onSelectCell events as the table may be reloaded/changed by the event and cause a crash during deselection 2012-02-10 16:30:58 -05:00
Jeff Arena
1e43c58039 Fixes for issues identified during static analysis 2012-02-10 16:30:58 -05:00
Jeff Arena
b18479f448 Remove duplicate RKAbstractTableController API, objectAtIndexPath: in favor of the existing objectForRowAtIndexPath: method. Add empty implementation of RKTableView class. Pull in UDTableView implementation into Vendor/ and use as a base class for our new RKTableView class, enabling multiple selection support in pre-iOS 5 tableViews. 2012-02-10 16:30:57 -05:00
Jeff Arena
fdd3f4e1e5 Roll back errant fix for cell reuse issues. 2012-02-10 16:30:57 -05:00
Blake Watters
66235530d4 Handle deletion of Managed Objects enclosed in an RKForm 2012-02-10 16:30:57 -05:00
Jeff Arena
4196b66f9d Fix issue with _arraySortedFetchedObjects in cases where updates were received via the NSFetchedResultsControllerDelegate and were being then not being applied to the sorted array 2012-02-10 16:30:57 -05:00
Jeff Arena
d20f44804e Move a few methods from RKTableController to RKAbstractTableController and added their implementations in RKFetchedResultsTableController. Fixed a bug regarding cell reuse in RKFetchedResultsTableController. Added the ability to set the NSFetchRequest on the RKFetchedResultsTableController, instead of requiring that it be looked up in the RKManagedObjectCache via a provided resourcePath. 2012-02-10 16:30:57 -05:00
Greg Combs
a5da9d30e3 Exposes removeAllSections:recreateFirstSection in RKTableController.h 2012-02-10 16:30:57 -05:00
Greg Combs
a4f685694a Added a delegate method tableControllerDidFinishFinalLoad:
The method name stinks, but we need a callback in didFinishLoad, one that gets called when done loading loading from Core Data, static, or from the network.
2012-02-10 16:30:56 -05:00
Greg Combs
8a77a18465 Added setObjectMappingForClass:
Since the objectLoader isn't exposed, we needed a way to apply object mapping by class to complement mapping by key path.
2012-02-10 16:30:56 -05:00
Blake Watters
9baed401ca Revert "Added momentary/fixed state for table cell selection, useful for static main menu items."
This reverts commit 635e9820168f73c0c469666f62c3862436d44a32.
2012-02-10 16:30:56 -05:00
Jeff Arena
8ec9ac811e Remove cell param from cellMapping heightOfCellForObjectAtIndexPath block, to avoid issues with and infinite loop. Change a few form methods to comply with tableController nomenclature. Fix broken specs and issues with tableController naming conventions in UI specs. 2012-02-10 16:30:56 -05:00
Jeff Arena
1617dd3ac4 Remove mutual exclusion check between onSelectCell and onSelectCellForObjectAtIndexPath block callbacks 2012-02-10 16:30:56 -05:00
Jeff Arena
9e37304411 Fix issue with cell reuse. Fix issue with cell reuseIdentifier not behaving according to header documentation. Fixed some issues with the tableController specs. Add a cellMapping property to control automatic deselection of a tableView cell 2012-02-10 16:30:55 -05:00
Greg Combs
59d3614ee2 Added momentary/fixed state for table cell selection, useful for static main menu items. 2012-02-10 16:30:55 -05:00
Jeff Arena
d652452481 Add handling for animating out the empty item when going from an empty table to a populated table. Fixes an issue where table animation was breaking due to unbalanced insert/deletes when the emptyItem was showing before a table update. 2012-02-10 16:30:55 -05:00
Jeff Arena
61480a5b4c Add online check to determine whether or not swipe to delete should be enabled 2012-02-10 16:30:55 -05:00
Blake Watters
3d0f0ab39e Introduced the RKTableController component for iOS.
RKTableController provides a flexible, integrated system for driving iOS table views using
the RestKit object mapping engine. Local domain objects can be mapped into table cells within a
collection or presented for editing as part of a form. There are three flavors of table controllers
available:

* Static Tables: RKTableController can be used to render simple static tables that are composed of RKTableItems
presented in RKTableSections. Table items can quickly be built and added to a table without a backing model
or can have content object mapped into them for presentation.
* Network Tables: RKTableController can also render a table with the results of a network load. The typical use
case here is to have RestKit retrieve a JSON/XML payload from your remote system and then render the content into
a table.
* Core Data Tables: RKFetchedResultsTableController can efficiently drive a table view using objects pulled from a
Core Data managed object context. Typical use-cases here are for the presentation of large collections that are
pulled from a remote system, offering offline access, or speeding up a UI by using Core Data as a fast local cache.

RKTableController supports a number of bells and whistles including integrated searching/filtering and pull to refresh.
2012-02-10 16:30:54 -05:00