Adapter-Async
view release on metacpan or search on metacpan
lib/Adapter/Async/OrderedList.pod view on Meta::CPAN
=head2 Modification
=over 4
=item * clear - remove all data
=item * splice - modify by adding/removing items at a given point
=item * modify - changes a single entry
=back
Helper methods provide the following:
=over 4
=item * insert - splice $idx, @data, 0
=item * append - splice $idx + 1, @data, 0
=back
=head2 Events
All events are shared over a common bus for each data source, in the usual fashion - adapters and views can subscribe to the ones they're interested in, and publish events at any time.
The adapter raises these:
=over 4
=item * item_changed - the given item has been modified. by default only applies to elements that were marked as visible.
=item * splice - changes to the array which remove or add elements
=item * move - an existing element moves to a new position (some adapters may not be able to differentiate between this and splice: if in doubt, use splice instead, don't report as a move unless it's guaranteed to be existing items)
index, length, offset (+/-)
=back
The view raises these:
=over 4
=item * visible - indicates visibility of one or more items. change events will start being sent for these items.
visible => [1,2,3,4,5,6]
Filters may result in a list with gaps:
visible => [1,3,4,8,9,10]
Note that "visible" means "the user is able to see this data", so they'd be a single page of data rather than the entire set when no filters are applied. Visibility changes often - scrolling will trigger a visible/hidden pair for example.
Also note that ->get may be called on any element, regardless of visibility - prefetching is one common example here.
=item * hidden - no longer visible.
hidden => [1,2,4]
=item * selected - this item is now part of an active selection. could be used to block deletes.
selected => [1,4,5,6]
=item * highlight - mouse over, cursor, etc.
highlight => 1
Some views won't raise this - if touch control is involved, for example
=item * activate - some action has been performed.
activate => [1]
activate => [1,2,5,6,7,8]
Multi-activate will typically happen when items have been selected rather than just highlighted.
The adapter itself doesn't do much with this.
=back
=head1 METHODS
=head2 insert
Inserts data before the given position.
$adapter->insert(3, [...])
=head2 append
Appends data after the given position.
$adapter->append(3, [...])
=head2 push
Appends data to the end of the list.
=head2 unshift
Inserts data at the start of the list.
=head2 pop
Removes the last element from the list, will resolve with the value.
=head2 shift
Removes the first element from the list, will resolve with the value.
=head2 all
Returns all the items. Shortcut for calling
L</count> then L</get>.
=head1 INHERITED METHODS
=over 4
=item L<Adapter::Async>
L<bus|Adapter::Async/bus>, L<new|Adapter::Async/new>
=back
=head1 AUTHOR
Tom Molesworth <TEAM@cpan.org>
=head1 LICENSE
Copyright Tom Molesworth 2013-2015. Licensed under the same terms as Perl itself.
( run in 1.611 second using v1.01-cache-2.11-cpan-39bf76dae61 )