         # click's mousedown.  Ugh.
         setTimeout((=> @_hasFocus(true)), 500)
 
+      @_setupSwipeEvents($granuleList)
       map.focusDataset(@dataset)
-
-      @focused = ko.observable(null)
-      @stickied = ko.observable(null)
-      @loadingBrowse = ko.observable(false)
-
-      @serialized = ko.computed(read: @_readSerialized, write: @_writeSerialized, owner: this, deferEvaluation: true)
-
-      @_pendingSticky = ko.observable(null)
-      @_setStickyComputed = ko.computed(read: @_setSticky, owner: this)
-
-      @_hasSelected = ko.observable(false)
-      @selected = ko.observable(null)
-
-      @fixOverlayHeight = ko.computed =>
-        $('.master-overlay').masterOverlay('contentHeightChanged') if @selected()?.detailsLoaded?()
 
     dispose: ->
       map = $('#map').data('map')

      @dataset.dispose()
      @_setStickyComputed.dispose()
      @stickied(null)

    scrolled: (data, event) =>
      elem = event.target

      @dataset.visible(true)

      @granules = @dataset.granulesModel

      @_hasFocus = ko.observable(false)
      @focused = ko.observable(null)
      @stickied = ko.observable(null)
      @loadingBrowse = ko.observable(false)

      @serialized = ko.computed(read: @_readSerialized, write: @_writeSerialized, owner: this, deferEvaluation: true)

      @_pendingSticky = ko.observable(null)
      @_setStickyComputed = ko.computed(read: @_setSticky, owner: this)

      @_hasSelected = ko.observable(false)
      @selected = ko.observable(null)

      @fixOverlayHeight = ko.computed =>
        $('.master-overlay').masterOverlay('contentHeightChanged') if @selected()?.detailsLoaded?()

      @_constructWithDom()

    _constructWithDom: =>
      $map = $('#map')
      map = $map.data('map')

      # Fix timing issue with construction where
      # this list can be created before the map
      # generally hosing the workspace
      unless map?
        setTimeout(@_constructWithDom, 0)

      @_map = map.map
      @_map.on 'edsc.focusgranule', @_onFocusGranule
      @_map.on 'edsc.stickygranule', @_onStickyGranule
      @_map.on 'edsc.excludestickygranule', @_onRemoveStickyGranule

      $granuleList = $('#granule-list')
      $granuleList.on 'keydown', @_onKeyDown
      $map.on 'keydown', @_onKeyDown

      $granuleList.on 'blur', (e) =>
        @_hasFocus(false)
      $granuleList.on 'focus.panel-list-item', (e) =>
