Cool Justin, Works like a charm! I think this method is more in-line with the Cairngorm architecture than the path I was travelling. Thanks for helping me out.
-TH --- In [email protected], "dirtmediaworld" <[EMAIL PROTECTED]> wrote: > > Tim- > This is how I integrated a popup into a Cairngorm application. I'm not > an expert by any means, so use caution if you follow my lead. In my > application I click a "Send It" button that creates a popup window with > a form in it. The following is the bones of how I do it with Cairngorm. > > When I click the "Send It" button I dispatch a SendItEvent from a Canvas > component like this: > > public function sendIt():void { > dispatchEvent(new SendItEvent(this)); > } > > this being the Canvas component that the "Send It" button is inside. And > the event passes along the DisplayObject: > > package com.mydomain.controller { > > import org.nevis.cairngorm.control.CairngormEvent; > import flash.display.DisplayObject; > > public class SendItEvent extends CairngormEvent { > > public function SendItEvent( parentDisplay : DisplayObject ) { > super(ApplicationController.EVENT_SENDIT); > this.parentDisplay = parentDisplay; > } > > public var parentDisplay : DisplayObject; > > } > } > > > I created a command class that communicates with a ViewHelper like this: > > package com.mydomain.controller { > > import com.mydomain.model.ApplicationModel; > import org.nevis.cairngorm.commands.Command; > import org.nevis.cairngorm.control.CairngormEvent; > > > public class SendItCommand implements Command { > > private static var model:ApplicationModel = > ApplicationModel.getInstance(); > > public function execute (cairngormEvent:CairngormEvent):void { > var event:SendItEvent = cairngormEvent as SendItEvent; > model.popupViewHelper.showPopUpWindow( event.parentDisplay > ); > > } > > } > } > > In my ApplicationModel constructor I have: > > popupState = POPUP_CLOSED; > popupViewHelper = new PopUpViewHelper(); > > > With two constants declared in that class: > > public static const POPUP_CLOSED : Number = 1; > public static const VIEWING_POPUP : Number = 2; > > And then my PopUpViewHelper class looks like this: > > package com.mydomain.view { > > import org.nevis.cairngorm.view.ViewHelper; > import com.mydomain.model.ApplicationModel; > import com.mydomain.view.forms.SendItForm; > import mx.containers.TitleWindow; > import mx.managers.PopUpManager; > import mx.core.Application; > import mx.core.UIComponent; > > public class PopUpViewHelper extends ViewHelper { > > public function PopUpViewHelper() { > super(); > } > > > public function showPopUpWindow( parentDisplay : * ) : Boolean { > if( ApplicationModel.getInstance().popupState != > ApplicationModel.VIEWING_POPUP ) { > if( (parentDisplay.window == null) || > (parentDisplay.window != null & > !Application.application.systemManager.rawChildren.contains (parentDispla\ > y.window)) ) > parentDisplay.window = > TitleWindow(PopUpManager.createPopUp(parentDisplay, SendItForm, false)); > ApplicationModel.getInstance().popupState = > ApplicationModel.VIEWING_POPUP; > return true; > } else { > return false; > } > } > > public function closePopUpWindow( window : TitleWindow ) : void > { > if(window != null) PopUpManager.removePopUp( window ); > ApplicationModel.getInstance().popupState = > ApplicationModel.POPUP_CLOSED; > } > } > } > > So if there isn't a popup already open, the helper creates it. > > The only problem I've had with this, that I haven't been able to solve > yet, is that the popup is sometimes hard to drag around. I'm not sure > why, but sometimes I have to try to drag it a few times before it will > actually respond to the mouse. Hope this helps. Let me know if you come > up with a better way of doing it. > -Dustin > > > --- In [email protected], "Tim Hoff" <TimHoff@> wrote: > > > > Got it to work with this: > > > > var myWindow:IFlexDisplayObject; > > var myParent:DisplayObject; > > > > myParent = Application.application.mainPanelView; > > myWindow = PopUpManager.createPopUp(myParent,SearchingPopupView, > > true); > > > > Now I just have to find a way to incorperate this without totally > > stepping all over Cairngorm. > > > > Again, thanks so much Dimitrios, > > Tim Hoff > > > > --- In [email protected], "Tim Hoff" <TimHoff@> wrote: > > > > > > That got rid of the compile error, but created the same error at > > run- > > > time. Don't worry about it Dimitrios. You've spent enough time > > on > > > this. I'll keep trying. > > > > > > Much thanks, > > > Tim > > > > > > --- In [email protected], "Dimitrios Gianninas" > > > <dimitrios.gianninas@> wrote: > > > > > > > > wrap the MainPanelView like so: > > > > > > > > DisplayObject(MainPanelView) > > > > > > > > Dimitrios Gianninas > > > > RIA Developer > > > > Optimal Payments Inc. > > > > > > > > > > > > ________________________________ > > > > > > > > From: [email protected] > > > [mailto:[EMAIL PROTECTED] On Behalf Of Tim Hoff > > > > Sent: Sunday, June 11, 2006 8:16 PM > > > > To: [email protected] > > > > Subject: [flexcoders] Re: Cairngorm createPopUp in a command > > > > > > > > > > > > > > > > In the command: (Same thing if I move it to the ModelLocator) > > > > > > > > import org.ets.main.code.view.mainPanel.MainPanelView; > > > > import > > > org.ets.main.code.view.mainPanel.searching.SearchingPopupView; > > > > import mx.managers.PopUpManager; > > > > import mx.core.IFlexDisplayObject; > > > > > > > > public function execute( > > > > var myWindow:IFlexDisplayObject; > > > > myWindow = PopUpManager.createPopUp(MainPanelView, > > > > SearchingPopupView, true); > > > > } > > > > > > > > The last line gives the error. > > > > > > > > This is the SearchingPopupView compnent: > > > > > > > > <?xml version="1.0" encoding="utf-8"?> > > > > <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml > > > <http://www.adobe.com/2006/mxml> " cornerRadius="6" > > > > styleName="plainPanel" headerHeight="0" > > > > height="70" width="300" horizontalAlign="center" > > > verticalAlign="middle"> > > > > > > > > <mx:Script> > > > > <![CDATA[ > > > > > > > > import org.ets.main.code.model.ModelLocator; > > > > > > > > ]]> > > > > </mx:Script> > > > > > > > > <mx:Spacer height="4"/> > > > > <mx:Label text="{ ModelLocator.getInstance > > ().searchingMessage }" > > > fontWeight="bold" fontSize="11"/> > > > > <mx:ProgressBar indeterminate="true" height="10" > > trackHeight="10" > > > barColor="#27568D" label=" "/> > > > > </mx:TitleWindow> > > > > > > > > -TH > > > > > > > > --- In [email protected], "Dimitrios Gianninas" > > > <dimitrios.gianninas@> wrote: > > > > > > > > > > it should work, too simple not too. What line gives the > > error... > > > paste the offending line. > > > > > > > > > > Dimitrios Gianninas > > > > > RIA Developer > > > > > Optimal Payments Inc. > > > > > > > > > > > > > > > ________________________________ > > > > > > > > > > From: [email protected] > > > [mailto:[EMAIL PROTECTED] On Behalf Of Tim Hoff > > > > > Sent: Sunday, June 11, 2006 8:01 PM > > > > > To: [email protected] > > > > > Subject: [flexcoders] Re: Cairngorm createPopUp in a command > > > > > > > > > > > > > > > > > > > > Well, I tried it both ways and am still getting the same > > compile > > > > > error. Sorry to be such a bother. I'll keep plugging away at > > it. > > > > > > > > > > Thanks Dimitrios, > > > > > Tim > > > > > > > > > > --- In [email protected] <mailto:flexcoders% > > > 40yahoogroups.com> , "Dimitrios Gianninas" > > > > > dimitrios.gianninas@ wrote: > > > > > > > > > > > > ok you are using Flex2... wasn't sure. Change to: > > > > > > > > > > > > var myWindow:IFlexDisplayObject > > > > > > > > > > > > And if you want, move the myWindow variable to the > > > ModelLocator. > > > > > > > > > > > > ModelLocator.myWindow = PopUpManager.createPopUp( .. ); > > > > > > > > > > > > > > > > > > Dimitrios Gianninas > > > > > > RIA Developer > > > > > > Optimal Payments Inc. > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > > > > > > > From: [email protected] <mailto:flexcoders% > > > 40yahoogroups.com> > > > > > [mailto:[email protected] <mailto:flexcoders% > > > 40yahoogroups.com> ] On Behalf Of Tim Hoff > > > > > > Sent: Sunday, June 11, 2006 7:37 PM > > > > > > To: [email protected] <mailto:flexcoders% > > > 40yahoogroups.com> > > > > > > Subject: [flexcoders] Re: Cairngorm createPopUp in a command > > > > > > > > > > > > > > > > > > > > > > > > That doesn't want to work. > > > > > > > > > > > > Error: Implicit coersion of a value of type class to an > > > unrelated > > > > > > type flash.display.displayObject. > > > > > > > > > > > > I liked your idea of handling it in the ModelLocator. Any > > > chance > > > > > > you could show the code that your using to do it that way? > > > > > > > > > > > > Thanks again, > > > > > > Tim > > > > > > > > > > > > --- In [email protected] <mailto:flexcoders% > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > 40yahoogroups.com> , "Dimitrios Gianninas" > > > > > > <dimitrios.gianninas@> wrote: > > > > > > > > > > > > > > Actually you don't even need to do that. You use case is > > > simpler > > > > > > (some code ommited): > > > > > > > > > > > > > > class MyCommand implements Command { > > > > > > > var myWindow:Object; > > > > > > > > > > > > > > public function execute() { > > > > > > > myWindow = PopUpManager.createPopUp( .. ); > > > > > > > } > > > > > > > > > > > > > > public function onResult() { > > > > > > > PopUpManager.removePopUp( myWindow); > > > > > > > } > > > > > > > > > > > > > > public function onFault() { > > > > > > > PopUpManager.removePopUp( myWindow); > > > > > > > } > > > > > > > } > > > > > > > > > > > > > > Dimitrios Gianninas > > > > > > > RIA Developer > > > > > > > Optimal Payments Inc. > > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > > > > > > > > > From: [email protected] <mailto:flexcoders% > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > 40yahoogroups.com> > > > > > > [mailto:[email protected] <mailto:flexcoders% > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > 40yahoogroups.com> ] On Behalf Of Tim Hoff > > > > > > > Sent: Sunday, June 11, 2006 7:17 PM > > > > > > > To: [email protected] <mailto:flexcoders% > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > 40yahoogroups.com> > > > > > > > Subject: [flexcoders] Re: Cairngorm createPopUp in a > > command > > > > > > > > > > > > > > > > > > > > > > > > > > > > Dimitios, > > > > > > > > > > > > > > Could you elaberate a little with code? How are you > > creating > > > the > > > > > > > popup? And, by reference, do you mean import? > > > > > > > > > > > > > > Thanks, > > > > > > > Tim > > > > > > > > > > > > > > --- In [email protected] <mailto:flexcoders% > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > > 40yahoogroups.com> , "Dimitrios Gianninas" > > > > > > > <dimitrios.gianninas@> wrote: > > > > > > > > > > > > > > > > I've done this... In the ModelLocator keep a reference > > to > > > the > > > > > > > window that you will display, then you can access it from > > > > > wherever > > > > > > > you want, in your case the onResult and onFault events. > > > > > > > > > > > > > > > > Dimitrios Gianninas > > > > > > > > RIA Developer > > > > > > > > Optimal Payments Inc. > > > > > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > > > > > > > > > > > From: [email protected] <mailto:flexcoders% > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > > 40yahoogroups.com> > > > > > > > [mailto:[email protected] <mailto:flexcoders% > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > > 40yahoogroups.com> ] On Behalf Of Tim Hoff > > > > > > > > Sent: Sunday, June 11, 2006 5:52 PM > > > > > > > > To: [email protected] <mailto:flexcoders% > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > 40yahoogroups.com> <mailto:flexcoders% > > > > > > 40yahoogroups.com> > > > > > > > > Subject: [flexcoders] Cairngorm createPopUp in a command > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Is it possible to create and remove a popup in a > > Cairngorm > > > > > > > command? I > > > > > > > > have a simple application that has two primary > > components; > > > > > > > sidePanel > > > > > > > > and mainPanel. Various child components are added to the > > > > > primary > > > > > > > > components, depending on the state of the application. > > > What I > > > > > > want > > > > > > > to > > > > > > > > do is create a popup in the mainPanel when the user > > clicks > > > a > > > > > > > search > > > > > > > > button in the sidePanel. The popup is a small component > > > that > > > > > > shows > > > > > > > a > > > > > > > > progress bar with a searching label. In the searching > > > command, > > > > > > > > executed with a cairngormEvent when the sidePanel search > > > > > button > > > > > > is > > > > > > > > clicked, I want to create the popup. onResult, remove > > the > > > > > popup > > > > > > > and > > > > > > > > change state to display a grid. onFault, remove the > > popup > > > and > > > > > > > display > > > > > > > > an Alert. I'm having a problem referencing the mainPanel > > > as > > > > > the > > > > > > > popup > > > > > > > > parent and listening for an event to remove the popup. > > > I've > > > > > > tried > > > > > > > > several different approaches with no success. If anyone > > > could > > > > > > get > > > > > > > me > > > > > > > > moving in the right direction, I would greatly > > appreciate > > > it. > > > > > > > > > > > > > > > > Thanks in advance, > > > > > > > > Tim Hoff > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > WARNING > > > > > > > > ------- > > > > > > > > This electronic message and its attachments may contain > > > > > > > confidential, proprietary or legally privileged > > information, > > > > > which > > > > > > > is solely for the use of the intended recipient. No > > > privilege or > > > > > > > other rights are waived by any unintended transmission or > > > > > > > unauthorized retransmission of this message. If you are > > not > > > the > > > > > > > intended recipient of this message, or if you have > > received > > > it > > > > > in > > > > > > > error, you should immediately stop reading this message > > and > > > > > delete > > > > > > > it and all attachments from your system. The reading, > > > > > > distribution, > > > > > > > copying or other use of this message or its attachments by > > > > > > > unintended recipients is unauthorized and may be unlawful. > > > If > > > > > you > > > > > > > have received this e-mail in error, please notify the > > sender. > > > > > > > > > > > > > > > > AVIS IMPORTANT > > > > > > > > -------------- > > > > > > > > Ce message électronique et ses pièces jointes > peuvent > > > contenir > > > > > > des > > > > > > > renseignements confidentiels, exclusifs ou légalement > > > > > privilégiés > > > > > > > destinés au seul usage du destinataire visé. > L'expéditeur > > > > > original > > > > > > > ne renonce à aucun privilège ou à aucun autre droit > si le > > > > > présent > > > > > > > message a été transmis involontairement ou s'il est > > > retransmis > > > > > > sans > > > > > > > son autorisation. Si vous n'êtes pas le destinataire > visé > > du > > > > > > > présent message ou si vous l'avez reçu par erreur, > > veuillez > > > > > cesser > > > > > > > immédiatement de le lire et le supprimer, ainsi que > toutes > > > ses > > > > > > > pièces jointes, de votre système. La lecture, la > > > distribution, > > > > > la > > > > > > > copie ou tout autre usage du présent message ou de ses > > > pièces > > > > > > > jointes par des personnes autres que le destinataire visé > > ne > > > > > sont > > > > > > > pas autorisés et pourraient être illégaux. Si vous > avez > > reçu > > > ce > > > > > > > courrier électronique par erreur, veuillez en aviser > > > > > l'expéditeur. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------ Yahoo! Groups Sponsor --------------------~--> You can search right from your browser? It's easy and it's free. See how. http://us.click.yahoo.com/_7bhrC/NGxNAA/yQLSAA/nhFolB/TM --------------------------------------------------------------------~-> -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

