/**
 * Created by aghassaei on 8/28/15.
 */



define(['jquery', 'underscore', 'menuParent', 'plist', 'serialComm', 'commPlist'],
    function($, _, MenuParentView, plist, serialComm, commPlist){


    return MenuParentView.extend({

        parentEvents: {
            "change #sendSerialMessage":                        "_sendMessage"
        },


        _initialize: function(){

            _.extend(this.events, this.parentEvents);

            this.listenTo(serialComm, "change", this.render);
            this.listenTo(serialComm, "change:lastMessageReceived", this._updateIncomingMessage);

            this.inTimeout = false;
            if (this.__initialize) this.__initialize();
        },

        getPropertyOwner: function($target){
            if ($target.hasClass("serialComm")) return serialComm;
            return null;
        },

        _sendMessage: function(e){
            e.preventDefault();
            var message = $("#sendSerialMessage").val();
            $("#sendSerialMessage").val("");
            if (message == "") return;
            serialComm.send(message);
        },

        _updateIncomingMessage: function(){
            var message = serialComm.get("lastMessageReceived");
            var $message = $("#incomingSerialMessage");
            $message.html(message);
            $message.css("background", "#ffff99");
            $message.css('display', 'inline-block');
            if (!this.inTimeout) {
                this.inTimeout = true;
                var self = this;
                setTimeout(function(){
                    $message.css("background", "white");
                    self.inTimeout = false;
                }, 100);
            }
        }

    });
});