Ferreteria/v2/trait/ftExecutableTree

From Woozle Writes Code
< Ferreteria‎ | v2
Jump to navigation Jump to search

Template:Page/code/class

// PURPOSE: So an ExecutableTwig node will pass events down to its subnodes
trait ftExecutableTree {
    use ftExecutableTwig;

    // ++ OVERRIDE ++ //

    public function DoEvent($nEvent) {
	$this->OnEventBefore($nEvent);
	if ($this->HasNodes()) {
	    $ar = $this->GetNodes();
	    foreach ($ar as $name => $oNode) {
		$oNode->DoEvent($nEvent);
	    }
	}
	$this->OnEventAfter($nEvent);
    }
    
    // -- OVERRIDE -- //
    // ++ NEW ++ //

    // PURPOSE: by default, Self handles event before passing it down
    protected function OnEventBefore($nEvent)	{ $this->OnEventDispatch($nEvent); }
    protected function OnEventAfter($nEvent)	{}	// stub
    
    // -- NEW -- //
    
}