Uncategorized: Category

Category: Uncategorized

Flex 2 Training From the Source sample chapters available on Adobe’s DevNet Site

Posted At: February 15, 2007 12:02 AM | Posted By: Jeff Tapper
Related Categories: Uncategorized

In browsing the latest Developer Center Update email, I noticed that they have chosen to include 4 chapters from our Flex  Book on their site.   It looks like they have put the pdf’s and files for Chapters 11 (DataGrids), 16 (Styles and Skins), 20 (FDS Data Push) and 21 (FDS Data Services). 

One thing any readers on DevNet should be aware, is there is an issue with one block of code in chapter 11, running in the updated Flex Builder 2.0.1.  On page 275, when creating the inline item renderer for a DataGrid cell, you need to modify it slightly for it to compile in Flex 2.0.1.

The book has you right the code like this:

<mx:DataGridColumn editable="false">
 <mx:itemRenderer>
  <mx:Component>
   <mx:VBox>
    <mx:Button
     label="Remove"
     click="outerDocument.removeItem(valueObjects.ShoppingCartItem(data));"/>
   </mx:VBox>
  </mx:Component>
 </mx:itemRenderer>
</mx:DataGridColumn>

 To get it to compile with the updated FlexBuilder, you need to modify it like this:

<mx:DataGridColumn editable="false">
 <mx:itemRenderer>
  <mx:Component>
   <mx:Script>
    import valueObjects.ShoppingCartItem;
   </mx:Script>
   <mx:VBox>
    <mx:Button
     label="Remove"
     click="outerDocument.removeItem(valueObjects.ShoppingCartItem(data));"/>
   </mx:VBox>
  </mx:Component>
 </mx:itemRenderer>
</mx:DataGridColumn>

We are still actively trying to get the publisher to put up an errata site for the book, but this is the only issue with the book code that I have heard about from our readers.

Enjoy the sample chapters!

Comments (10)

Announcing the FlexManiacs Flex 2 Conference

Posted At: January 16, 2007 3:01 PM | Posted By: Jeff Tapper
Related Categories: Uncategorized

Join Fig Leaf Software, Adobe and Carahsoft for the highly anticipated Flex 2 Developers Conference in Washington, DC, where you can Learn about developing Web 2.0 Applications with Flex and Apollo!

The conference will include two full days of 60 minute lectures and 90 minute hands on sessions dedicated to Flex 2 and developing Rich Internet Applications (RIA), you’re sure to get all of the information you need.

With sessions for project managers, beginner, intermediate, and advanced developers, the FlexManiacs conference is poised to deliver maximum return for your training dollar.

 Among the speakers at the conference are myself, and my business partner, Mike Nimer.

Compared to the price of many other recent Flex conferences, this one is a clear bargin at $249 for 2 full days. 

  I’ll be posting more information as it becomes available.

Comments (1)

AS2 Tree Component with a transparent background

Posted At: November 9, 2006 9:11 PM | Posted By: Jeff Tapper
Related Categories: Uncategorized

One of my clients recently needed a Tree component for their site navigation, which needed a transparent background (so you could see an image behind it), and had to run in FP7.  I was most bummed about the FP7 part, as it meant i couldnt use flex 2, but had to go back to Flash Studio.  Anyhow, digging through some archives on FlashCoders, I came across a working solution from Éric Thibault from June 2005.  Tweaking that a bit, and combining it with some code I previously wrote to automatically open all nodes of a tree, I came up with this solution, which works quite nicely…

import mx.controls.Tree;
import mx.utils.Delegate;
class com.tappernimer.navigation.NavTree extends MovieClip{
 private var navTree:Tree;
 private var myTreeDP:XML
 private var interval_config:Number;
 private function NavTree(){
  // create xml object
  myTreeDP = new XML();
  myTreeDP.ignoreWhite = true;
  // load xml file
  myTreeDP.load("nav.xml");
  // let this.xmlDataLoad handle load results
  myTreeDP.onLoad = Delegate.create(this,xmlDataLoad);
 }
 private function xmlDataLoad(success:Boolean):Void{
  if(success){
   navTree.dataProvider = myTreeDP.firstChild;
   openTree(navTree);
  } else {
   trace("error loading data");
  }
 }
 private function onLoad():Void{
  // after visual components are instantiated, set event listeners and styles
  setTheStyles();
  navTree.addEventListener("change",this);
 }
 function setTheStyles():Void{
  _global.styles.ScrollSelectList.setStyle("backgroundColor", 0x993333);  
  navTree.setStyle("fontFamily", "arial");
  navTree.setStyle("fontSize", 12);
  navTree.setStyle("fontWeight", "bold");
  navTree.setStyle("color", 0xFFFFFF);
  navTree.setStyle("textRollOverColor", 0xffff00);
  navTree.setStyle("textSelectedColor",0xffffff);
  navTree.setStyle("borderStyle", "none");
  navTree.hScrollPolicy = "off";
  navTree.vScrollPolicy = "off";
 }
 private function handleEvent(event:Object):Void{
  // central switch for all events
  switch(event.type){
   case "change":
    // any change events routed to handleTreeChange
    handleTreeChange(event);
    break;
  }
 }
 private function handleTreeChange(event):Void{
  // what to do when a tree row is clicked
  var node:XML = event.target.selectedNode;
  if(navTree.getIsBranch(node)){
   // if the node is a branch, toggle the branch open/closed
   navTree.setIsOpen(node, !navTree.getIsOpen(node),false,true);
   // redraw transparent background after open/close
   interval_config = setInterval(setTransparent, 100, this );
  }
  var url:String = node.attributes.url;
  if(url != null){
   // if the node has a url, navigate to that url
   this.getURL(url);
  }
 }
 function openTree(t:mx.controls.Tree) {
  // toggle tree fully open
  var i:Number=0;
  var node:XML=t.getTreeNodeAt(i);
  node.backGround._alpha = 50;
  node.highlight._alpha = 50;
  while (node != undefined){
   if (t.getIsBranch(node) && ! t.getIsOpen(node)){
    t.setIsOpen(node,true);
   }
   i++;
   node=t.getNodeDisplayedAt(i);
  }
  interval_config = setInterval(setTransparent, 100, this );
 }
 function setTransparent(owner){
  // facade to make transparent to keep scoping straight
  clearInterval(owner.interval_config);
  owner.makeTransparent();
 }
 function makeTransparent() {
  // loop over all rows
  for (var i:Number = 0; i < navTree.rows.length; ++i) {
   //set the background and highlight alphas to 0
         navTree.rows[i].backGround._alpha = 0;
            navTree.rows[i].highlight._alpha = 0;
        }
        navTree._visible = true;
        navTree.border_mc.backgroundColorName = "";
        navTree.border_mc.drawBorder();
 }
}

The trick is to call the makeTransparent method after each time the tree is rendered.  I followed Eric Thibault’s lead, and called it with a setInterval, but since there are UIComponents (ie, the tree) in use, i suspect it would have worked just as well with a doLater().  Each time i need to hack around in AS2, I remind myself how much more i like AS3.

Comments (0)

Flex Book @ Max update

Posted At: October 26, 2006 4:10 AM | Posted By: Jeff Tapper
Related Categories: Uncategorized

I’ve just been told that the initial 60 books that they had at the Adobe Max store are all sold out.  I’ve also been told another 40 should be here tomorrow morning.  It seems we have a bit more demand than was planned for by the powers that be.  Anyhow, sorry for any inconvenience, and hopefully those of you looking to buy it at Max can get a copy when they restock tomorrow.

Latest update – the books at the Conference store are now completely sold out.  Today’s shipment came in with 50 more books, all of which were sold within 20 minutes.  I’m told attendees can still get the conference price, by ordering the book here at the conference, and it will be shipped out in a few days, as they come off the press.   Apologies to all those who hoped to have the book in hand, but as an author, this is clearly something i have no control over. 

Comments (31)

Speaking at AJAXWorld

Posted At: August 10, 2006 10:08 AM | Posted By: Jeff Tapper
Related Categories: Uncategorized

Quick update —  something has come up, and I wont be able to make it out to AJAX world, but in my place, my business partner Mike Nimer will be preseneting on the same topic.

As a Boston Red Sox fan in New York City, I’m no stranger to being outnumbered, or in the minority opinion.  Following this theme, I’ll be presenting about Adobe Flex 2.0 at the upcoming AJAXWorld conference October 2nd-4th in Santa Clara.  It seems I’ll be 1 of only a few speakers giving a session on Flex related topics.  The annoucment from AJAXWorld magazine can be found here.  I’ll post more details as they become available. 

Comments (2)

Announcing Tapper, Nimer and Associates Inc.

Posted At: August 8, 2006 11:08 AM | Posted By: Jeff Tapper
Related Categories: Uncategorized

As of Monday, August 7th, 2006, I’ve joined forces with Mike Nimer, (formerly on the ColdFusion Product Development team at Adobe), and together we have formed Tapper, Nimer and Associates.   Mike brings to the table additional Flex and ColdFusion skills, but also adds java expertise to our offerings.

I’ll post more details as they become available, but until we set up our tappernimer.com mail server, you can continue to contact me as you always have, via my tapper.net account.

 

Comments (7)

Giving in to peer pressure, here is my CF 8 Wishlist

Posted At: July 25, 2006 5:07 PM | Posted By: Jeff Tapper
Related Categories: Uncategorized

Seems like all the gurus are blogging on what they would like to see in ColdFusion 8.0, so I thought now would be as good a time as any to jump on the band wagon.

Curious what others are looking for?  Take a look:

Simon Horwith’s list., Brian Kotek’s wishlist., Brandon Harpers list, and Sean Corfields thoughts on the lists.

Let me start by prefacing my ideas with a quick summation of how i use ColdFusion today, as it may be different from the norm.  For the past several years, I’ve focused on building applications which run in the flash player.  For me, ColdFusion has been purely an application server to provide business rules and data access.  Its been several years since I’ve built an app which contains any .cfm pages, mostly, I’m dealing with pure CFC applications.  With that said, i am far less interested in additions for Flash Forms or XForms or other UI elements generated by CF, since I have Flash and Flex to build my front ends.  What I’m looking for is improved capabilities of the server itself, such as:

  • Addition of constructors for CFCs

This would be a great addition, and remove alot of the ugly work arounds we have had to use over the years for pseudo-constructor type functionality.  Simon Horwith.,  had some good ideas on how this might work.

  • Static methods in CFCs

Many folks are clamoring for interfaces and other java like functionality in CFCs.  While interfaces are great, I would get much more bang for my buck with the addition of Static methods, so things like Singleton’s would be much more plausible.

  • E4X support

E4X has revolutionized how I work with XML in AS3, and we should have that same level of support in CFML

  • Improved CFAdmin tools for creating Event Gateways

The current system is just plain silly, where you need to externally define a config file for each instance.  For the built in gateway types, it seems like a no-brainer to add a form (ok, you can even use flash-forms if you want), to enter/edit  the required information for the gateway instance.  Too many developers see gateways as too complex to start learning, and much of that complexity is defining an arbitrary config file.  I’m not saying these files should go away, just that we should have some nice forms, rather than having to hand code them.

  • Improved tools to debug remoting and gateways

One sad thing in CF, is that any requests which are not to a .cfm page have no debugging information available.  How about a section of the Admin where we could see the last X requests, and any debugging information which went along with them?  Currently, we need to use external tools (like the NetConnectionDebugger), or run CF from the command line to find any information from these requests.

Anyhow, I really havent given this list too much thought (does it show) but these are the first handful of things which would have made my life easier, if they already existed.

Comments (0)

Adobe MAX 06

Posted At: July 21, 2006 4:07 AM | Posted By: Jeff Tapper
Related Categories: Uncategorized

Date: Sun 22 Oct 2006 — Fri 27 Oct 2006,

Type: All Day Event

For more information, see my various blog posts here and here.  I’m not sure how this will render on my blog, I’m just experiementig with the "Make an Event" feature that is here.

Comments (0)

Greetings from CFUnited 06

Posted At: June 30, 2006 12:06 PM | Posted By: Jeff Tapper
Related Categories: Uncategorized

Its day 3 of CFUnited, and in the first 2 days, I’ve already attended more sessions than I did in the whole conferece last year.  After a number of flight troubles, I arrived slightly too late for the opening morning keynote (I arrived just in time to hear that Tim Buntel was back, oddly, I didnt realize he had left!).

After that, I attended Sean Corfields "Managing CF Components with Factories," which really whet my appetite for ColdSpring. 

Later on the first day, I went to John Ashenfelter’s "Agile CF."  As development methodologies go, Agile seems worthwhile, but any methodology which preaches "code now, plan later," I have my reservations about the maintainability of applications designed taking too many of these principles to heart.

The first day ended with a free beer event in the expo area, followed by the Pedro v. Beckett Redsox/Mets game in the hotel bar.

Yesterday (Day 2) I started with John Ashenfelter’s "Testing CF Applications," in which he showcased a number of good freeware tools (CFUnit, CFCUnit, Selenium, and Grinder).  Some very cool stuff and definitely worth checking out.  After that, I went to Sandy Clark’s "CSS positioning" preso.  With all my focus on RIA’s and the flash player lately, my CSS has become really rusty.  This was definitely a worthwhile session to brush up my skills.  Later in the day, I went to see Shlomy’s "Subversion" session, and later Dave Ross’ "ColdSpring"

So far, ColdSpring has is the most intriguing new development in the CF World for me.  I have a number of clients who use the Spring framework for their java apps, so i was most intrigued to see how we can now leverage the same for CF.

So far, 2 days, I’ve been to 6 sessions.  This must be a record for me (I’m more known to present, than to attend sessions).  Last year at CFUnited, i think i attended only 2 or 3 sessions. 

Anyhow, this morning, I give my presentation of "Event Gateways in CFMX 7" at 9:45.  I’ll be posting the preso and code up here sometime after that.

 

 

Comments (0)

Flex 2 ships!

Posted At: June 28, 2006 3:06 PM | Posted By: Jeff Tapper
Related Categories: Uncategorized

I’m about to download my recently purchased fully released Flex Builder 2.0 with charting.  This is now available on www.adobe.com (note, no longer available at labs.adobe.com).  I’m sure I’ll be posting more on this later, but I’m about to go back downstairs to the CFUnited conf while this downloads.

Comments (0)