A Persistent/Interactive Tooltip in Flex

I came across a requirement at work a few weeks back which involved an "interactive" tooltip... We needed to provide a summary of information in the tooltip, but then provide a link button to a more detailed document.

I came up with the following example by creating some functionality around the DataGrid mouse movements to display a "tooltip" (in reality a Menu instance) at the mouse position. Rather than digging into the framework to try and extend the ToolTip class to make it "stick" when moused over, I realized we've got popup menu functionality like that already. Slap a custom menu item renderer in there, skin it, and you've got a mousable, interactive tooltip instance.

I could have gone the extra mile and created a custom DataGrid instance using this new functionality, but I'm lazy so I'm just going to post the instance I implemented and let you figure out how to implement it for yourself :-) The idea being that it could be just as easily implemented on any List based control, and even with a bit of work any component in the Flex framework. Just modify the renderer to fit the content you need!

Example Here

Source Here

Copy from DataGrid to Clipboard/Excel in Flex

A really simple example today for a pretty useful feature... being able to copy contents from a datagrid (or any structure which uses a dataProvider for that matter) onto the system clipboard, and into an application like Excel.

Excel is able to recognize an HTML table format and pastes the structure into appropriate cells. The following example is tailored to that type of structure, but can really be formatted to whatever needs you have by modifying the createHTML() (or more appropriately named) method.

View example here : Example

And source here : Source Code

Flex Prominent on Webware 2007 Hits & Misses

It was nice to see that Flex was right up there with Google in the "Hits" category for 2007 with AIR from Adobe as well as the online photo editing site Picnik.

See Full List

A good indication of great things to come in 2008!

riajobs.com & riacareers.com

So let me start off by saying I'm not really fond of domain name squatters, but unfortunately I've become one of them :-)

I registered a couple of domain names back in 05 while doing contract work through recruiting agencies. It didn't take long for me to establish a sincere dislike for recruiters, and although I'm sure there are great ones out there, I feel the vast majority aren't qualified to do their jobs.

But enough about that...

I registered both riajobs.com and riacareers.com with the intention of creating a marketplace where developers could get in contact "directly" with employers... and vice versa... I noticed another site recently (www.nauglegroup.com) founded by Kevin Langdon and upon seeing it though "that's what I intended to do".

However, given time and commitment constraints, it hasn't happened yet, and probably won't for quite a while.

So that leaves me to ask the question, what/where/how can these be put to best use? I'd obviously love to sell them for a million bucks, but that's unlikely. I talked with John/Tom over at 360 Conferences about using them for their recent ideas on RIACommunity.

Does anyone else have thoughts on this topic?

What is Adobe Thermo? - Answer: Designer/Developer Integration

Notes taken from the keynote at MAX:

- an RIA design tool

- allows designers to create rich internet applications with logic embedded

- allows them to wire up interactivity without working any code

- allows them to use dynamic data without having access to the data source

- seamless workflow for developers working with flex builder

- can access Flex source code for the design

- taking a layered image from photoshop, and importing the psd file into Thermo generates layout and code for that layout.

- converting artwork to components on the fly (wow, very cool)

- they take a rectangle graphic, right click, convert to a TextInput component, and it retained the text within the graphic (made default text of TextInput component), all style information on the graphic is transferred to component (including font styles)

- highlight multiple graphical elements, and converted the group to a list, and creates a design time data set with the selected images to power the list

- changed padding on list items, and an onion skin of original image placement was retained for reference but just with reduced opacity

- edited an item in the list in place, and added an event to it to go to a new state, applied a transition to the state change. The state change was a size change, and was able to preview the increase in size, with the transition effect applied. Added some text information underneath the new state, which had fade effects applied to it. Was able to stagger effect play times using a simple gantt chart type tool.

- automatically provides lorem ipsum text for testing, and can define the number of words to show for it.

- takes two selected rectangle and converts to a scrollbar instance (seriously?... no way...) Able to identify the different layers of the graphic selection as the different components of a scrollbar. Associates the new scrollbar with the list using a wiring handle to simply drag over the list that it should affect, binding the two components together.

- able to easily add new items to the design time data collection

- and it all just works... amazing... bring on the applause :-)

- thermo and flexbuilder share the same project format, meaning designers and developers can very easily collaborate during development cycle.

- can expect early alpha/beta next year (2008).

Google Analytics AIR Beta

Someone forwarded me a link to this today and I was absolutely blown away. I spend the majority of my time creating reporting dashboards for my current employer, and Google Analytics is very similar to the solutions we try to achieve at the office.

In addition, I use Google Analytics for stats tracking on my own personal sites, and while their interface for use is great, I love the fact that Nicolas has put together a Flex/AIR interface for this. I'll be getting involved in testing/giving feedback, and I'd encourage others to check it out and do the same. I'd like to think this blog appeals to the more "charting-oriented" of us, so hopefully there's a few of you who will enjoy this as much as I do... :-)

http://www.aboutnico.be/index.php/google-analytics-air-beta-sign-up/

Flex is Catching On... a conversation on the Train

More than a few times on my commute into or home from work, I see people plugging away on laptops, and wonder what they're working on. Sometimes, if I'm sitting directly behind them, I can make out the Eclipse IDE view, and immediately think "Hey, maybe they're working with Flex?"... I'm not peeping, or want to intrude by asking what they're doing (would be kind of rude no?)... but still wonder.

Then this morning, for the first time ever, I overheard a couple of guys above me discussing Flex. Well that's kind of neat isn't it... a sure sign that the Flex buzz is really catching on. I caught bits of the conversation, and the two guys (one with a background in Flash) had nothing but positive things to say about the framework, and ability to create "cool" things easily.

So a word of caution... don't sit close to me on the train if you want your privacy ;-)

360Flex Conference - Seattle

A quick note that I'll be doing a presentation at the 360Flex conference in Seattle from August 13th to 15th. More details to come as I finalize a topic. Looking forward to seeing even more talented/aspiring/curious Flex developers than we had in San Jose.

360 Flex - Seattle

Chart Range Selector - Take Two

After the great feedback I've gotten from the previous post, I decided to add a tad bit more functionality... namely the ability to drag the upper and lower selected chart areas. Same link as before... just click and drag...

http://www.stretchmedia.ca/code_examples/chart_range_selection/main.html

Flex Chart Range Selector - Google Finance'ish

So I noticed some posts re: this type of component on flexcoders the other day, and being that I was bored at work on this sunny Friday afternoon, decided to give it a whirl. Right click to view source inside app...

http://www.stretchmedia.ca/code_examples/chart_range_selection/main.html



After I finished putting this together (in all of 45 minutes) I was as giddy as a little kid because it's just so damn COOL... Yeah, it doesn't have all the bell's and whistles that the graphing on Google Finance has, but still, can you imagine how long this effect would have taken to do in Flash?

Three words... "I love Flex"...

Have to give credit to Ely Greenfield (for his data generation function, and let's face it, for being The Man) as well as Doug McCune for his Dual Slider component (which is better than the one I did, which is why I used it here).

List Control - Disable Selection Color/Highlight

In putting together a List control this afternoon, I discovered an annoying little property about Lists... you can't "disable" the selection color that occurs on a list item when you "select" an item (click on it). For my purposes, my list needed to be selectable for dragging elements to re-order, but I didn't actually want to select a given item in the list. The order of items was all I wanted to impact the order of series rendering in a stacked column chart...

Anyway... the solution I came up with was to specify a selectionEasingFuction style which returned "0".


  


private function myEasingFunction(t,b,c,d):Number
{
return 0
}


Flex Framework Posters

So I'm very happy that Adobe provided everyone at MAX with a set of AS/Flex Framework/Class diagrams, but I've gotta ask... could you have made them bigger? :-)

Thoughts on MAX

Now that I'm fully recovered from my week in Vegas for Adobe MAX 2006, I thought I'd offer some thoughts on my first MAX (and Vegas) experience.

1) If you've never been to Las Vegas, and you travel there for a conference like I did, don't fool yourself into thinking you'll concentrate 100% on the conference while it's taking place. I made sure to plan my trip with a few days after the conference in which to explore and discover the sights, but still found myself sufficiently distracted during the first 4 days during MAX. It doesn't help when Adobe decides to throw a party on Day 3 over at the Palms Casino :-)

2) I'm the biggest hypocrite in the world for saying this (as a past smoker) but the city really needs to do something about the indoor smoking. Seriously... walking out of a presentation to find 3-4 people lighting up in the hallway in between presentation rooms was ridiculous. What's funnier is the perfume crap that the casinos pump into the air system trying mask it.

3) While the present

BlogCFC was created by Raymond Camden. This blog is running version 5.005.