sk.baka.ambient.activity.main
Class FileBrowserController

java.lang.Object
  extended by sk.baka.ambient.activity.main.AbstractController
      extended by sk.baka.ambient.activity.main.AbstractListController
          extended by sk.baka.ambient.activity.main.FileBrowserController
All Implemented Interfaces:
IGestureListViewListener

public final class FileBrowserController
extends AbstractListController

The file browser.

Author:
Martin Vysny

Nested Class Summary
 
Nested classes/interfaces inherited from class sk.baka.ambient.activity.main.AbstractController
AbstractController.Listener
 
Field Summary
 
Fields inherited from class sk.baka.ambient.activity.main.AbstractListController
highlightColor, listView
 
Fields inherited from class sk.baka.ambient.activity.main.AbstractController
app, cycle, listener, mainActivity, mainView
 
Constructor Summary
FileBrowserController(MainActivity mainActivity, GesturesListView playlistView)
           
 
Method Summary
 boolean canComputeItems()
          Checks if the model currently supports computing tracks.
 List<TrackMetadataBean> computeTracks(Interval highlight)
           Retrieve a list of tracks from the selection.
 void destroy()
          The controller is about to be destroyed.
 String getHint(Interval highlight)
           Returns a very short and simple string representation of the selected contents.
 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.
 void itemActivated(int index, Object model)
          The item was activated, either by clicking on it or using a keyboard.
protected  void onAction(ActionsEnum action)
          Called when an action button is pressed.
protected  void performZoom(boolean zoom)
          Zooms, or un-zooms the controller.
protected  void recomputeListItems()
          Recomputes the model.
 void removeItems(Interval remove)
           Remove these items from the list.
 void update(GesturesListView listView, View itemView, int index, Object model)
          An item view is being drawn (or re-drawn) on screen.
 
Methods inherited from class sk.baka.ambient.activity.main.AbstractListController
canHighlight, dropItems, getClipboard, highlightChanged, moveItems, moveItemsByOne, setClipboard, update
 
Methods inherited from class sk.baka.ambient.activity.main.AbstractController
equals, flipVisibility, hashCode, hide, initButtonBar, initButtonBar, initButtonBar, isDestroyed, isVisible, isZoomed, setVisibility, show, visibilityChanged, zoom
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FileBrowserController

public FileBrowserController(MainActivity mainActivity,
                             GesturesListView playlistView)
Parameters:
mainActivity -
playlistView - the playlist view.
Method Detail

destroy

public void destroy()
Description copied from class: AbstractController
The controller is about to be destroyed. No invocations are performed after this call. The controller should release its resources, stop its activities etc. Make sure that you call super() if you override this method!

Overrides:
destroy in class AbstractListController

onAction

protected void onAction(ActionsEnum action)
Description copied from class: AbstractController
Called when an action button is pressed. By default invokes main activity. Subclasses can override.

Overrides:
onAction in class AbstractController
Parameters:
action - the action to take

itemActivated

public void itemActivated(int index,
                          Object model)
Description copied from interface: IGestureListViewListener
The item was activated, either by clicking on it or using a keyboard.

Parameters:
index - the index of the item.
model - the model for the item.

removeItems

public void removeItems(Interval remove)
Description copied from interface: 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.

Specified by:
removeItems in interface IGestureListViewListener
Overrides:
removeItems in class AbstractListController
Parameters:
remove - remove these items. The interval is not null however it may be empty.

recomputeListItems

protected void recomputeListItems()
Description copied from class: AbstractListController
Recomputes the model. You don't have to call the ModelHolder.notifyModified() - it is called automatically after the method finishes.

Specified by:
recomputeListItems in class AbstractListController

update

public void update(GesturesListView listView,
                   View itemView,
                   int index,
                   Object model)
Description copied from interface: IGestureListViewListener
An item view is being drawn (or re-drawn) on screen. The implementation should correctly set the view contents, based on the model object. The model object is taken from the GesturesListView.getModel() list. The only exception is the EOP special item. For more information please read here.

Parameters:
listView - the listview containing the view
itemView - the view representing a single item
index - the index in the GesturesListView.getModel() list. May point outside of the model list only when drawing an EOP item.
model - The model object, taken from the GesturesListView.getModel() list. This value may optionally be the MutableListAdapter.EOP_MODEL_MARKER object - in this case the special EndOfPlaylist item must be drawn.

computeTracks

public List<TrackMetadataBean> computeTracks(Interval highlight)
Description copied from interface: 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.

Specified by:
computeTracks in interface IGestureListViewListener
Overrides:
computeTracks in class AbstractListController
Parameters:
highlight - the selection
Returns:
a list of tracks, must not be null.

isComputeTracksLong

public boolean isComputeTracksLong(Interval interval)
Description copied from interface: 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.

Specified by:
isComputeTracksLong in interface IGestureListViewListener
Overrides:
isComputeTracksLong in class AbstractListController
Parameters:
interval - the selection
Returns:
true if long operation, false otherwise.

isComputeTracksOnlineOp

public boolean isComputeTracksOnlineOp(Interval interval)
Description copied from interface: 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.

Specified by:
isComputeTracksOnlineOp in interface IGestureListViewListener
Overrides:
isComputeTracksOnlineOp in class AbstractListController
Parameters:
interval - the selection
Returns:
true if some Internet resources will be polled, false otherwise.

getHint

public String getHint(Interval highlight)
Description copied from interface: IGestureListViewListener

Returns a very short and simple string representation of the selected contents.

This method is only invoked when IGestureListViewListener.canComputeItems() returns true.

Specified by:
getHint in interface IGestureListViewListener
Overrides:
getHint in class AbstractListController
Parameters:
highlight - the highlighted items.
Returns:
short description of selected contents. May be null if no hint should be shown.

isReadOnly

public boolean isReadOnly()
Description copied from interface: IGestureListViewListener
Checks if the list view is currently read-only.

Specified by:
isReadOnly in interface IGestureListViewListener
Overrides:
isReadOnly in class AbstractListController
Returns:
true if the view cannot be modified, false otherwise.

canComputeItems

public boolean canComputeItems()
Description copied from interface: IGestureListViewListener
Checks if the model currently supports computing tracks. This also affects the drag'n'drop capability - we cannot drag'n'drop if a track list cannot be computed.

Specified by:
canComputeItems in interface IGestureListViewListener
Overrides:
canComputeItems in class AbstractListController
Returns:
true if the model can compute tracks, false otherwise.

performZoom

protected void performZoom(boolean zoom)
Description copied from class: AbstractController
Zooms, or un-zooms the controller.

Overrides:
performZoom in class AbstractListController
Parameters:
zoom - true zoom the controller in, false zoom the controller out.


Copyright © 2007-2008. All Rights Reserved.