[flexcoders] Re: Changes not detected in index.template.html
I'm running into the same issue getting http://www.deitte.com/archives/2006/08/finally_updated.htm to work under an FDS compile on load situation and haven't had any success either. What bothers me to a fair extent is that this solution (iFrame to render HTML proper since Flex / Flash uses such a lobotomized rendering engine) nullifies one of the main selling points of Flex that it doesn't require javascript to function completely. If the user turns off JS, AJAX is hosed. http://weblogs.macromedia.com/mesh/archives/2006/11/update_on_apoll.html gives me hope that there will be a way around that in the future, but it's pressing a larger client dependency down than just the Flash Player. Will let you know if I come up with anything, but from what I can tell because it's calling the .mxml directly, the index.template.html never creates the pure .html file which your .swf is relying on to handle the JS. --- In flexcoders@yahoogroups.com, Oliver Merk [EMAIL PROTECTED] wrote: I have a project that compiles on the server. I need to add some custom Javascript to the HTML that's generated when I run the mxml file (eg. http://localhost:8700/flex/MyApp.mxml). When I add the code to /html-template/index.template.html file and run the application, I don't see the JS when I view source. I've searched around and haven't heard of this problem before. Any ideas how to get this to work? Thanks, Oliver
[flexcoders] Re: Flex and XSLT
I'm just beginning to experiment on thisWill post back any successful results I find on this. --- In flexcoders@yahoogroups.com, Leon Tanner [EMAIL PROTECTED] wrote: Hi All, Has anyone tried their hand at using XSLT to transform XML data to a Flex interface? I have been given a piece of work that will involve me receiving XML data (schema already exist) and make it presentable within a Flex app, making use of already existing XSLT style sheets (that tie up to this specific XML data). After trawling the web for examples, I haven't found anything obvious - and it seems sensible to ask if anyone here has been involved with any such work? Many thanks for any help! Leon
[flexcoders] Re: Cairngorm / MVC Best Practice
It sounds possible, but I'm not quite sure I get what you're describing. Could you post an example of this? The event, the command, the snippet(s) from the controller / delegate(s) / service which would support this? Thx, Jamie --- In flexcoders@yahoogroups.com, Tom Chiverton [EMAIL PROTECTED] wrote: On Thursday 04 January 2007 22:03, Jamie O wrote: 2) Is there a way - similar to how a delegate can have a series of functionname_onResult, functionname_onFault - that you can have one command deal with multiple onResult scenarios? We have all our Events take the current object as the first parameter (i.e. 'this'). The Command then calls savedFromEventHome.onCommandName(result) in onResult. Could that do what you want ? -- Tom Chiverton Helping to advantageously fashion web-enabled clusters This email is sent for and on behalf of Halliwells LLP. Halliwells LLP is a limited liability partnership registered in England and Wales under registered number OC307980 whose registered office address is at St James's Court Brown Street Manchester M2 2JF. A list of members is available for inspection at the registered office. Any reference to a partner in relation to Halliwells LLP means a member of Halliwells LLP. Regulated by the Law Society. CONFIDENTIALITY This email is intended only for the use of the addressee named above and may be confidential or legally privileged. If you are not the addressee you must not read it and must not use any information contained in nor copy it nor inform any person other than Halliwells LLP or the addressee of its existence or contents. If you have received this email in error please delete it and notify Halliwells LLP IT Department on 0870 365 8008. For more information about Halliwells LLP visit www.halliwells.com.
[flexcoders] Re: Cairngorm / MVC Best Practice
3) Why exactly are u looking to do? -Have one event type 'task' that handles multiple usages -Event usages: -Display all (update arrayCollection) -Display one in detail (update instance of a VO) -Add task (add instance of VO to the arrayCollection) -Edit task (update database for instance of VO) -Delete task (remove instance of VO from db and arrayCollection) -Try to understand if one command can be written well to handle these situations, or if it is better to have a command for each scenario which all tie in to the same event type Below is some of the pieces of code I have for the 'generic command' approach that might help for discussion. //TaskEvent.as package com.events { import com.adobe.cairngorm.control.CairngormEvent; import com.vo.PersonVO; import com.vo.TaskVO; public class TaskEvent extends CairngormEvent { public static var TASK_ADD:String = TaskAdd; public static var TASK_EDIT:String = TaskEdit; public static var TASK_DELETE:String = TaskDelete; public var User:PersonVO; public var Task_Update:TaskVO; public function TaskEvent(p_type:String, p_User:PersonVO, p_Update:TaskVO) { super(p_type, false, true); User = p_User; Task_Update = p_Update; } } } package com.commands { import com.adobe.cairngorm.commands.Command; import com.adobe.cairngorm.business.Responder; import com.adobe.cairngorm.control.CairngormEvent; import com.model.ModelLocator; import com.business.TaskDelegate; import com.events.TaskEvent; import com.vo.PersonVO; import com.vo.TaskVO; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import mx.utils.ArrayUtil; import mx.collections.ArrayCollection; public class TaskCommand implements Command, Responder { public function execute(p_event:CairngormEvent):void { switch(p_event.type) { case TaskEvent.TASK_ADD: TaskAdd(TaskEvent(p_event).User, TaskEvent(p_event).Details); break; case TaskEvent.TASK_DELETE: TaskDelete(TaskEvent(p_event).User, TaskEvent(p_event).Details); break; } } //Skipped the actual content of TaskAdd / TaskDelete functions } Tom's reply leads me to believe there is a way to do the equivelent - from my coding example - of having a TaskAdd_onResult, TaskDelete_onResult and TaskAdd_onFault, TaskDelete_onFault within the same command rather than having to separate out. But how is not quite clear to me.
[flexcoders] Re: RPC Pro's and Cons
--- In flexcoders@yahoogroups.com, Patrick Mineault [EMAIL PROTECTED] wrote: over magic... LMAO. I like my magic beans thank you very much :) Tom Chiverton a écrit : On Thursday 04 January 2007 21:45, Jamie O wrote: -You need FDS over HTTP or Web when the security of the URL is important. Without FDS (or WebOrb or equivelent layer of server-side technology) the URL of the service is exposed in the .swf to being decompiled. :points at WireShark / Pharos The endpoint is exposed over both. It has to be, because the traffic runs over the network, as opposed to over magic. -Java and Flex / FDS play the nicest together, especially with the Flex plugin to eclipse. If you already have your java classes setup from a previous project, you can leverage that code to tie a new Flex UI on the front. Unless you are a ColdFusion programmer :-)
[flexcoders] Re: RPC Pro's and Cons
I can give my $0.02 on these as I've experimented with each. They may not be absolute pros / cons that an Adobe salesperson would provide but for what they're worth: -You need FDS over HTTP or Web when the security of the URL is important. Without FDS (or WebOrb or equivelent layer of server-side technology) the URL of the service is exposed in the .swf to being decompiled. -There are limitations on the way Adobe has done their implementation of Web Services. Everything I tried, googled and talked to indicated that their implementation does not support ws-sec, there may be other issues if you're doing anything of a very complex nature. -Java and Flex / FDS play the nicest together, especially with the Flex plugin to eclipse. If you already have your java classes setup from a previous project, you can leverage that code to tie a new Flex UI on the front. -WebOrb is, amongst other things, an equivelent of FDS but allows .Net integration. It also handles PHP (previous version was called PHPOrb). I haven't played with it specifically but a lot of the writings on the web indicate it's pretty good. -I chose to go with AMFPHP as the integration for PHP on the backend with my current project. AMFPHP is VERY lightweight and if you've used it for Flash remoting before the learning curve is a lot lower than any of the other technologies. The good thing about how Adobe's pushed their tech out there is that you don't have to spend to experiment with each of the various technologies you're looking at. You could prototype with multiple and then make your decision for what best suites your landscape. It's only when you get into load-balanced, multi-server solutions that the costs come into play. But I hear what you're asking from an 'upfront / eyes open' point of view. Short answer - it depends :P --- In flexcoders@yahoogroups.com, jeofmoyster [EMAIL PROTECTED] wrote: I'm looking for any information on why FDS is better than HTTPService or WebService. Or better phrased, WHEN would one prefer FDS over the other two for reasons other than publish/subscription? I'm working on determining the best way to go with an architecture. I can tie Flex applications to Java, .NET or PHP API's for our back-end systems, but I'm wondering whether to go with a home-grown approach/WebORB vs. FDS? Does serving Flex apps from the FDS server reduce bandwidth or make for more efficient delivery? Is polling really terribly detrimental compared to data pushing? Is FDS amazingly faster, better, stronger than going with a free option. How much can an FDS server take before we need to build out the architecture? Basically I need to have a good list of WHY we should use Flex Data Services before I start dropping hundreds of thousands of dollars on the architecture. thanks, /j
[flexcoders] Cairngorm / MVC Best Practice
It's Thursday afternoon, which means my bi-weekly question everything I've just coded and contemplate serious internal changes on the project. This week the insanity relates to Cairngorm or perhaps Model View Controller design pattern in general, and the best practices of it's implementation. Short Questions: 1) How do you break up your commands / delegates? 2) Is there a way - similar to how a delegate can have a series of functionname_onResult, functionname_onFault - that you can have one command deal with multiple onResult scenarios? 3) Are there any examples out there which deal with these situations specifically? My googles have not lead to good details, but perhaps I'm just querying for the wrong terminology at this point 4) If you're delegate(s) are so simplistic to just act as a gateway, what would a sample look like where you eliminte it? Example Context: You have a screen (view) in which a user can display a list of tasks, select one to display, select one to edit, select one to delete, or add a new one. You'll also have a host of other functions with similar scope (Add staff, Add materials, etc) for arguments sake. Long Thoughts: My initial thoughts built up from Jesse's Amazon Web Service example -Create one custom event (Task) that has a sub-event type for each activity (list, display, add, edit, delete) as a series of constants defined in the event itself. -The execute function in the command (also a responder) would be a giant switch statement that passes off the different pieces of data from the event to the appropriate function within the command. -Each of these calls a delegate to hit a back-end service to get what is required of it and return the results to the command to update the model and the view responds accordingly. This breaks down when I have more than one function returning results from a delegate because I can only have one 'onResult' function within the command. How to code for the differences of if it was a delete action to return the view back to the list of task state versus an edit action to return to the display state for that updated task. My second intention is to create a specific command for each activity (TaskAddCommand, TaskEditCommand, TaskDeleteCommand) and keep the event as described above. But is doing the following in the controller adviseable: addCommand(TaskEvent.ADDTASK, TaskAddCommand); addCommand(TaskEvent.EDITTASK, TaskEditCommand); addCommand(TaskEvent.DELETETASK, TaskDeleteCommand); This is still plagued by the delegate having a huge amount of code just acting as passthru service, but would still be something that coding conflicts would arise on. If you're delegate(s) are so simplistic of just acting as a gateway, what would a sample look like where you eliminte it? Then I could stick with one event type with sub-types, each sub-type references a specific command which does it's own service call / response. Thx, Jamie
[flexcoders] Re: Amfphp with AMF3 support: testers wanted
Hey, Much like a virgin learning to navigate the salacious curves of his first partner, I've tried putting it everywhere and had little success. Typo's aside, I've managed to resolve the on-save error with the FDS version by putting the destination in the remoting-config.xml. Now, when I load the .mxml in the browser I get a Error: Cannot assign operations into an RPC Service (endpointdestination) at mx.rpc::AbstractService/http://www.adobe.com/2006/actionscript/flash/proxy::setProperty() at com.post.mailbox.business::Services/::_WebService1_i() error message. I think for the time being I'll un-FDS my project but this is obviously not an optimal solution and one that I'm sure many are going to run into down the road. Hopefully Patrick's efforts in bringing FDS suppport to AMFPHP will resolve this quirk. Jamie --- In flexcoders@yahoogroups.com, Renaun Erickson [EMAIL PROTECTED] wrote: Jamie, You can try putting the the adapter in the remoting-config.xml. Leave the channel in the services-config.xml. ColdFusion's default remoting services-config.xml puts them all in one file, and thats what I end up doing for my non FDS stuff. One thing I did notice in terms of the Cairngorm stuff is the line of code that says: service = ServiceLocator.getInstance().getService(AMFPHPDestination) should read: service = ServiceLocator.getInstance().getService(roAMFPHPService) Hope that helps, Renaun
[flexcoders] Re: Amfphp with AMF3 support: testers wanted
I've never been so happy to realize I made such a stupid mistake! The subsequent error was related to a web service that I had somehow put an 'endpointdestination' reference instead of a 'destination'. Splitting the pieces of the example services-config.xml as I previously posted does work quite well with FDS / cairngorm. Thank you so much guys! Jamie --- In flexcoders@yahoogroups.com, Jamie O [EMAIL PROTECTED] wrote: Hey, Much like a virgin learning to navigate the salacious curves of his first partner, I've tried putting it everywhere and had little success. Typo's aside, I've managed to resolve the on-save error with the FDS version by putting the destination in the remoting-config.xml. Now, when I load the .mxml in the browser I get a Error: Cannot assign operations into an RPC Service (endpointdestination) at mx.rpc::AbstractService/http://www.adobe.com/2006/actionscript/flash/proxy::setProperty() at com.post.mailbox.business::Services/::_WebService1_i() error message. I think for the time being I'll un-FDS my project but this is obviously not an optimal solution and one that I'm sure many are going to run into down the road. Hopefully Patrick's efforts in bringing FDS suppport to AMFPHP will resolve this quirk. Jamie --- In flexcoders@yahoogroups.com, Renaun Erickson renaun@ wrote: Jamie, You can try putting the the adapter in the remoting-config.xml. Leave the channel in the services-config.xml. ColdFusion's default remoting services-config.xml puts them all in one file, and thats what I end up doing for my non FDS stuff. One thing I did notice in terms of the Cairngorm stuff is the line of code that says: service = ServiceLocator.getInstance().getService(AMFPHPDestination) should read: service = ServiceLocator.getInstance().getService(roAMFPHPService) Hope that helps, Renaun
[flexcoders] Re: Amfphp with AMF3 support: testers wanted
Hello, I am able to do a stand-alone .mxml project using the samples you have provided and connect well to my php methods / backend database. The issue I have is when trying to deploy this as part of a Flex Data Services / Cairngorm app I can't get the remote object to allow compile or usage without error. Anyone have a cairngorm / FDS scope example for using AMFPHP 1.9? If I do the closest equivelent of adding the relevant contents of your services-config.mxml to the already created one for FDS I get a Destination 'AMFPHPDestination' must specify at least one adapter error message when starting the server (Tomcat 5.5) If I do a purely-client side entry of the endpoint in the services.mxml instantiation I get other errors - and this is also not a way I want to go as the endpoint URL would be exposed. Renaud's examples don't seem to include cairngorm-ified versions as was the case in the past and I haven't managed to crack this nut. Thx, Jamie --- In flexcoders@yahoogroups.com, Patrick Mineault [EMAIL PROTECTED] wrote: Hi all, I've finally gotten around to add AMF3 support to amfphp, so you can finally use Flex 2's RemoteObject with it. To test the new features, I've created a new Service Browser in Flex 2 which allows you to introspect services and test methods on the fly. I need people to test out the new AMF3 support. New/changed features: - $this-methodTable is DEAD. All methods in /services are now considered remotely accessible, unless you set them to protected or private (PHP5) or start the method name with an (_), in which case it will throw an error. If you want to get a description of a method and it's arguments without looking at the class itself, add JavaDoc to the method and you should see it in the new Service Browser. - _authenticate is dead, as a side-effect of the removal of the methodTable. You can secure methods by creating a special function called beforeFilter($methodName) in your class and return false to stop a method from being executed. (the _ and the beforeFilter are the conventions used by CakePHP, so I figured I'd use those instead of rolling my own). - Circular references in AMF0 and AMF3 should now work. Class mapping code has been ported to the AMF3 code also. To use remote class mapping, use registerClassAlias or the [RemoteClass] metadata tag, then read the instructions in advancedsettings.php - Returning a mysql_query will now return either an Array or an ArrayCollection depending on the setting in gateway.php. Other database types are currently unsupported in AMF3 mode (they will be supported as soon as I am sure the AMF3 code is perfect). - You can send ByteArray, ArrayCollection and ObjectProxy instances as arguments to remote methods. You will receive the result as a string, as the inner array and as the inner object, respectively. Currently there is no way to send back these types to Flash, but there will be in the next version. - /browser now brings up the brand spanking new Flex 2-based service browser. You can test methods directly through it. If the method returns an array or arraycollection, the browser will attempt to show it in a datagrid (sweet). Please feel free to modify servicebrowser.mxml (it's very spaghetti-code-ish, but it works). You will need the Adobe corelib to compile (google for the link) Limitations/things to keep in mind: - MySql works but not other databases - You can use a JSON string for arguments in the service browser. However you must wrap object keys in quotes (a limitation of Adobe corelib). - Paged recordsets don't work anymore - Only tested in PHP5. PHP4 might show issues with circular references. - Calling two methods on a remoteObject one after the other (during the same frame) might not work. - Charles and ServiceCapture have some issues with AMF3 handling. You might see strings which seem out of place in your output while it works fine in Flash. I will notify the people involved. You might want to set PRODUCTION_SERVER to true in gateway.php if this is a recurrent problem, in the meantime. - If you need to send to Flash a class and want it to be mapped to a class in a package, you need to add a key to the class called _explicitType with a value of com.mypackage.TheClass and use registerClassAlias or [RemoteClass] as usual ( a limitation of php not supporting packages) All that being said, I need testers. Please download it here: http://5etdemi.com/uploads/amfphp-1.9.alpha.zip (although it states it is amfphp 1.9, there will be no amfphp 1.9. amfphp 2.0 will be amfphp 1.9 + JSON and possibly XML-RPC) If you run into any issues, please either: - Create a minimal test case which shows the reproducible bug, then send it to me. - In gateway.php, uncomment $gateway-logIncomingMessages and logOutgoingMessages, create an in and an out folder and run it again. Then send the log files (*.amf) to me.
[flexcoders] Re: Amfphp with AMF3 support: testers wanted
For the stand-alone basic .mxml I used a copy of the basic example Renaud gave - with a different URL for the gateway which is located on a separate server. For the cairngorm / FDS version, here are the changes I made to the default FDS .xml files 1) In services-config.xml, add the service to the services section beneath the 4 service include path links add the service: services service-include file-path=remoting-config.xml / service-include file-path=proxy-config.xml / service-include file-path=messaging-config.xml / service-include file-path=data-management-config.xml / service id=amfphp-service class=flex.messaging.services.RemotingService messageTypes=flex.messaging.messages.RemotingMessage destination id=AMFPHPDestination channels channel ref=my-amfphp/ /channels properties source*/source /properties /destination /service /services 2) In services-config.xml, Add to the channels section add the following channel: channel-definition id=my-amfphp class=mx.messaging.channels.AMFChannel endpoint uri=http://externalURLaddress/amfphp/gateway.php; class=flex.messaging.endpoints.AMFEndpoint/ /channel-definition 3) Here's the services.mxml remote object: cairngorm:ServiceLocator xmlns:cairngorm=com.adobe.cairngorm.business.* xmlns:mx=http://www.adobe.com/2006/mxml; mx:RemoteObject id=roAMFPHPService destination=AMFPHPDestination source=AccountService showBusyCursor=true mx:method name=checkLogin / /mx:RemoteObject /cairngorm:ServiceLocator 4) And the relevant parts of the login delegate which calls: import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.remoting.RemoteObject; public class LoginDelegate { protected var service:RemoteObject; protected var responder:Responder; public function LoginDelegate(p_responder:Responder) { trace(LoginDelegate::constructor); responder = p_responder; service = ServiceLocator.getInstance().getService(AMFPHPDestination) as RemoteObject; } public function CheckLogin():void { trace(LoginDelegate::CheckLogin function - + p_AttemptedUser.UserID); service.addEventListener(ResultEvent.RESULT, CheckLogin_onResult); service.addEventListener(FaultEvent.FAULT, CheckLogin_onFault); service.checkLogin(UsernameTest, PasswordTest); } protected function CheckLogin_onResult(event:ResultEvent):void { trace(LoginDelegate::CheckLogin_onResult - Output); trace(event.result); responder.onResult(new ResultEvent(ResultEvent.RESULT, false, true, event.result)); service.removeEventListener(ResultEvent.RESULT, CheckLogin_onResult); service.removeEventListener(FaultEvent.FAULT, CheckLogin_onFault); } And I receive the error Destination 'AMFPHPDestination' must specify at least one adapter. The php service isn't anything special, just give username / pass, validate in query to the mySQL DB and return a specific data element if valid. I know from ServiceCapture and the other version that I don't have an issue on that side. Much thanks! Jamie --- In flexcoders@yahoogroups.com, Patrick Mineault [EMAIL PROTECTED] wrote: Could you post the services_config.xml file you have? Patrick 2006/12/18, Jamie O [EMAIL PROTECTED]: Hello, I am able to do a stand-alone .mxml project using the samples you have provided and connect well to my php methods / backend database. The issue I have is when trying to deploy this as part of a Flex Data Services / Cairngorm app I can't get the remote object to allow compile or usage without error. Anyone have a cairngorm / FDS scope example for using AMFPHP 1.9? If I do the closest equivelent of adding the relevant contents of your services-config.mxml to the already created one for FDS I get a Destination 'AMFPHPDestination' must specify at least one adapter error message when starting the server (Tomcat 5.5) If I do a purely-client side entry of the endpoint in the services.mxml instantiation I get other errors - and this is also not a way I want to go as the endpoint URL would be exposed. Renaud's examples don't seem to include cairngorm-ified versions as was the case in the past and I haven't managed to crack this nut. Thx, Jamie --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com, Patrick Mineault patrick.mineault@ wrote: Hi all, I've finally gotten around to add AMF3 support to amfphp, so you can finally use Flex 2's RemoteObject with it. To test the new features, I've created a new Service Browser in Flex 2 which allows you to introspect
[flexcoders] Re: Database Connectivity - Why so hard?
Hey, I looked through the pages but did not try the sample. My $0.02 on code generators has always been that once you understand the entirety of the code languages you are working with, they can be a great way to save time and effort. But early in the learning process they tend to cause one more harm then help as you don't grasp a lot of the W's (where, what, why) the assisting elements are doing for you. This can make debugging a bigger challenge, and integration of this to a more vanilla approach can be quite cumbersome. The same holds true for me with Flex / backend technologies...I'd like to understand all the elements that code generator produces and be able to produce them myself. I have made some headway in that department using AMFPHP as the remote object gateway, PHP to make the SQL calls to a mySQL database. I put a blog post together covering the initial efforts and results I got: http://www.oastler.ca/index.php/development/flex/20061213_flex-middleware-success-amfphp-and-mysql/ Thanks for the thoughts, Jamie --- In flexcoders@yahoogroups.com, greg h [EMAIL PROTECTED] wrote: Jamie, Have you seen this sample app? Automatically generating code for Flex 2 data access http://www.adobe.com/devnet/flex/articles/daoflex.html I believe it may cover your original request for an example incorporating a mySQL database via JDBC with java remote objects to a Flex project, preferably involving FDS. Whether or not it qualifies as a simplistic example I can not say :-) Please post back whether you find the sample app above helpful. (fyi ... I currently am using neither Java on the back end nor FDS.) g
[flexcoders] Database Connectivity - Why so hard?
Does anyone out there have some simplistic examples of incorporating a mySQL database via JDBC with java remote objects to a Flex project, preferably involving FDS? Super++ bonus points if it uses myEclipse too! My googling leads to quite a few things that have bits and pieces but they all incorporate what seems like a lot of overhead (persistence layers like Hibernate, Spring java framework, factories?, etc). I haven't done much of any java programming before so perhaps that green element is adding to the confusion. For example purposes, I have four main cases of functionality I'd like to get my head around: 1) Login - User provides username / password, system provides a unique ID from the database if they are correct, or a null / error code if not. 2) Register - Validated user input passes object to create new user. 3) Display Contacts - Users unique ID passed to method to return complete contact details. 4) Edit Contact Info - User unique ID and updated object data provided to back-end for update. Returns updated contact. I've tried PHP / RPC-XML and can get some functionality out of that, but the java remote object route sounds to be the 'more better' solution and also something a larger % of our company can support once we get past the 'stumbling in the dark RD' phase. I understand a lot of the reasons for OO to decouple functionality to the extent that they do, but when I compare what ASP / PHP / etc of non-RIA applications used to handle with database connectivity right in the code, it seems like there is a heck of a lot of overhead just to accomplish basic tasks. Thx, Jamie
[flexcoders] Extending Flex Web Services with WS-Security (WSS4J)
WS-Security is not supported by Flex out of the box. Has anyone tackled this, or if not could someone give a high-level view of how they might accomplish this? I can't seem to create a user in the Adobe forums to post it to find out if this might be added in upcoming support point release??? My thoughts on topic: 1) Manual creation of the SOAP Headers will not work because the token has a set expiration time based on timestamp, username, password. Building that logic up in the client app would expose the credentials in the .swf. 2) Using Axis to create a proxy of the true WS-Secure web service might be viable, but seems dumb to create a web service wrapper for an already exposed web service. Plus, my knowledge on the java side is limited and the googles on Eclipse WTP and doing this haven't yielded much more than a headache. 3) With the FDS Plugin facet for Eclipse WTP in theory I can code both java and mxml / as3 into one. If that is the case could I write a component (SecureWS) to extend mx.rpc.soap.WebService to add the WSS4J functionality I'm after. The user / pass parameters would then be stored as part of the named proxy service on FDS. Everything secure and connective. Also something I'd happily share back to the community if I can get some help on how I'd tackle #3. Thx, Jamie [Thread History] In a previous thread that was in danger of being fragmented, Seth Hodgson wrote, WSSAddUsernameToken is part of the WSS4J API that implements the OASIS WS-Security spec. The Flex web service stack on the client doesn't currently support WS-Security out of the box, but WS-Security is based on SOAP headers and you could probably build these manually. Perhaps someone on the list has tackled this and has code to share? It was in response to my question, One of the next web services I'm looking to integrate uses a username / password to create token via WSSAddUsernameToken. Its package is org.apache.ws.security.message. Or so the co-worker who has built connectivity to that out through J2EE tells me. Each client system connects with it's own user / pass combo. So I believe I should be able to write these into the named proxy web service connection (having issue with that also, put a separate post out for it) on FDS to be secure.
[flexcoders] FDS Environment Challenge Questions!
Hello, After a laborious day of uninstalling, re-installing, washing, rinsing, repeating, I finally have my eclipse environment setup with WTP, Java 1.5 and the FDS Plugin Project Peter Martin created. The directory structure seems to make more sense to me, but have raised a couple of questions in my brain - some of which are general Flex / FDS, others are specific to WTP / Tomcat implementation: 1) Without using Peter's FDS Plugin, what is the easiest way to deploy a FDS-enabled project as http://localhost:8080/ or http://localhost:8080/ProjectName/? Every example I've been able to find has it coming out of the flex.war as http://localhost:8080/Flex/ProjectName/ 2) When deploying using FDS compile on server option, how can you configure your server to acknowledge http://localhost:8080/HelloWorld/Main.mxml when http://localhost:8080/HelloWorld/ is accessed? Default .mxml parameters? I'd figure to use the index.htm with presentation similar to the template when using a non-FDS enabled version but unclear where to point the embed items to. 3) FDS Plugin Specific - How *should* one break down their content w.r.t the directory structure provided? I was able to create a simple sample (one event class, one valueobject, two component .mxml views called from the Main.mxml. The only way I was able to get any to work was with everything nested within sub-directories of the WebContent folder. I'd expect I could use the [source_path]user_classes for .swc but it didn't seem to play nice with pure .as files. 4) Same question as #3 but expand your example answer for a Cairngorm-ified project. 5) How to turn all this into a deployable .war or .ear file on a non-development machine? This is more a general java question but figured I'd press my luck like that old tv show and make it a 5 pack o' questions. Thx, Jamie
[flexcoders] Re: how many the classes of flex?
All your class are belong to flex? :P --- In flexcoders@yahoogroups.com, songhuanren [EMAIL PROTECTED] wrote: how many the classes of flex? ha.ha.
[flexcoders] Re: Announcing FlexSearch.org !
I had built one myself when CSE first came out. The issue I had then was the number of blogs out there which regular google would turn up that mine would not because I had not added them seemed significant enough to ditch it. I think having one person clean / control the list is invaluable to prevent duplication of efforts, etc. If there were an 'Request URL XYZ to be added' button / page, it would probably help the content collection process. Speaking of which - www.oastler.ca has my blog, RSS for Flex-related items at http://www.oastler.ca/index.php/development/flex/feed/ Cheers, Jamie --- In flexcoders@yahoogroups.com, Andrew Trice [EMAIL PROTECTED] wrote: Good work. I think it could benefit from a search option that is a combination of forums, blogs and LiveDocs, which could be the default view. I did a search, and the first thing I thought was why does this only show forum answers?. -Andy www.cynergysystems.com From: flexcoders@yahoogroups.com on behalf of Clint Modien Sent: Thu 11/30/2006 7:55 AM To: flexcoders@yahoogroups.com Cc: Ben Lucyk Subject: [flexcoders] Announcing FlexSearch.org ! I created an aggregation of developer content searchable via a few Google custom search engines (CSE) to help the development community find the answers to questions quicker. It's located at: http://flexsearch.org http://flexsearch.org/Feedback appreciated. I want to be clear that this is a community based project. I'll be posting the site list in xml format so that you can see what sites are in and what sites aren't in. That way I can get feedback on what other sites the CSE should be aggregating. Basically... If you hate it tell me why. I'll fix it. If you love it tell me why we'll keep it that way. You can tell me why via the blog. If you have ideas post comments on the blog I setup @ http://blogs.flexsearch.com http://blogs.flexsearch.com/ Thanks! Clint Modien http://esria.com http://esria.com/ p. 1.877.TRY.ESRIA ext 706 c. 1.408.489.0750 f. 1.877.828.4436 [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
[flexcoders] Re: need help about setup webservice in FDS
http://www.everythingflex.com/blog/1/2006/03/WebService-setup-for-FES.cfm and http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=60catid=583threadid=1177997highlight_key=ykeyword1=proxy both chronicle the solution, but I'll admit it even took me a while to see what was the source of my issue. In order to access the named services you must chose the project option to build your files on the server. If you build locally it doesn't see the named connection. Although the everythingflex article claims If you wish to use a named service within FlexBuilder (non FDS application) you will need to add an argument to your Flex Compiler arguments under the project properties: mxmlc --services=./mypath/to/flex-enterprise-services.xml etc I haven't tested. But my issue was resolved by building on server. Hope yours does too. --- In flexcoders@yahoogroups.com, Jamie O [EMAIL PROTECTED] wrote: I have had an identical issue that I'm unable to resolve. Here are the 4 samples I've tried in my proxyConfig.xml file: destination id=DefaultHTTP properties dynamic-urlhttp://URLGOHERE/WS.asmx?WSDL/dynamic-url /properties /destination destination id=Sample0 properties dynamic-urlhttp://URLGOHERE/WS.asmx?WSDL/dynamic-url /properties /destination destination id=Sample1 properties wsdlhttp://URLGOHERE/WS.asmx?WSDL/wsdl soap*/soap /properties adapter ref=soap-proxy/ /destination destination id=Sample2 adapter=soap-proxy properties wsdlhttp://URLGOHERE/WS.asmx?WSDL/wsdl soaphttp://URLGOHERE/WS.asmx?WSDL/soap /properties /destination destination id=Sample3 adapter=soap-proxy properties wsdlhttp://URLGOHERE/WS.asmx?WSDL/wsdl soaphttp://URLGOHERE/WS.asmx?WSDL/soap /properties channels channel ref=my-amf/ /channels /destination I've tried with the soap-proxy as default=true and the general state. When I call the URL direct from a web service it does work. As soon as I try to do the named proxy approach, it fails. What am I missing??? I bet it's obvious :( Jamie --- In flexcoders@yahoogroups.com, nmsflex nmsflex@ wrote: i have .net web service api example http://190.100.1.102/ws/Service.asmx wsdl address: http://190.100.1.102/ws/Service.asmx?WSDL is anyone can show me how to set up webservice in fds to access my .net web service api if configure flex-proxy-service.xml by adding destination id=myWS adapter=soap-proxy properties wsdlhttp://190.100.1.102/ws/Service.asmx?WSDL/wsdl soaphttp://190.100.1.102/ws/Service.asmx/soap /properties channels channel ref=my-amf/ /channels /destination but i still get error when i run my app Error: can not send and can not load success wsdl Thanks
[flexcoders] Re: need help about setup webservice in FDS
I have had an identical issue that I'm unable to resolve. Here are the 4 samples I've tried in my proxyConfig.xml file: destination id=DefaultHTTP properties dynamic-urlhttp://URLGOHERE/WS.asmx?WSDL/dynamic-url /properties /destination destination id=Sample0 properties dynamic-urlhttp://URLGOHERE/WS.asmx?WSDL/dynamic-url /properties /destination destination id=Sample1 properties wsdlhttp://URLGOHERE/WS.asmx?WSDL/wsdl soap*/soap /properties adapter ref=soap-proxy/ /destination destination id=Sample2 adapter=soap-proxy properties wsdlhttp://URLGOHERE/WS.asmx?WSDL/wsdl soaphttp://URLGOHERE/WS.asmx?WSDL/soap /properties /destination destination id=Sample3 adapter=soap-proxy properties wsdlhttp://URLGOHERE/WS.asmx?WSDL/wsdl soaphttp://URLGOHERE/WS.asmx?WSDL/soap /properties channels channel ref=my-amf/ /channels /destination I've tried with the soap-proxy as default=true and the general state. When I call the URL direct from a web service it does work. As soon as I try to do the named proxy approach, it fails. What am I missing??? I bet it's obvious :( Jamie --- In flexcoders@yahoogroups.com, nmsflex [EMAIL PROTECTED] wrote: i have .net web service api example http://190.100.1.102/ws/Service.asmx wsdl address: http://190.100.1.102/ws/Service.asmx?WSDL is anyone can show me how to set up webservice in fds to access my .net web service api if configure flex-proxy-service.xml by adding destination id=myWS adapter=soap-proxy properties wsdlhttp://190.100.1.102/ws/Service.asmx?WSDL/wsdl soaphttp://190.100.1.102/ws/Service.asmx/soap /properties channels channel ref=my-amf/ /channels /destination but i still get error when i run my app Error: can not send and can not load success wsdl Thanks
[flexcoders] Re: role based security vs session based security with a servlet container
Just like Red Two in Star Wars Episode 3 I'll try to Stay on Target Stay on Target and not hijack this thread. Like Hank I'm sometimes feeling the 'newb' factor. One of the next web services I'm looking to integrate uses a username / password to create token via WSSAddUsernameToken. Its package is org.apache.ws.security.message. Or so the co-worker who has built connectivity to that out through J2EE tells me. Each client system connects with it's own user / pass combo. So I believe I should be able to write these into the named proxy web service connection (having issue with that also, put a separate post out for it) on FDS to be secure. Is this the 'J2EE auth' of which you speak? From my googles it seems a fairly standard approach, still lost on the FDS side as to how to integrate such things. Thx, Jamie --- In flexcoders@yahoogroups.com, Seth Hodgson [EMAIL PROTECTED] wrote: Hi Hank, How do you do your logins now against your account database? You're not using general J2EE auth? Role based security in FDS just wraps the existing J2EE auth machinery provided by your app server. You can code your login UI in your Flex app and before any calls or data exchange are permitted through a protected destination authentication will be performed automatically using the credentials you've specified via setCredentials(). You add a security constraint to a destination like so (only users who are members of the 'admin' role are allowed access in this case): destination id=... security security-constraint ref=admins / /security ... /destination The actual authentication is performed via an app server specific login command class. FDS ships with implementations for all supported servers. The command class to use is specified in the security section of the core config file like so: security login-command class=flex.messaging.security.JRunLoginCommand server=JRun/ ... I'd recommend using J2EE auth as opposed to trying to role some other custom approach. When security is involved it's really best to use existing libraries and frameworks that have been heavily tested (J2EE auth for instance), because bugs in this area tend to be more dangerous than bugs in your UI code. HTH, Seth From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of hank williams Sent: Tuesday, November 28, 2006 10:01 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] role based security vs session based security with a servlet container I am trying to figure out the best way of implementing security authentication. I am using tomcat, and FDS at the moment for remoting. My server side code is obviously in java. A while back, role base security was recommended as the way to implement security. The idea being that if someone did not have the right credentials that they would be prevented from gaining access to the flex app. But my problem with this is that I want to do my authentication UI *in* flex, so I can't prevent people from getting to it before I have had a chance to authenticate. Another problem with the role based stuff is that, as I understand it, roles are maintained by the container. I am not clear how to use my account database (JDBC/Mysql) in this process. What seems easier to me is using sessions, because I can, from any server side function, request the current session of the given user. I can look to see if their session is valid, how long they have been logged on, etc. And using this methodology, I can do login in the flex application, which just sends a login message to the server, the server adds a record to my session record that indicates that I am logged in and when I logged in. This second approach seems like the best approach and the one that gives me the most flexibility. But I am looking for validation regarding my approach here. Am I doing something wrong here? Are there some reasons that the role based security would be better? Any insight from people better versed in security than I am would be greatly appreciated. Hank
[flexcoders] Re: Securing WebServices
I'm running into a few similar issues and curious what the most knowledgeable minds in the group have to say. My understanding at this point says that Cairngorm gives you the service locator and other framework aspects you're seeking, but Flex Data Services is really where the best security solutions lie at this point. Creating a named proxy service destination in FDS that is referenced in your service on the client side. The actual WS URL is not exposed for decompilation risk, and your crossdomain.xml would doubly ensure only the clients / environments you intend access. Jamie --- In flexcoders@yahoogroups.com, Sebastian Zarzycki [EMAIL PROTECTED] wrote: What kind of standards does Flex2 web services implementation support? Which version of Soap, any WS- Standards? I'm trying to solve basic problem of securing access to my webservice on server. I would like to use WS-Security standard, but I'm afraid, there's no way for Flex to send proper request? Simple webservice support in Flex may be not enough in the future... Is this a matter of just writing some additional AS3 classes to extend WS, or the internal flash/flex design? How to solve such problem then? What is your solution? Most obvious one that comes to my mind is to ask server for login, server generates token for client, and client uses his token. But this means that I have to add this token parameter to *every* webservice method. This is not acceptable, as I want (in fact, my customer wants) my services to be free of such things. Authorization should be transparent (but flexible). Then again I could have one big thing, ServiceLocator or something like that, so that every client request will point to this one (so authorization is in one place), with real service name as parameter. This is even harder to implement. So, any ideas? -- | Sebastian Zarzycki / rat[tkin]
[flexcoders] Re: Can I have an image on every datagrid row
Example: mx:DataGrid dataProvider={dataSource} rowHeight=40 dragEnabled=true height=140 mx:DataGridColumn headerText=Image dataField=image mx:itemRenderer mx:Component mx:Image source={data.image}/ /mx:Component /mx:itemRenderer /mx:DataGridColumn /mx:DataGrid --- In flexcoders@yahoogroups.com, arpan srivastava [EMAIL PROTECTED] wrote: Hi Can I have an image on every datagrid row. I used Image class but, I cannot add the image object into a FlexShape of which my datagrid row is made.
[flexcoders] Flex Data Services / Eclipse / Tomcat - Installation Guide
Just when the learning curve felt like it was starting to taper off - likely a minor slope change - I decided to put another 1/2 dozen technologies into the mix just to challenge myself. No really, doing this WILL allow me to do complete end-to-end development from database to middleware to front-end. I thought my learnings might be valuable for a few others out there in Flexcoder land. Don't let this be construed as saying I yet fully comprehend all of what I've managed to do, just that I've hooked up the pieces and it seems to work as a foundation. Several posts on FlexCoders lead me to believe this is a non-obvious process - which I can believe. So if you are interested, I've put together a blog post - http://www.oastler.ca/index.php/flex/20061123_flex-data-services-with-myeclipse-tomcat/ - with the details on what I've managed to do. The post covers the following installations: - Java Dev Kit 1.4.2.13 - The foundation upon which all of my future pain will be built. - Eclipse 3.1.2 - Same version as the Flex IDE was based on is required. - MyEclipse 4.1.1 - Not exactly sure why I need this, but co-workers indicate it will help. - Flex 2 Eclipse Plug-In - Just another installation of Flex 2 as the plugin for Eclipse. - Tomcat 5.5.20 - I thought this came with MyEclipse, only the ability to connect does. - Flex Data Services - Install without the integrated JRun option, as a series of .war files. - Connect the dots, la, la, la. Cheers, Jamie
[flexcoders] Data Driven Method Calls / Change Watcher
Hello, While Occam's Razor may posit that, one should embrace the less complicated formulation, it provides no basis for understanding how to develop that least complicated solution. If you want to call a method of a component when the content of a particular variable that is bound to by a public property within that component changes, use a ChangeWatcher. I've wrote a more detailed blog entry (http://www.oastler.ca/index.php/flex/20061116_data-driven-method-calls-change-watcher/) on the topic for those who are finding it difficult to isolate the component without taking all the spaghetti code with it. This is what the message thread - http://tech.groups.yahoo.com/group/flexcoders/message/56103 - was dealing with. As I run into additional challenges and find solutions for them, I'll share my knowledge at http://www.oastler.ca/index.php/category/flex/ Cheers, Jamie
[flexcoders] Encapsulating Components Tutorial
Hi, I've put together a tutorial on how to create .swc components in Flex 2 using the Flex Library Project type at http://www.oastler.ca/index.php/flex/20061116_encapsulating-components-libraries-swcs/ For those on the learning curve of discovering Flex 2, fear not...There are others out there who have shared in your struggles and are trying to share our knowledge. If you have resources / ideas to share, make sure to post them. All of my flex related blog learnings can be found at http://www.oastler.ca/index.php/category/flex/ Cheers, Jamie
[flexcoders] Manipulating ComboBox.selectedItem issues
I have two combo boxes listening to array collections for their data providers. When the user selects one entry in the first combo box, the eventHandler on first combo box change() event will drive what data should be populated into the array collection for the other combo box. That part all works fine, code snippets are below. Everything I've managed to find on using ComboBox.selectedItem has been a .data or .label or LabelFunction sample and simplistic. What happens when you have multiple data elements within the entry of an AC which is dataprovider for a combobox? How come the labelFunction can return the unique element but I can't access those unique elements for selectedItem? mx:ComboBox id=cmbNumber width=100 left=10 top=15 prompt=Select change=PrepareAddress() dataProvider={Content.acStreetNumbers}/ mx:ComboBox id=cmbStreet width=200 left=118 top=15 prompt=Select labelFunction=drawStreet change=StreetHandler() dataProvider={Content.acStreetNames}/ private function StreetHandler():void { Content.acStreetNumbers.removeAll(); for each (var numberRangeXML:XML in SourceXML.Street.(@Name == cmbStreet.selectedItem.streetname).NumberRange) { var i:int; for (i = int([EMAIL PROTECTED]); i = int([EMAIL PROTECTED]); i = i + 1) { Content.acStreetNumbers.addItem(i); } } } Here's the loop I use to populate the Content.acStreetNames array: for each (var streetXML:XML in SourceXML.Street) { var newStreet:Object = new Object(); newStreet.streetlabel = [EMAIL PROTECTED] + + [EMAIL PROTECTED] + + [EMAIL PROTECTED]; newStreet.streetname = [EMAIL PROTECTED](); newStreet.streettype = [EMAIL PROTECTED](); newStreet.streetdir = [EMAIL PROTECTED](); Content.acStreetNames.addItem(newStreet); } My labelFunction 'drawStreet' picks up the streetlabel variable just fine. The issue I have is that in another use case for this component, I want to pre-populate what is displayed in the fields. I can make cmbStreet.text and cmbNumber.text include the data, but that's a hack because it isn't truly driven on the underlying data. As a result if you look into the drop-down for cmbNumber you won't see any entries. cmbStreet.selectedLabel is read-only so can't be modified for my use. Modifying cmbStreet.selectedItem with data I know is in the underlying AC does not seem to trigger the effect. Modifying cmbStreet.selectedItem.streetname - what I would have expected to work - gets me a Error #1009: Cannot access a property or method of a null object reference. on execution. Even building an entire object to use against selectedItem doesn't work.
[flexcoders] Re: cairngorm: calling a function in a view
My view has a SWC component within it, so parsing the XML in the command or anywhere within the program is not an option. I pass the XML to the component and call it's parseXML method() to have it update. I did manage to find another thread much earlier in this discussion that - although not recommended from an encapsulating code best practices point of view - temporarily resolves my issue. In my command I execute the views component method directly: Application.application.viewstackNameHere.getChildByName(viewNameHere).ComponentID.ParseXML(); Later on, I'll get some consulting time with someone smarter in the ways of cairngorm and Flex than myself to help re-factor the code and post the 'proper' method to this. From what I've read it is an issue for a number of others. Thanks, Jamie -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: ItemRenders with Lists / Nested Array Objects
Found my own answer. I posted summary and code snippets at http://www.oastler.ca/index.php/flex/20061107_getting-a-little-rr-repeaters-renderers/ Late night issue = easy early morning solution :) -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: cairngorm: calling a function in a view
I believe Observe / Value is what I want to use for a current challenge, but try as I might, I just cannot seem to wrap my head around it. Hoping someone could take another kick at the cat to explain it in context of the following situation: My component (SWC) is defined inside a view and has a public property that is databound to my modelLocator for it's XML source. When the right data conditions are met internally it broadcasts an addressEvent with all user selected data. pcall:pcall id=PointofCall left=10 top=50 postcodeXML={ModelLocator.getInstance().PointOfCall.postcodeXML} AddressEvent=AddressEventHandler(event) / When the user provides input data, I broadcast a search event and receive the updated XML from the services / delegator. There is a public method - currently titled Update() - in the component to parse the XML and build up it's display accordingly. Within the view I can bind a button to that Update() function and the parsing goes smooth. mx:Button x=333 y=10 label=Button click={PointofCall.Update()}/ But the problem is that I only know when the data is updated in the onResult method of my command that sent the data off in the first place. How do I - in a command - trigger the method of a component on a view? Thanks, Jamie --- In flexcoders@yahoogroups.com, Tim Hoff [EMAIL PROTECTED] wrote: Hi Alex, Thank you very much for addressing this topic in your blog. Using observe and ObserveValue seems much cleaner than viewLocator/viewHelper; more direct and less classes. Your examples illustrate a very useful technique for manipulating local view states through binding. I wasn't however, able to view the source for Iteration6. It shows a partial listing of the application mxml class, but no other classes and download options. Kudos, -TH -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: cairngorm: calling a function in a view
I'm sorry, I think you might have just broke my brain :( Or maybe my grasp on Cairngorm isn't quite as strong as I thought it. The root of my understanding is based on Jesse (JesterXL)'s example with quite a few modifications. I built the parse() method inside the component as it would get into nested arrays and storing a lot of variables in the global program that don't have value to do it the other way. Plus, from an OO perspective I think that is more sound, I can give the SWC to another developer along with sample XML format to provide to it. Make sense no? Part of this may be the 'many ways to skin a cat' challenge that Cairngorm is more a frame on which to hang your code rather than something that forces you to program in a particular manner. Any samples of methods on the model and calling components / their getters / setters from views would be valuable. Thx, Jamie --- In flexcoders@yahoogroups.com, Bjorn Schultheiss [EMAIL PROTECTED] wrote: Ideally your pase() method should be on the model, with the view only used to render passed data via databinding the parsed value from the model to the dataprovider of the view. Regards, Bjorn Schultheiss Senior Flash Developer QDC Technologies From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Jamie O Sent: Wednesday, 8 November 2006 9:57 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: cairngorm: calling a function in a view I believe Observe / Value is what I want to use for a current challenge, but try as I might, I just cannot seem to wrap my head around it. Hoping someone could take another kick at the cat to explain it in context of the following situation: My component (SWC) is defined inside a view and has a public property that is databound to my modelLocator for it's XML source. When the right data conditions are met internally it broadcasts an addressEvent with all user selected data. pcall:pcall id=PointofCall left=10 top=50 postcodeXML={ModelLocator.getInstance().PointOfCall.postcodeXML} AddressEvent=AddressEventHandler(event) / When the user provides input data, I broadcast a search event and receive the updated XML from the services / delegator. There is a public method - currently titled Update() - in the component to parse the XML and build up it's display accordingly. Within the view I can bind a button to that Update() function and the parsing goes smooth. mx:Button x=333 y=10 label=Button click={PointofCall.Update()}/ But the problem is that I only know when the data is updated in the onResult method of my command that sent the data off in the first place. How do I - in a command - trigger the method of a component on a view? Thanks, Jamie --- In flexcoders@yahoogroups.com mailto:flexcoders%40yahoogroups.com , Tim Hoff TimHoff@ wrote: Hi Alex, Thank you very much for addressing this topic in your blog. Using observe and ObserveValue seems much cleaner than viewLocator/viewHelper; more direct and less classes. Your examples illustrate a very useful technique for manipulating local view states through binding. I wasn't however, able to view the source for Iteration6. It shows a partial listing of the application mxml class, but no other classes and download options. Kudos, -TH -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: A navigation question.. best practise?
I've done what Bjorn recommends for a project and have a follow-up $0.02 or question. I created an event type NavigateURL which I broadcast from the event handlers for my buttons in the views. The command for this event type then updates my modelLocator property (app_State). Question is...Is this a case of loose coupling overkill or a worthwhile process??? The Command code: package com.post.commands { import com.adobe.cairngorm.business.Responder; import com.adobe.cairngorm.commands.Command; import com.adobe.cairngorm.control.CairngormEvent; import com.post.model.ModelLocator; public class NavigateCommand implements Command, Responder { public function execute(p_event:CairngormEvent):void { trace(NavigateCommand::execute function, p_event.type: + p_event.type); switch(p_event.type) { //Redirect the user to the Intro view - Intro.mxml case NavigateEvent.NAVIGATE_INTRO: ModelLocator.getInstance().app_state = ModelLocator.STATE_INTRO; break; //Redirect the user to the Register view - Register.mxml case NavigateEvent.NAVIGATE_REGISTER: ModelLocator.getInstance().app_state = ModelLocator.STATE_REGISTRATION; break; //Redirect the user to the Login view - Login.mxml case NavigateEvent.NAVIGATE_LOGIN: ModelLocator.getInstance().app_state = ModelLocator.STATE_LOGIN; break; } } And the event itself: package com.post.events { import com.adobe.cairngorm.control.CairngormEvent; public class NavigateEvent extends CairngormEvent { public static var NAVIGATE_INTRO:String = navigateIntro; public static var NAVIGATE_LOGIN:String = navigateLogin; public static var NAVIGATE_REGISTER:String = navigateRegister; public var strUser:String; public var strPass:String; public function NavigateEvent(p_NavType:String) { //Constructor function which receives the Navigation Type //from the view calling the event via the controller. //Results in a separate function in the NavigateCommand executing. super(p_NavType, false, true); } } } Add the events / command association in the controller: addCommand(NavigateEvent.NAVIGATE_REGISTER, NavigateCommand); addCommand(NavigateEvent.NAVIGATE_LOGIN, NavigateCommand); addCommand(NavigateEvent.NAVIGATE_INTRO, NavigateCommand); --- In flexcoders@yahoogroups.com, bjorn.schultheiss [EMAIL PROTECTED] wrote: Hi Michelle, Have a go at using the viewStack container. create a property:Number in your modelLocator and bind the selectedIndex property of your viewstack to the property on your model Locator. for example mx:ViewStack selectedIndex={ModelLocator.getInstance().currentViewIndex} check out some of the examples on Alex Ulhmanns blog or try cairngormdocs.org :) Bjorn --- In flexcoders@yahoogroups.com, Michelle Grigg michellejg@ wrote: Greetings, I am having a bit of a problem working out exactly how to navigate through my application which will be using the Cairngorm 2 architecture. It currently has the following views: a Login page, a Task List, a Task and a Finish page. The task list can have any where up to 8 tasks displayed so the user will be switching between Task List and Task quite often. The flow between these views will be accessed through button events (ie, login button, or a start button to start the task etc). There will be only one View shown to the user at any one time. I hope that all makes sense. Anyhoo. I have read about both the ModelLocator and also ViewHelper/ViewLocator, and am yet to have that warm and fuzzy moment where everything just suddenly makes sense, and thus know which is to be used where. So my question: What would be the best way to go about handling the change of Views within this application? Thanks in advance, Michelle -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] ItemRenders with Lists / Nested Array Objects
Trying to use a list and ItemRenderer to display output of a HTTPService called XML file. The issue is that the XML can have between 1 - 3 'Date' nodes and 1 - 3 'Location' nodes per 'Show'. I think some sort of repeater / loop is required but my attempts thus far have not gone well. The source included does display all the data to the screen, just in a fugly manner. If someone can offer tips on the itemRepeater process for lists, most of what I've seen is pointed for dataGrids and I've been unable to repurpose. -- XML Source: -- Shows Show Title=Name here Date Time=January 30, 2006 - 10am to 5pm/ Date Time=January 31, 2006 - 11am to 3pm/ Location Place=Building/ Location Place=City, Prov/ /Show /Shows -- onResult function: -- public function onResult(event:*=null):void { var ShowsXML:XML = new XML(event.result); trace (ShowsXML); for each (var Show:XML in ShowsXML.Show) { var newShow:ShowVO = new ShowVO(); newShow.Title = [EMAIL PROTECTED]; for each (var ShowDates:XML in Show.Date) { newShow.Dates.addItem([EMAIL PROTECTED]); } for each (var ShowLocations:XML in Show.Location) { newShow.Locations.addItem([EMAIL PROTECTED]) } ModelLocator.getInstance().Shows.addItem(newShow); } } -- ShowVO Package: -- import mx.collections.ArrayCollection; [Bindable] public class ShowVO { public var Title:String = new String(); public var Dates:ArrayCollection = new ArrayCollection(); public var Locations:ArrayCollection = new ArrayCollection(); } -- Main .mxml: -- mx:VBox label=Shows amp; Tours width=100% height=100% mx:Text width=100% text=You can find us here: textAlign=center color=#ff/ mx:List id=myList rowHeight=75 width=100% height=100% itemRenderer=renderers.ShowTour dataProvider={ModelLocator.getInstance().Shows}/ /mx:VBox -- renderers.ShowTour: -- mx:VBox xmlns:mx=http://www.adobe.com/2006/mxml; horizontalAlign=center mx:Label text={data.Title} textAlign=center fontStyle=bold/ mx:Label text={data.Dates} textAlign=center fontStyle=italic/mx:Label text={data.Locations} textAlign=center/ /mx:VBox -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: Why shouldnt you use a specific event type for a command.execute in cairngor
If you have one 'Search' event being broadcast from a view that can search in multiple ways depending on user interaction, perhaps it's searching different resources depending on a radio button perhaps? Then you could use the same broadcast event and evaluate the event data to call different services accordingly. I have one 'Navigate' event that the majority of my views call and pass a constant within that so the command picks that out and updates my model app_State as a result. The main view stack monitors that state. Keeps the views clean of any data manipulation. --- In flexcoders@yahoogroups.com, Rick Schmitty [EMAIL PROTECTED] wrote: Thanks for the replies, appreciate it. Could you give a for example of a command that would handle different types of events? I'm thinking of a command as a specific task (which in my world..so far.. has been a specific event) I think I have some tunnel vision here... -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: Hide tabs in tabBar
I was able to do the equivelent of what you're trying to do via a TabBar and separate viewstack by making the selected child of the stack visible = false, but not your specific challenge. The .show event was valuable for that. This is one I'd also like to see answered! J --- In flexcoders@yahoogroups.com, KP [EMAIL PROTECTED] wrote: Well I have a TabNavigator which contains 3 tabs on basis of some condition I want to hide two tabs and show only one tab. Although I can disable them but not hide them.the visible property does not work it seems. Can some one show me some kind of approach on this one. Cheers Kumar -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: Cairngorm / Webservice / E4X XML Output
Yes, it displays XML and cannot access nodes. Here's the heading elements of the returned XML from a trace: PostalCodeLookupResponse xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:xsd=http://www.w3.org/2001/XMLSchema; xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/; xmlns=[CorporateNSAddressRemoved] PostalCodeLookupResult Value=K7M 6B2 ProvinceCode=ON Municipality Name=KINGSTON . /Municipality /PostalCodeLookupResult /PostalCodeLookupResponse I have been able to reference via postalcodeXML.*::[EMAIL PROTECTED] but when I have to put the wildcard and result and such on every node it seems kind of laborious. I figured there would be a way to make the default hold up which I haven't yet managed. --- In flexcoders@yahoogroups.com, ben.clinkinbeard [EMAIL PROTECTED] wrote: Does the Alert.show(postcodeXML) display the xml and you're just not able to get nodes within it? Does the returned xml contain namespaces? If you can post the resulting xml and the code you're using to try and access individual nodes it will be easier to diagnose your issue. Ben --- In flexcoders@yahoogroups.com, Jamie O jamie.oastler@ wrote: I've tried pretty much every sample I can find out there on the interweb and just can't seem to get things to play nice with my web service to allow me to get at individual nodes / elements using E4X. If anyone can suggest something, it would be REALLY appreciated. I've got: -an event broadcasting to the controller (not shown) working fine. -execute the search command (not shown) working fine. -executing the webservice request (shown) working fine. -receiving the webservice response (shown) working fine. -Accessing specific nodes / attributes in the response not working! -If I use a HTTPService to a direct XML file, e4x is ok. [SERVICE DEFINITION MXML] mx:WebService id=addressWSService wsdl=[RemovedPath]?WSDL makeObjectsBindable=false showBusyCursor=true useProxy=false mx:operation name=PostalCodeLookup resultFormat=e4x mx:request PostalCode K7M6B2 /PostalCode /mx:request /mx:operation /mx:WebService [DELEGATE DEFINITION ACTIONSCRIPT] service = ServiceLocator.getInstance().getService(addressWSService) as WebService; public function LocateAddress(p_PostalCode:String):void { service.addEventListener(ResultEvent.RESULT, LocateAddress_onResult); service.addEventListener(FaultEvent.FAULT, LocateAddress_onFault); var o:AbstractOperation = service.getOperation(PostalCodeLookup); o.arguments.PostalCode = p_PostalCode; service.PostalCodeLookup(); } protected function LocateAddress_onResult(event:ResultEvent):void { trace(AddressWSDelegate::LocateAddress_onResult); responder.onResult(new ResultEvent(ResultEvent.RESULT, false, true, event.result)); } [SEARCH COMMAND ACTIONSCRIPT] protected function searchPostalCode(p_postalcode:String):void { getDelegate().LocateAddress(p_postalcode); } protected function getDelegate():AddressWSDelegate { return new AddressWSDelegate(this); } public function onResult(event:*=null):void { trace(SearchCommand::onResult); var postcodeXML:XML = new XML(event.result); Alert.show(postcodeXML); } Overall the structure of this app is pretty close to Jesse Wardens Amazon sample but that one goes to an array rather than working with e4x which I would like to. -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Cairngorm / Webservice / E4X XML Output
I've tried pretty much every sample I can find out there on the interweb and just can't seem to get things to play nice with my web service to allow me to get at individual nodes / elements using E4X. If anyone can suggest something, it would be REALLY appreciated. I've got: -an event broadcasting to the controller (not shown) working fine. -execute the search command (not shown) working fine. -executing the webservice request (shown) working fine. -receiving the webservice response (shown) working fine. -Accessing specific nodes / attributes in the response not working! -If I use a HTTPService to a direct XML file, e4x is ok. [SERVICE DEFINITION MXML] mx:WebService id=addressWSService wsdl=[RemovedPath]?WSDL makeObjectsBindable=false showBusyCursor=true useProxy=false mx:operation name=PostalCodeLookup resultFormat=e4x mx:request PostalCode K7M6B2 /PostalCode /mx:request /mx:operation /mx:WebService [DELEGATE DEFINITION ACTIONSCRIPT] service = ServiceLocator.getInstance().getService(addressWSService) as WebService; public function LocateAddress(p_PostalCode:String):void { service.addEventListener(ResultEvent.RESULT, LocateAddress_onResult); service.addEventListener(FaultEvent.FAULT, LocateAddress_onFault); var o:AbstractOperation = service.getOperation(PostalCodeLookup); o.arguments.PostalCode = p_PostalCode; service.PostalCodeLookup(); } protected function LocateAddress_onResult(event:ResultEvent):void { trace(AddressWSDelegate::LocateAddress_onResult); responder.onResult(new ResultEvent(ResultEvent.RESULT, false, true, event.result)); } [SEARCH COMMAND ACTIONSCRIPT] protected function searchPostalCode(p_postalcode:String):void { getDelegate().LocateAddress(p_postalcode); } protected function getDelegate():AddressWSDelegate { return new AddressWSDelegate(this); } public function onResult(event:*=null):void { trace(SearchCommand::onResult); var postcodeXML:XML = new XML(event.result); Alert.show(postcodeXML); } Overall the structure of this app is pretty close to Jesse Wardens Amazon sample but that one goes to an array rather than working with e4x which I would like to. -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Google Flex Development Search Engine
Hello, Google just deployed a new 'co-op' search engine feature. Basically you setup a unique list of websites you want search results to be pulled from. I've created a new one focused on Flex 2, Cairngorm and related RIA development. Initially it has most of the major blogs, flexcoders, adobe sites, but is setup that anyone can sign-up as a collaborator and add sites to it which they think are useful. http://www.google.com/coop/cse?cx=002320952290770987034%3Adnutgprjrk8 I find google a pretty good tool for searching for code samples, examples, etc but it usually gets a bit of marketing speak drowning out the actual stuff I want. This is a way for the community to grow a Flex specific search engine for free. Feel free to add to it and use. Cheers, Jamie -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: More Documentation of Cairngorm and Flex Cairngorm Store
Hey, Does anyone know where these links might reside beyond the www.richinternetapps.com site which I've been unable to get a response from for the last couple of days? I've read the 6-part series and *think* I *get* Cairngorm, but getting the first sample(s) up and running has posed a little challenge as yet. I don't want to use FDS at the moment which prohibits the Store 2 sample I believe. Thx, Jamie --- In flexcoders@yahoogroups.com, Steven Webster [EMAIL PROTECTED] wrote: Flex and Cairngorm Deconstructed: Cairngorm Store (Part 1) http://www.richinternetapps.com/archives/000118.html Flex Cairngorm Store (Part 2) - Installation Guide http://www.richinternetapps.com/archives/000119.html http://www.richinternetapps.com/archives/000119.html Flex Cairngorm Store (Part 3) - Discussion of Business and Integration Tier http://www.richinternetapps.com/archives/000120.html -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: Get Tab from TabBar?
If the tabbar is bound to the viewstack as a dataprovider, you can manipulate properties of the tabbar / tab based on what the currently selected child in the viewstack is. I'm using a similar approach to set the style of the selected tab so that it's background colour matches the selected child when the show event fires I call a function which executes the following: tbNavigate.setStyle(tabStyleName,tab + vsContent.selectedChild.id); That same approach should allow you to manipulate the tab / data that you want no? --- In flexcoders@yahoogroups.com, zzwi89 [EMAIL PROTECTED] wrote: Does anyone know how to retrive a tab from a TabBar? If I use getChild() it returns a child of the associated ViewStack. TabNavigator, which I do not want to use, has a getTabAt() function. I checked out the code, and it simply does this: return Button(tabBar.getChildAt(index)); If I do this on my tabBar, it pops up an error stating I can't cast a VBox to a Button. Why is it that TabNavigator can do this, but I cannot do this on my TabBar's children? -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Learning Cairngorm $0.02
Hello, I've been using Flex for a couple weeks, able to build apps that are a shaky mix of loose / tightly coupled components, but functional all the same. After reading the revered 6-part articles to whet my appetite, I felt I was ready to dig in. The Cairngorm 2 Store demo invoking FDS scared me a little, but I found http://www.jessewarden.com/archives/2006/07/flex_2_webservice.html was an invaluable resource to get started with as it took a less big chunk to try and solve. In a few hours I was able to re-write her webservice example for my HTTPService usage and get a server query to return data. GO ME! I'm still figuring out exactly how to write the question of how to refactor my code from pure Flex to the Cairngormified version, but just wanted to thank people who have answered my questions along the way to get to this point. A resource like this group makes it invaluable in getting up-to-speed without being daunted by the learning curve. If anyone has any tips / suggestions / approaches for refactoring code and main things to be aware of in context of putting it into the right place (controller, VO's, commands, etc) that they could share it would be greatly appreciated. Jamie -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: WSDL Security?
That does help Tom, just a potentially niave series of questions in follow-up...How does using the proxy FDS service NOT secure the resource? If a rogue .swf does not know the address to connect to, how can it access the channel? Additionally, with a crossdomain.xml policy file in place on the server (only allowing our set of domains to access) there would be an higher level of security. Even if someone does determine the complete WSDL address they are unable to access it via .swf. The current systems accessing the WSDL are all server-side language meaning that the WSDL is 'safe'. Just looking to provide the equivelent level of security from Flex/Flash. Jamie --- In flexcoders@yahoogroups.com, Tom Ruggles [EMAIL PROTECTED] wrote: Hi Jamie, You do have the steps right for deployment. As for securing the resource the options available would be to either: - add security constraints to the destination. This would require you to either have users log in or hardcode credentials in the app (which is obviously no help in case of decompiling). - add J2EE web app security to your web app to secure the entire thing or any HTTP/AMF channels that are allowed to acces the destination Unfortunately there is no mechanism to automatically detect friendly vs. rogue swfs. But needing to know the channel and destination name are a slight deterrant. HTH, Tom --- In flexcoders@yahoogroups.com, Jamie O jamie.oastler@ wrote: Hello, I 'believe' what I describe below is accurate, just looking for confirmation. We have a production WSDL that is called by a number of other non-Flash/Flex apps. We would like to access it via Flex, but not make the WSL url visible in code - thereby succeptible to decompiled .swf access and non-company uses. In order to ensure this is the case, I believe we must do the following: 1) Install Flex Data Services and create a named proxy service destination with the wsdl url. 2) Use destination=wsdlDestination and useProxy=true in HTTPService Is there an inherrent control within FDS that prevents .swf from other (malicious) sites from using our proxy? I guess conceptually because it isn't served from there it would never know the connection to refer back to other than the destination name which is not a fully qualified URL. Wondering if we would also need a crossdomain.xml file to inhibit non-company .swf from accessing? Thx, Jamie -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] WSDL Security?
Hello, I 'believe' what I describe below is accurate, just looking for confirmation. We have a production WSDL that is called by a number of other non-Flash/Flex apps. We would like to access it via Flex, but not make the WSL url visible in code - thereby succeptible to decompiled .swf access and non-company uses. In order to ensure this is the case, I believe we must do the following: 1) Install Flex Data Services and create a named proxy service destination with the wsdl url. 2) Use destination=wsdlDestination and useProxy=true in HTTPService Is there an inherrent control within FDS that prevents .swf from other (malicious) sites from using our proxy? I guess conceptually because it isn't served from there it would never know the connection to refer back to other than the destination name which is not a fully qualified URL. Wondering if we would also need a crossdomain.xml file to inhibit non-company .swf from accessing? Thx, Jamie -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Viewstack / Navigator Filtering Best Practice?
Hello, Looking for a little help as far as best practices for filtering a navigator (togglebuttonbar, buttonbar) from a viewstack data provider. Each viewstack is a canvas and I only want to present the selection in the togglebuttonbar IF the XML node which contains the data for the canvas exists. Right now I'm using .addChild and .removeChild on the togglebuttonbar to control which buttons are displayed. That works the firs time the app loads, but as the user changes the data source (tied to a textbox that loads a different xml file) it breaks. I'm thinking there is a way to control which viewstate elements are displayed from within a dataprovider, but having issues with that. Right now, this is the XML event result handler source code: mx:Script private function XMLDPHandler(event:ResultEvent):void { pcXMLDP = new XML(event.result); bbNavigate.removeAllChildren(); if (pcXMLDP.nodename1.length() 0) { bbNavigate.addChild(vsNavigate .getChildByName(nodename1)); } else { bbNavigate.removeChild(vsNavigate .getChildByName(nodename1)); } /mx:Script And this is the viewstack / navigator components MXML: mx:ToggleButtonBar x=10 y=70 id=bbNavigate width=475 / mx:ViewStack x=10 y=100 id=vsNavigate width=475 height=235 mx:Canvas id=nodename1 label=Node 1 width=325 height=100 mx:Label text=Node 1 text test fontWeight=bold left=0 top=0/ mx:ComboBox id=cmbCriteria width=200 dataProvider={pcXMLDP.nodename1.criteria} labelField=@Name left=108 top=15/ /mx:Canvas mx:Canvas id=nodename2 label=Node 2 width=325 height=100 mx:Label text=Node 2 text test fontWeight=bold left=0 top=0/ mx:ComboBox id=cmbRank width=200 dataProvider={pcXMLDP.nodename2.rank} labelField=@Name left=108 top=15/ /mx:Canvas /mx:ViewStack /mx:Canvas Any help would be appreciated Thx -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: Flex 2 courses in Ottawa
I'll be taking the course as well! I've taken a few 'pre-Adobe/Macromedia merger' Their training courses usually go at a good pace and the materials for after-course implementation reference quite good. See you there! --- In flexcoders@yahoogroups.com, David Mendels [EMAIL PROTECTED] wrote: Hi Jen, Not sure if they are on this list, but we (Adobe) have about 300 people in Ottawa and a few of them are doing great things with Flex :) Hope the class is great, do report back to the list with feedback. -David -Original Message- From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of jenunderscore Sent: Tuesday, September 19, 2006 11:33 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Flex 2 courses in Ottawa Hey all, I'm new to the list and thought I would take thise opportunity to introduce myself to the group. If there are any other people here from the Ottawa region, I will be attending courses by the New Toronto Group, next week. If you are also attending, feel free to introduce yourselves! Take care, Jen -- 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 -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] ComboBox Data Refresh Events
I remember googling somewhere that when you programatically change combo box data it doesn't trigger the change event. You had to force an event to fire or on that event call your function or something? I've built a component that calls an XML source. One combobox (cmbStreet) is a normal dataprovider list, the second (cmbNumber) uses the selection from cmbStreet to find the specific node in the XML and populate based on the relevant attributes. That part of the code is working, except that I can't seem to clean all the entries from the array or dropdown list and the function won't execute on first load. I've tried it in creationComplete but I don't think the data is loaded to find results at that point. mx:Canvas xmlns:mx=http://www.adobe.com/2006/mxml; width=375 height=40 borderStyle=solid borderThickness=0 creationComplete=UpdateList() mx:Script ![CDATA[ import mx.controls.List; [Bindable] public var xmldpPC:XML; [Bindable] private var NumberList:Array = new Array(); private function UpdateList():void { var xmldpStreet:XML; xmldpStreet = new XML(xmldpPC.Municipality.Streets.Street.(@Name == cmbStreet.selectedLabel)); //I think more better stuff has to happen here. NumberList.length = 0; cmbNumber.selectedIndex = 0; for each (var StreetValue:XML in xmldpStreet.Number) { NumberList.push([EMAIL PROTECTED]()); } } ]] /mx:Script mx:ComboBox x=3 y=12 id=cmbNumber width=75 dataProvider={NumberList}/mx:ComboBox mx:ComboBox x=85 y=12 id=cmbStreet width=200 dataProvider=[EMAIL PROTECTED] change=UpdateList()/ /mx:Canvas -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: ComboBox Data Refresh Events
I temporarily have found the answer of using the valueCommit event instead of change event as the trigger to update the second comboBox as it fires on both programmatic and user driven events. --- In flexcoders@yahoogroups.com, Jamie O [EMAIL PROTECTED] wrote: I remember googling somewhere that when you programatically change combo box data it doesn't trigger the change event. You had to force an event to fire or on that event call your function or something? I've built a component that calls an XML source. One combobox (cmbStreet) is a normal dataprovider list, the second (cmbNumber) uses the selection from cmbStreet to find the specific node in the XML and populate based on the relevant attributes. That part of the code is working, except that I can't seem to clean all the entries from the array or dropdown list and the function won't execute on first load. I've tried it in creationComplete but I don't think the data is loaded to find results at that point. mx:Canvas xmlns:mx=http://www.adobe.com/2006/mxml; width=375 height=40 borderStyle=solid borderThickness=0 creationComplete=UpdateList() mx:Script ![CDATA[ import mx.controls.List; [Bindable] public var xmldpPC:XML; [Bindable] private var NumberList:Array = new Array(); private function UpdateList():void { var xmldpStreet:XML; xmldpStreet = new XML(xmldpPC.Municipality.Streets.Street.(@Name == cmbStreet.selectedLabel)); //I think more better stuff has to happen here. NumberList.length = 0; cmbNumber.selectedIndex = 0; for each (var StreetValue:XML in xmldpStreet.Number) { NumberList.push([EMAIL PROTECTED]()); } } ]] /mx:Script mx:ComboBox x=3 y=12 id=cmbNumber width=75 dataProvider={NumberList}/mx:ComboBox mx:ComboBox x=85 y=12 id=cmbStreet width=200 dataProvider=[EMAIL PROTECTED] change=UpdateList()/ /mx:Canvas -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: ArrayCollection returns object Object
I'll take my best attempt. 1) Create the XML variable you will need to map the HTTPService object data to and create a function that will handle the result call of your HTTPService call. mx:Script ![CDATA[ import mx.rpc.events.ResultEvent; [Bindable] private var xmldpAddress:XML; public function LoadXML(evt:Event):void { xmldpAddress = new XML(evt.target.lastResult); //Do other result-driven actions here } ]] 2) In your HTTPService call a function to handle the result event: mx:HTTPService id=feedRequest url = [PATH GOES HERE] useProxy=false resultFormat=e4x result=LoadXML(event) / 3) So when you trigger the request via feedRequest.send() function from either the creationComplete part of the application or a button event, it calls the service, the service calls your result function and the result function maps that service data object into an XML format. 4) As a result, you can then use dot notation for the XML in any dataprovider you want. mx:TextInput x=139 y=143 width=151 id=txtProv editable=false enabled=false text=[EMAIL PROTECTED]/ At that point, the help page under Programming ActionScript 3.0 Core ActionScript 3.0 Data Types and Classes Working with XML Traversing XML Structures should give you all the examples you need to bind the particular data you're looking for. Good luck! Jamie --- In flexcoders@yahoogroups.com, jnewport [EMAIL PROTECTED] wrote: I was wondering if someone can help me (preference) or point me to a tutorial on xml and data structures that are not hardcoded. I am using an HttpService to retreive xml and I can get result, but when I use it to populate a List I get object Object. All livedocs and info tells you how to use arrays, arraycollections, and xml when the xml is hardcoded in the app. Here is my file and xml. FILE ?xml version=1.0 encoding=utf-8? mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; xmlns=* paddingTop=3 creationComplete=initApp() pageTitle=Dashboard mx:Style source=OSX.css/ mx:Script ![CDATA[ import mx.rpc.events.ResultEvent; import mx.collections.ArrayCollection; import mx.rpc.*; import mx.charts.*; [Bindable] public var slicedMonthData:ArrayCollection; [Bindable] public var slicedRegionData:ArrayCollection; [Bindable] public var JasonsAC:ArrayCollection; private var monthData:Array; private var regionData:Array; private function initApp():void { srv.send(); slicedMonthData = new ArrayCollection(); slicedRegionData = new ArrayCollection(); } private function resultHandler(event:ResultEvent):void { monthData = event.result.list.month.source as Array; slider.maximum = monthData.length - 1; slider.values = [0, monthData.length - 1]; slicedMonthData.source = monthData; JasonsAC = new ArrayCollection(slicedMonthData.source); //regionBreakdown.month = monthData[0];// } private function getSliderLabel(value:String):String { return monthData[parseInt(value)].name; } private function rangeChange():void { if (monthData != null) slicedMonthData.source = monthData.slice(slider.values[0], slider.values[1] + 1); if (regionData != null) slicedRegionData.source = regionData.slice(slider.values[0], slider.values[1] + 1); } ]] /mx:Script mx:HTTPService id=srv url=results.xml useProxy=false result=resultHandler(event)/ mx:Model id=dataSet/mx:Model mx:ApplicationControlBar width=100% height=37 mx:Spacer width=2/ mx:Label text=Dashboard:/ mx:ComboBox width=150 mx:dataProvider mx:Array mx:StringRevenue Timeline/mx:String mx:StringKWH Timeline/mx:String mx:StringMember Timeline/mx:String /mx:Array /mx:dataProvider /mx:ComboBox mx:Spacer width=10/ mx:Label text=Select Period:/ mx:HSlider id=slider width=180 thumbCount=2
[flexcoders] Re: Multiple XML loads?
I had to make a few minor changes to your example to type define the XML during the function, but otherwise the following WORKS perfectly! Can also, as a result, use dot notation to access individual elements / attributes for comboBoxes within components. I think the biggest stumbling block for me is to get a complete grasp on the syntax for different UI elements and XML referencing the proper elements. Thanks for your help Tracy! Main.mxml Code Snippet: --- ?xml version=1.0 encoding=utf-8? mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; layout=absolute xmlns:ns1=components.* width=470 height=493 creationComplete=feedRequest.send() mx:Script ![CDATA[ import mx.rpc.events.ResultEvent; [Bindable] public var XMLDP_Address: XML; public function LoadXML(evt:Event):void { //set the global var value XMLDP_Address = new XML(evt.target.lastResult); } ]] /mx:Script mx:HTTPService id=feedRequest url = [VALID XML URL] useProxy=false resultFormat=e4x result=LoadXML(event) / mx:Panel x=10 y=268 width=450 height=206 layout=absolute id=pnlStatus mx:TextArea x=10 y=39 width=410 height=117 text={XMLDP_Address.toXMLString()} /mx:TextArea mx:ComboBox x=260 y=9 id=cmbTest dataProvider=[EMAIL PROTECTED] width=160/mx:ComboBox /mx:Panel ns1:cmpnt_ALE x=10 y=10 width=450 XMLPC={XMLDP_Address} /ns1:cmpnt_ALE -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Re: Multiple XML loads?
God @(#$ do I not so much enjoy being at the bottom of a learning curve. I can't fathom why putting the .send() into a function which is called when my button is pushed didn't occur to me but, well, it didn't. Thank you Tracy! The second piece that I am now probably doing something very stupid with is the format of the data and traversing. I haven't used XML a LOT but I understand the basics of dot notation and have the Flex 'Traversing XML Structures' document printed for reference. I have been able to populate combobox using the labelField and dataProvider when the HTTPService is default format (object). However I am trying to do a lookup in the XML based on the item a user selects from that combobox and populate a second combobox with details of children of that selected element. According to documentation if the HTTPService is set as XML or e4x the following syntax should work in the Change event: {XML_PostCode.lastResult.Prov.City.Streets.(@streetname == cmbStreet.selectedLabel).NumberRangeLow} Any attempts I did to 'stub' the HTTPService and use mx:Model or mx:XML just went very badly for me. Any help would be appreciated. --- In flexcoders@yahoogroups.com, Tracy Spratt [EMAIL PROTECTED] wrote: I am not sure I understand because you don't know which feed to pull at runtime. Using AS code you can change the URL of the HTTPService call and invoke send() at will. If you need to keep track of which result goes with which send, you can use the ACT pattern, that allows you to set and retrieve data in an AsyncToken. Tracy From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Jamie O Sent: Monday, September 11, 2006 9:25 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Multiple XML loads? Hi all, I have one conceptual/programming question right now I'm struggling with. Say in the blogreader sample app tutorial, you wanted to have several buttons to read several different RSS or XML feeds. My attempts using HTTPService have failed because you don't know which feed to pull at runtime or been able to use a variable in the HTTPService url. Other attempts have been equally unsuccessful. Put the code from that tutorial in below for reference. Any help thanks! -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/
[flexcoders] Multiple XML loads?
Hi all, I'm about a week into learning Flex, liking a lot of what I'm seeing for how things have been built. Reminds me of wy back when Visual Basic was one of the larger tools on the market for front-end based applications in that all the components and presentation manipulation are right there. I have one conceptual/programming question right now I'm struggling with. Say in the blogreader sample app tutorial, you wanted to have several buttons to read several different RSS or XML feeds. My attempts using HTTPService have failed because you don't know which feed to pull at runtime or been able to use a variable in the HTTPService url. Other attempts have been equally unsuccessful. Put the code from that tutorial in below for reference. Any help thanks! ?xml version=1.0 encoding=utf-8? mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; layout=absolute creationComplete=feedRequest.send() mx:HTTPService id=feedRequest url=pathtoxml goes here useProxy=false/ mx:Panel x=10 y=10 width=475 height=400 layout=absolute title={feedRequest.lastResult.rss.channel.title} mx:DataGrid x=20 y=20 id=dgPosts width=400 dataProvider={feedRequest.lastResult.rss.channel.item} mx:columns mx:DataGridColumn headerText=Posts dataField=title/ mx:DataGridColumn headerText=Date dataField=pubDate width=150/ /mx:columns /mx:DataGrid mx:TextArea x=20 y=175 width=400 height=100 htmlText={dgPosts.selectedItem.description} / mx:LinkButton x=20 y=283 label=Read Full Post click=navigateToURL(new URLRequest(dgPosts.selectedItem.link)); / /mx:Panel /mx:Application -- 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/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * 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/