text: export default Ember.Object.extend({
  	__processName:null,
  	__obj:null,
  	promisCount:0,
  	App:window.App,
  	startLoadProcess:function(listenToObject){
  		if(this.get('__obj')!==null){  // disable previous process
  			this.get('__obj').set(this.get('__processName')+'Processing',false);
  		}
  		this.set('__processName','load');
  		this.set('__obj',Ember.controllerFor(App.__container__,'application'));
  		this.get('__obj').set('loadProcessing',true);
  		this.listenTo(listenToObject);
  	},
  	startSaveProcess:function(listenToObject){
  		if(this.get('__obj')!==null){  // disable previous process
  			this.get('__obj').set(this.get('__processName')+'Processing',false);
  		}
  		this.set('__processName','save');
  		this.set('__obj',Ember.controllerFor(App.__container__,'application'));
  		this.get('__obj').set(this.get('__processName')+'Processing',true);
  		this.listenTo(listenToObject);
  	},
  	startProcess:function(obj,name,promise){
  		if(this.get('__obj')!==null){  // disable previous process
  			this.get('__obj').set(this.get('__processName')+'Processing',false);
  		}
  		this.set('__processName',name);
  		this.set('__obj',obj);
  		this.get('__obj').set(this.get('__processName')+'Processing',true);
  		if(promise){
  			this.listenTo (promise);
  		}
  	},
  	finishProcess:function(){
  		this.decrementProperty('promisCount');
  		if(this.get('promisCount')===0){
  			this.get('__obj').set(this.get('__processName')+'Processing',false);
  			this.set('__processName',null);
  			this.set('__obj',null);
  		}
  	},
  	listenTo:function(promise){
  		if(this.get('__processName')!==null){ // start listen to promise
  			var l=this;
  			this.incrementProperty('promisCount');
  			promise.then(function(){
  				l.finishProcess();
  			});
  			if(promise.catch){
  				promise.catch(function(){
  					l.finishProcess();
  				});
  			}else{
  				if(promise.fail){
  					promise.fail(function(){
  						l.finishProcess();
  					});
  				}
  			}
  		}
  	}
  });