code: function ImageView(file, $container) {
          this.file = file;
          this.$el = $(Mustache.render(ImageViewTemplate, {fullPath: file.encodedPath || 'file:///' + FileUtils.encodeFilePath(file.fullPath),
                                                           now: new Date().valueOf()}));
  
          $container.append(this.$el);
  
          this._naturalWidth = 0;
          this._naturalHeight = 0;
          this._scale = 100;           // 100%
          this._scaleDivInfo = null;   // coordinates of hidden scale sticker
  
          this.relPath = ProjectManager.makeProjectRelativeIfPossible(this.file.fullPath);
  
          this.$imagePath = this.$el.find(".image-path");
          this.$imagePreview = this.$el.find(".image-preview");
          this.$imageData = this.$el.find(".image-data");
  
          this.$image = this.$el.find(".image");
          this.$imageTip = this.$el.find(".image-tip");
          this.$imageGuides = this.$el.find(".image-guide");
          this.$imageScale = this.$el.find(".image-scale");
          this.$x_value = this.$el.find(".x-value");
          this.$y_value = this.$el.find(".y-value");
          this.$horzGuide = this.$el.find(".horz-guide");
          this.$vertGuide = this.$el.find(".vert-guide");
  
          this.$imagePath.text(this.relPath).attr("title", this.relPath);
          this.$imagePreview.on("load", _.bind(this._onImageLoaded, this));
  
          _viewers[file.fullPath] = this;
      }
docs: ImageView objects are constructed when an image is opened
  @see {@link Pane} for more information about where ImageViews are rendered
  
  @constructor
  @param {!File} file - The image file object to render
  @param {!jQuery} container - The container to render the image view in