5 lines
2.2 KiB
ActionScript
Executable File
5 lines
2.2 KiB
ActionScript
Executable File
/*
|
|
Copyright (c) 2009 Yahoo! Inc. All rights reserved.
|
|
The copyrights embodied in the content of this file are licensed under the BSD (revised) open source license
|
|
*/
|
|
package com.yahoo.astra.containers.formClasses {
|
|
import com.yahoo.astra.containers.formClasses.IForm;
|
|
|
|
/**
|
|
* Event obsever class for form classes.
|
|
*/
|
|
public class FormEventObserver implements IFormEventObserver {
|
|
|
|
//--------------------------------------
|
|
// Constructor
|
|
//--------------------------------------
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
*/
|
|
public function FormEventObserver() : void {
|
|
observers = [];
|
|
}
|
|
|
|
//--------------------------------------
|
|
// Properties
|
|
//--------------------------------------
|
|
/**
|
|
* @private
|
|
*/
|
|
private var observers : Array;
|
|
|
|
//--------------------------------------
|
|
// internal Methods
|
|
//--------------------------------------
|
|
/**
|
|
* Adds formItems to be subscribed.
|
|
* Returns <code>IFormEventObserver</code> to force IForm instance to subscribe this observer class.
|
|
*
|
|
* @param observerItem Iform object to be subscribed events.
|
|
* @return IFormEventObserver
|
|
*
|
|
*/
|
|
public function subscribeObserver(observerItem : IForm) : IFormEventObserver {
|
|
var duplicate : Boolean = false;
|
|
for (var i : uint = 0;i < observers.length; i++) {
|
|
if (observers[i] == observerItem) {
|
|
duplicate = true;
|
|
}
|
|
}
|
|
if (!duplicate) {
|
|
observers.push(observerItem);
|
|
}
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Removes <code>Iform</code> from subscription.
|
|
*
|
|
* @param observerItem Iform instance to be unsubscribed.
|
|
*/
|
|
public function unsubscribeObserver(observerItem : IForm) : void {
|
|
for (var i : uint = 0;i < observers.length; i++) {
|
|
if (observers[i] == observerItem) {
|
|
observers.splice(i, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Updates events every <code>IForm</code> in subscription.
|
|
*
|
|
* @param target String <code>FormLayoutEvent</code> type and its value.
|
|
* @param value Object contains value associated <code>FormLayoutEvent</code>
|
|
*
|
|
*/
|
|
public function setUpdate(target : String, value : Object) : void {
|
|
for (var i:Object in this.observers) {
|
|
observers[i].update(target, value);
|
|
}
|
|
}
|
|
}
|
|
} |