|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object sk.baka.ambient.activity.main.AbstractController sk.baka.ambient.activity.main.AbstractListController
public abstract class AbstractListController
The items in this controller are rendered as a list and can be selected.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class sk.baka.ambient.activity.main.AbstractController |
---|
AbstractController.Listener |
Field Summary | |
---|---|
protected int |
highlightColor
The color of highlighted items in the list. |
GesturesListView |
listView
The list instance. |
Fields inherited from class sk.baka.ambient.activity.main.AbstractController |
---|
app, cycle, listener, mainActivity, mainView |
Constructor Summary | |
---|---|
protected |
AbstractListController(int mainViewId,
int listViewId,
Activity mainActivity)
Creates new controller. |
Method Summary | |
---|---|
boolean |
canComputeItems()
Checks if the model currently supports computing tracks. |
boolean |
canHighlight()
Checks if we can start highlight mode now. |
List<TrackMetadataBean> |
computeTracks(Interval highlight)
Retrieve a list of tracks from the selection. |
void |
destroy()
The controller is about to be destroyed. |
void |
dropItems(List<TrackMetadataBean> tracks,
int x,
int y,
int index)
The drag'n'drop operation is finished. |
Object |
getClipboard()
Retrieves current clipboard value. |
String |
getHint(Interval highlight)
Returns a very short and simple string representation of the selected contents. |
void |
highlightChanged(Interval highlight)
Selection was changed. |
boolean |
isComputeTracksLong(Interval interval)
Checks if the IGestureListViewListener.computeTracks(Interval) method will be a long
operation. |
boolean |
isComputeTracksOnlineOp(Interval interval)
Checks if the IGestureListViewListener.computeTracks(Interval) method will involve
polling of some data from the Internet. |
boolean |
isReadOnly()
Checks if the list view is currently read-only. |
Interval |
moveItems(Interval highlight,
int delta)
Move selected items up or down. |
Interval |
moveItemsByOne(Interval highlight,
boolean down)
Move selected items up or down. |
protected void |
performZoom(boolean zoom)
Zooms, or un-zooms the controller. |
protected abstract void |
recomputeListItems()
Recomputes the model . |
void |
removeItems(Interval remove)
Remove these items from the list. |
void |
setClipboard(TrackListClipboardObject clipboard)
Sets the new clipboard. |
void |
update(Interval target)
Overrides default functionality - the recomputeListItems() is
invoked and the list view contents are updated. |
Methods inherited from class sk.baka.ambient.activity.main.AbstractController |
---|
equals, flipVisibility, hashCode, hide, initButtonBar, initButtonBar, initButtonBar, isDestroyed, isVisible, isZoomed, onAction, setVisibility, show, visibilityChanged, zoom |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface sk.baka.ambient.views.gesturelist.IGestureListViewListener |
---|
itemActivated, update |
Field Detail |
---|
public GesturesListView listView
protected final int highlightColor
Constructor Detail |
---|
protected AbstractListController(int mainViewId, int listViewId, Activity mainActivity)
mainViewId
- the view whose visibility is controlled.listViewId
- the id of the GesturesListView
mainActivity
- the main activity instance.Method Detail |
---|
protected abstract void recomputeListItems()
model
. You don't have
to call the ModelHolder.notifyModified()
- it is called
automatically after the method finishes.
public void highlightChanged(Interval highlight)
IGestureListViewListener
highlightChanged
in interface IGestureListViewListener
highlight
- highlighted itemspublic void update(Interval target)
recomputeListItems()
is
invoked and the list view contents are updated.
update
in class AbstractController
target
- reset selection to this interval.public boolean canComputeItems()
IGestureListViewListener
canComputeItems
in interface IGestureListViewListener
true
if the model can compute tracks,
false
otherwise.public boolean isReadOnly()
IGestureListViewListener
isReadOnly
in interface IGestureListViewListener
true
if the view cannot be modified,
false
otherwise.public List<TrackMetadataBean> computeTracks(Interval highlight)
IGestureListViewListener
Retrieve a list of tracks from the selection. This operation may not be
invoked from the handler's thread (depending on the result of the
IGestureListViewListener.isComputeTracksLong(Interval)
method). The method implementation
should thus periodically check for the interrupted
flag. When interrupted, it should return an empty list or
null
ASAP. It may do so by throwing an exception
If the method is invoked in a non-handler thread the callee wraps the result in a thread-safe list.
The method may throw RuntimeException
- it will be caught and
displayed unless the thread is interrupted.
This method is only invoked when IGestureListViewListener.canComputeItems()
returns
true
.
computeTracks
in interface IGestureListViewListener
highlight
- the selection
null
.public void dropItems(List<TrackMetadataBean> tracks, int x, int y, int index)
IGestureListViewListener
dropItems
in interface IGestureListViewListener
tracks
- the tracksx
- the drop point x axis relative to the item upper-left corner.y
- the drop point y axis relative to the item upper-left corner.index
- the index of the item where the files were dropped.public Interval moveItems(Interval highlight, int delta)
IGestureListViewListener
Move selected items up or down. The listener must update the items and return the new highlight. This operation is always considered as a short-running and thus always executed directly in handler's event thread.
The list view will be redrawn automatically when the method returns.
This operation is invoked only when IGestureListViewListener.isReadOnly()
returns
false
.
moveItems
in interface IGestureListViewListener
highlight
- move these itemsdelta
- drop the items before item with this index.
public Interval moveItemsByOne(Interval highlight, boolean down)
IGestureListViewListener
Move selected items up or down. The listener must update the items and return the new highlight. This operation is always considered as a short-running and thus always executed directly in handler's event thread.
The list view will be redrawn automatically when the method returns.
This operation is invoked only when IGestureListViewListener.isReadOnly()
returns
false
.
moveItemsByOne
in interface IGestureListViewListener
highlight
- move these itemsdown
- down if true
then move the highlighted interval
down, otherwise move it up.
public String getHint(Interval highlight)
IGestureListViewListener
Returns a very short and simple string representation of the selected contents.
This method is only invoked when IGestureListViewListener.canComputeItems()
returns
true
.
getHint
in interface IGestureListViewListener
highlight
- the highlighted items.
null
if no hint should be shown.public boolean isComputeTracksLong(Interval interval)
IGestureListViewListener
Checks if the IGestureListViewListener.computeTracks(Interval)
method will be a long
operation. If yes, then the operation will be run in new thread. If not,
the operation will be run in handler event thread.
This method is only invoked when IGestureListViewListener.canComputeItems()
returns
true
.
isComputeTracksLong
in interface IGestureListViewListener
interval
- the selection
true
if long operation, false
otherwise.public boolean isComputeTracksOnlineOp(Interval interval)
IGestureListViewListener
Checks if the IGestureListViewListener.computeTracks(Interval)
method will involve
polling of some data from the Internet.
This method is only invoked when IGestureListViewListener.canComputeItems()
returns
true
.
isComputeTracksOnlineOp
in interface IGestureListViewListener
interval
- the selection
true
if some Internet resources will be polled,
false
otherwise.public void removeItems(Interval remove)
IGestureListViewListener
Remove these items from the list. The list view sets the highlight automatically to zero interval.
This operation is invoked even when IGestureListViewListener.isReadOnly()
returns
false
as some use cases activates a "Go Back" activity
instead of deleting items.
removeItems
in interface IGestureListViewListener
remove
- remove these items. The interval is not null
however it may be empty.public boolean canHighlight()
IGestureListViewListener
canHighlight
in interface IGestureListViewListener
true
if highlight mode can be started,
false
otherwise.public void setClipboard(TrackListClipboardObject clipboard)
IGestureListViewListener
setClipboard
in interface IGestureListViewListener
clipboard
- the clipboard to set.public Object getClipboard()
IGestureListViewListener
getClipboard
in interface IGestureListViewListener
public void destroy()
AbstractController
super()
if you override
this method!
destroy
in class AbstractController
protected void performZoom(boolean zoom)
AbstractController
performZoom
in class AbstractController
zoom
- true
zoom the controller in, false
zoom the controller out.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |