Skip to content

Instantly share code, notes, and snippets.

@jonathantorres
Created November 25, 2011 23:33
Show Gist options
  • Save jonathantorres/1394666 to your computer and use it in GitHub Desktop.
Save jonathantorres/1394666 to your computer and use it in GitHub Desktop.
package com.examples.navigationmodel.view.mediator
{
import com.examples.navigationmodel.signals.SectionChangeSignal;
import com.examples.navigationmodel.view.sections.AboutSection;
import com.examples.navigationmodel.view.sections.ContactSection;
import com.examples.navigationmodel.view.sections.HomeSection;
import com.examples.navigationmodel.view.sections.PortfolioSection;
import com.examples.navigationmodel.view.ui.Navigation;
import com.examples.navigationmodel.view.ui.NavigationButton;
import org.osflash.signals.natives.NativeSignal;
import org.robotlegs.mvcs.Mediator;
import flash.events.MouseEvent;
/**
* @author Jonathan Torres
*/
public class NavigationMediator extends Mediator
{
[Inject]
public var view:Navigation;
[Inject]
public var sectionChangeSignal:SectionChangeSignal;
private var _buttonClickSignal:NativeSignal;
public function NavigationMediator()
{
super();
}
override public function onRegister():void
{
view.init();
initButtonSignals();
}
private function initButtonSignals():void
{
for each (var button:NavigationButton in view.buttons)
{
_buttonClickSignal = new NativeSignal(button, MouseEvent.CLICK, MouseEvent);
_buttonClickSignal.add(onButtonClick);
}
}
private function onButtonClick(event:MouseEvent):void
{
var button:NavigationButton = NavigationButton(event.currentTarget);
switch(button.label)
{
case 'Home' :
sectionChangeSignal.dispatch(new HomeSection);
break;
case 'About' :
sectionChangeSignal.dispatch(new AboutSection);
break;
case 'Portfolio' :
sectionChangeSignal.dispatch(new PortfolioSection);
break;
case 'Contact' :
sectionChangeSignal.dispatch(new ContactSection);
break;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment