code: function(force) {
          if (!force) {
              //clear tile's contents and mark as not drawn
              this.clear();
          }
          var draw = this.shouldDraw();
          if (draw && !force && this.events.triggerEvent("beforedraw") === false) {
              draw = null;
          }
          return draw;
      }
docs: Method: draw
  Clear whatever is currently in the tile, then return whether or not
  it should actually be re-drawn. This is an example implementation
  that can be overridden by subclasses. The minimum thing to do here
  is to call <clear> and return the result from <shouldDraw>.
  
  Parameters:
  force - {Boolean} If true, the tile will not be cleared and no beforedraw
  event will be fired. This is used for drawing tiles asynchronously
  after drawing has been cancelled by returning false from a beforedraw
  listener.
  
  Returns:
  {Boolean} Whether or not the tile should actually be drawn. Returns null
  if a beforedraw listener returned false.