2010-11-06 15 views
0

J'ai 2 vues qui montrent des listes qui utilise ensuite un médiateur pour obtenir des données. mais je veux d'une certaine façon le sécher afin que je ne doive pas me répéter 2 fois pour la même chose. Comment fait-on ça?robotlegs: J'ai 2 vues et médiateurs qui ont en commun 1 chose comment puis-je le sécher?

EDIT1 (code):

[SkinPart(required="false")] 
public var WOListsDDL:DropDownList; 
    // in partadded 
case WOListsDDL: 
    // when the selected list is changed in the lists drop down list 
    WOListsDDL.addEventListener(IndexChangeEvent.CHANGE, _WOListsDDL_changeHandler); 
    WOListsDDL.dataProvider = new ArrayCollection(); 
    WOListsDDL.labelField = 'title'; 
break; 
    // 

    protected function _WOListsDDL_changeHandler(event:*):void{ 
     _debug('List selection changed handler.'); 
     _getContentsForList(); 
    } 
    protected function _getContentsForList():void{ 
     _debug('Getting list items.'); 
     getItemsSignal.dispatch({key: getSelectedList()._key, itemType: 'item'}); 
    } 
    public var getItemsSignal:GetItemsSignal = new GetItemsSignal(); 

    override public function mediatorComplete():void{ 
     getItemsSignal.dispatch({key: tottysAuth.getCurrentUser()._key, itemType: 'list'}); 
    } 

// puis dans mon médiateur

[Inject] public var getItemsSignal:GetItemsSignal; 
    override public function onRegister():void{ 
     // view listeners 
     view.getItemsSignal.add(_getItemsSignalHandler); 
    } 
    protected function _getItemsSignalHandler(input:Object):void{ 
     getItemsSignal.dispatch(input); 
    } 

tout cela pour une vue-médiateur. maintenant j'ai 2 view-médiateurs qui font ces tâches. Comment les faire sécher?

Solutions J'ai: faire une petite vue contenant la liste déroulante avec un médiateur qui écoute l'événement. dans les gros composants, ils écoutent un signal à la vue de ce petit composant. rien de plus. cela semble assez bien mais je ne pense pas qu'il soit si bon

+0

pouvez-vous lier un exemple de code? – rwilliams

+0

oui, vérifiez mon edit1 –

+0

vous voulez deux vues injectées à un médiateur? – chchrist

Répondre

0

Donc il y a des fonctionnalités sur les vues et les médiateurs que vous ne voulez pas répéter?

Vous pouvez placer le code que vous souhaitez réutiliser dans un autre objet et appeler ses méthodes à partir de vos vues et médiateurs multiples. Ou vous pouvez le mettre dans des classes d'ancêtres et étendre chacune de ces classes dans votre vue et votre médiateur.

La meilleure pratique serait de faire le premier et non le dernier.