The uber-adapter.
I could also make this just implement each interface, but I like being able to assign the functions to their proper names. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5761 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -0,0 +1,89 @@
|
|||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
package com.threerings.presents.dobj {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* One listener that can adapt to all the standard events.
|
||||||
|
*/
|
||||||
|
public class EventAdapter
|
||||||
|
implements EventListener
|
||||||
|
{
|
||||||
|
/** May be assigned a function to receive AttributeChangedEvents. */
|
||||||
|
public var attributeChanged :Function;
|
||||||
|
|
||||||
|
/** May be assigned a function to receive EntryAddedEvents. */
|
||||||
|
public var entryAdded :Function;
|
||||||
|
|
||||||
|
/** May be assigned a function to receive EntryUpdatedEvents. */
|
||||||
|
public var entryUpdated :Function;
|
||||||
|
|
||||||
|
/** May be assigned a function to receive EntryRemovedEvents. */
|
||||||
|
public var entryRemoved :Function;
|
||||||
|
|
||||||
|
/** May be assigned a function to receive ElementUpdatedEvents. */
|
||||||
|
public var elementUpdated :Function;
|
||||||
|
|
||||||
|
/** May be assigned a function to receive MessageEvents. */
|
||||||
|
public var messageReceived :Function;
|
||||||
|
|
||||||
|
/** May be assigned a function to receive ObjectAddedEvents. */
|
||||||
|
public var objectAdded :Function;
|
||||||
|
|
||||||
|
/** May be assigned a function to receive ObjectRemovedEvents. */
|
||||||
|
public var objectRemoved :Function;
|
||||||
|
|
||||||
|
/** May be assigned a function to receive ObjectDestroyedEvents. */
|
||||||
|
public var objectDestroyed :Function;
|
||||||
|
|
||||||
|
// from EventListener
|
||||||
|
public function eventReceived (event :DEvent) :void
|
||||||
|
{
|
||||||
|
if (event is AttributeChangedEvent) {
|
||||||
|
if (attributeChanged != null) {
|
||||||
|
attributeChanged(AttributeChangedEvent(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (event is EntryAddedEvent) {
|
||||||
|
if (entryAdded != null) {
|
||||||
|
entryAdded(EntryAddedEvent(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (event is EntryUpdatedEvent) {
|
||||||
|
if (entryUpdated != null) {
|
||||||
|
entryUpdated(EntryUpdatedEvent(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (event is EntryRemovedEvent) {
|
||||||
|
if (entryRemoved != null) {
|
||||||
|
entryRemoved(EntryRemovedEvent(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (event is ElementUpdatedEvent) {
|
||||||
|
if (elementUpdated != null) {
|
||||||
|
elementUpdated(ElementUpdatedEvent(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (event is MessageEvent) {
|
||||||
|
if (messageReceived != null) {
|
||||||
|
messageReceived(MessageEvent(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (event is ObjectAddedEvent) {
|
||||||
|
if (objectAdded != null) {
|
||||||
|
objectAdded(ObjectAddedEvent(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (event is ObjectRemovedEvent) {
|
||||||
|
if (objectRemoved != null) {
|
||||||
|
objectRemoved(ObjectRemovedEvent(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (event is ObjectDestroyedEvent) {
|
||||||
|
if (objectDestroyed != null) {
|
||||||
|
objectDestroyed(ObjectDestroyedEvent(event));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user