PlaceholderView.js 2.22 KB
/*
 *
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2014 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */

define('ux/views/PlaceholderView', [
    'underscore',
    'jquery',
    'util/Util',
    'views/BaseView'
], function(_, $, Util, BaseView) {
    'use strict';

    var DEFAULT_OPTIONS = {
        width: 0,
        height: 0
    };

    var PlaceholderView = BaseView.extend(/** @lends PlaceholderView.prototype */{

        className: 'screensAsset-Placeholder',

        /**
         * @classdesc View that renders an asset placeholder
         * @desc Creates a new asset placeholder view
         *
         * @class PlaceholderView
         * @extends BaseView
         *
         * @param {Object} [options] An object of configurable options.
         */
        constructor: function(options) {
            this._initOptions(options, DEFAULT_OPTIONS);
            PlaceholderView.__super__.constructor.apply(this, arguments);
        },

        initialize: function() {
            PlaceholderView.__super__.initialize.apply(this, arguments);

            this._size = [this.w = this.options.width, this.h = this.options.height];
        },

        getSize: function() {
            return this._size;
        },

        setBounds: function(x, y, w, h, duration) {
            if (this.x !== x || this.y !== y || this.w !== w || this.h !== h) {
                this.$el.transition({
                    x: this.x = x,
                    y: this.y = y,
                    width: this.w = this._size[0] = w,
                    height: this.h = this._size[1] = h
                }, duration);
                return true;
            }
            return false;
        }

    });

    // return module exports
    return PlaceholderView;
});