JDev 11g: ADF Faces RC: new component af:noteWindow

Chris Muir | Oct 9, 2008 03:30 -0600
I'm currently having a bit of fun hunting around the JDev 11g production release for features that weren't in the earlier TP releases. Today I stumbled across the af:noteWindow tag within ADF Faces RC.

The af:noteWindow tag displays a speech bubble popup similar to the tooltips on other components. The following screenshot shows the af:noteWindow displayed via a mouseOver af:showPopupBehavior tag:


The following code demonstrates how I achieved the above:

<af:panelGroupLayout layout="horizontal">
  Contact
  <af:spacer width="10" height="10"/>
  <af:outputText value="SAGE Computing Services">
    <af:showPopupBehavior
      popupId="sagePopup"
      triggerType="mouseOver"/>
  </af:outputText>
  <af:spacer width="10" height="10"/>
  for more information.
  </af:panelGroupLayout>
</af:panelGroupLayout>
<af:popup id="sagePopup">
  <af:noteWindow>
    <af:panelGroupLayout layout="vertical">
      <af:image source="/sageWeb2.0LogoSmall.gif"/>
      <af:group>Contact enquiries@sagecomputing.com.au.
      </af:group>
    </af:panelGroupLayout>
  </af:noteWindow>
</af:popup>


According to the documentation the af:noteWindow must be located as the direct child within a af:popup tag.

I guess the primary benefit of this component is to display help text inline within a page.

Another Aussie Oracle ACE Director - Richard Foote

Chris Muir | Oct 8, 2008 03:10 -0600
I'm very happy to hear that Richard Foote has been voted in as the next Australian Oracle ACE Director. Given Richard's rich history with Oracle, user groups, presenting, his blog and his recent educational tours, the award has been due for sometime. In particular I admire Richard's long and well thought out blog posts which challenge assumptions and promote discussion, unlike my disjointed ramblings, ah, posts, no rambings, ah forget it.

So it seems we have an Oracle ACE Director in Perth, Brisbane, and 2 in Canberra. Can it really be the 2 biggest Australian Oracle capital cities Melbourne and Sydney have no ACE Directors? Ah, that's why the 2 biggest Oracle offices are located there, to make up the fact for they're missing ACE Directors! ;-P

Good work Richard.

Perth AUSOUG leg over, Gold Coast to go

Chris Muir | Oct 8, 2008 02:10 -0600
Yesterday concluded the AUSOUG Perth 2 day annual conference. This is probably the best conference of all to catch up with my local peers and colleagues. It seems each year I'm having to remember more and more names and faces at the Perth event which is great; it feels much like a highschool reunion of sorts (and apologies to those whose name I forgot - given I celebrated my 33rd birthday yesterday, old age is my excuse ;-)

Once again Connor McDonald took line honours on the best speaker award, and Tim Hall runner up. I know Tim was pretty chuffed with the award and I'm particularly happy I had the chance to originally invite him down for the AUSOUG conference, because the members obviously liked what Tim had to say..... not as much as Connor, but nearly ;-) (and also another great endorsement for the Oracle ACE Director program).

I thought the DBA corner was particular strong this year, what with (in no particular order) Connor, Tim, Penny Cookson, Alex Gorbachev, Guy Harrison, Barry Matthews (the rumour is Barry actually sold 4/7 an Exadata server ;-) and more presenting. I couldn't understand a word they were talking about, but I am a "developer" anyway. As Alex identified on his blog the local DBA audience is small, but they appreciate real technical content from people who are excited about presenting the latest database concepts, and I think it shows the top 2 papers were taken by DBAs.

I also caught up with David Peake of Apex fame, had a punch up out back of the convention centre over Apex vs ADF, which I lost, and now I'm an Apex convert (insert slightly bruised smiley face here ;-( David is on a somewhat mad dash around the world presenting Apex topics; and I thought my trip from OOW was bad enough, David's is just nuts. However jet lag or not, David's presentations ran well and were well attended; especially popular in the local market. Brenden Anstey's Apex/JDev showdown was a popular topic, showing there's life in this classic debate yet, and I was happy he took time out to present given his current silly work schedule.

The SAGE Computing Services crew were in full presentation force again this year, with Penny Cookson and Eddie Harris introducing Apex reporting solutions, Ray Tindall a security smack-down with Oracle, Scott Wesley on PL/SQL conditional preprocessor code (or how to insert malicious code), and myself on database based web services (of which I had a full room which was pretty good IMHO - though it's so hard to fit a 1hr OOW presentation in 45mins so it was very rushed). For such a small company I think we punch way above our weight at these events. Yet I think we mostly get a buzz out of seeing familiar friends and work colleagues each year who are keen to hear what we have to say and to share war stories, so that's pretty rewarding in itself (everybody say: awwwwwwwwww). We'll get around to putting the presentations up on the website soon.

I worked out by the end of next week I'll have done about 5.5 days (5 x JDev 1 day masterclasses, 4 x 45 min presentations, + 1hr online eTraining event) members facing presentations to AUSOUG this year, which is a pretty reasonable effort if you ask me, especially given the amount of effort behind the scenes to prepare such. I'd be really happy to hear of some new topic ideas for next year from you the reader along the JDev/Oracle developer lines, so if you have a few ideas shoot me an email please.

Next I'm off to the AUSOUG Gold Coast conference to do pretty much the same thing again, + the addition of my JDeveloper masterclass this time with a Queenslander accent. Most annoyingly JDev 11g went production yesterday, so I'm rushing to update the masterclass notes before my trip. Oracle, you could have at least waited another week! Oh well, no rest for the wicked, or Oracle ACE Directors for that matter.

If you're going to the GC conference, please come up and introduce yourselves, I'd love to have a chat. See you at GC!

(and yes, the post title was deliberate ;-)

ADF Methodology Group post OOW08

Chris Muir | Sep 28, 2008 17:10 -0600
Now that I'm flying back from OOW08, I've a chance to pen a few words about the ADF Methodology Group at the Unconference.

I was very privileged to be a part of the first live ADF Methodology Group meeting. As blogged by Sten and Avrom, we were very lucky to have 40 odd people turn up to help contribute to the first meeting, including day-to-day expert ADF programmers, Oracle ACEs and ACE Directors, and Oracle staff themselves. Thanks to everyone who attended, beginners and experts alike, and those who contributed directly and indirectly.

The success of any such group is always a sum of the great contributions from the parts, and there was enough active discussion to let us know what we're doing is going to help each other and new people to the group in running successful ADF projects. While the OTN Forums are great for talking about technical facilities, solving bugs and understanding JDev + ADF features, there's far more to discuss in order for an ADF project to succeed, and this is where the ADF Methodology Group fits in. What's the best way to test an ADF app, what infrastructure do you need, what should be part of your estimates, and so on.

I encourage anyone who is interested in JDeveloper and ADF to join the Google Group to discuss these sort of high-level discussions beyond the pure technical that all parties need in adopting new technologies, and to put effort into the Oracle Wiki page for the benefit of all.

We're already talking about holding our next meeting at the ODTUG conference next year, and hopefully we'll see even more attending the OOW session in 2009, including yourself.

Thanks again to all for your great efforts.

Phew, now I'd better go and do some paying work ;-)

Link to my OOW presentation

Chris Muir | Sep 25, 2008 18:10 -0600
Thanks to everyone who attended my presentation at OOW08. It can be downloaded here.

OOW08: I think it’s end of day 3

Chris Muir | Sep 24, 2008 00:30 -0600
After than a less than amusing 3 hours sleep last night, day 3 of OOW08 was on the agenda. Today was some impressive presentations by the JDev PMs. Even though I've been searching the JDev 11g stack carefully for new features, Steve Muench revealed a massive (no over exaggeration) set of new features in ADF BC I hadn't yet found, Frank Nimphius a range of new security features to fit into WLS, and Juan Ruiz demonstrated the new ADF desktop integration (ADFdi) for Excel, a feature that potentially is going to make BI Publisher redundant as a reporting solution for ADF if the JDev team can in combination squeeze out a MS-Word equivalent.

It's so obvious there's a massive Fusion Apps development hiding somewhere behind the scenes at Oracle. The JDev team are pumping a huge amount of new and improved features into the ADF stack, and it's not because of the Enhancement Requests logged on the JDev OTN forum ;-)

I had a chance to sit in on Robert Nocera's Forms to JDev Unconference session, and in fact I bumped into Grant Ronald from Oracle UK who said all his Forms conversion presentations have been full. It seems Forms conversion is on the tip of everyones' tongues at Oracle Develop, given there are a number of solutions at OOW this year. What a shame the Apex crew are overselling theirs. Have you thought about telling people you can't convert the PL/SQL guys?

Tonight was the Oracle ACE Dinner, a relaxing event to talk to a diverse set of "really" qualified and interesting people. It's such a rare chance to meet so many dedicated people from around the world. Once again thanks to Oracle for organising this, it makes for a great OOW experience.

Like yesterday, Oracle Australia cornered more Australians at OOW today, and you can see Marcel Kratochvil interviewed on YouTube.

Today I did hear a rumour that Oracle has committed to Oracle 11g XE in the future, I'll need to confirm the fact though. Could this be Larry's big X announcement on Wednesday? (teehee) The 11g XE release will be a relief for all us presenters who use it to present. I suspect we'll need to wait till OOW09 though.

Wednesday sees the ADF Methodology kick off at the Unconference. We've 30 odd people registered which is great. Afterwards I'll be in the OTN Lounge for the Oracle ACE Office Hours between 12-1pm, and then squeezing in some more JDev sessions, followed by the Appreciation event.

No rest for the wicked (as much as you can call an Oracle "programmer" wicked).

OOW08: Day 1, or is that 2? I forget

Chris Muir | Sep 23, 2008 01:30 -0600
Monday blurred. I missed the keynote (not my thing anyway), bumped into a number of Oracle staff and fellow ACEs and had a good chat (blah blah blah Doug ;), presented at 11:30 (I think it went well – no tomatoes), hit some good sessions (the new JDev DVT features are "way-cool", and I learned how SQL Dev is actually going to improve Apex in a way that vanilla-Apex fails), attended a whirl-wind Asia-Pacific (APAC) reception after-hours (um, what's with all the Aussies wearing suits?), and had dinner with user group colleagues to discuss some very interesting issues (SOA what?). Unfortunately I missed the OTN Night. Doh!

Tomorrow is purely tracking sessions I wish to attend, bugging Oracle staff for answers, then the Oracle ACE dinner which will be fun. Somewhere in there some prep for Wednesday's ADF methodology group.

Anyway, mostly a post about nothing, mainly for the people at home, who think this is a lark and I spend most of my time at the pub.

And just to prove I actually am in San Fran at OOW, you can catch me on YouTube or via the Red Room blog. Thanks to Gareth and Chi for organising this.

Usual disclaimer: I'm at OOW08 under the overly generous Oracle ACE Director program.

OOW08: Day -1: Jet Lag = 1, OOW = 1

Chris Muir | Sep 21, 2008 17:50 -0600
Oops, forgot to post about Saturday in San Fran at OOW08.

One of the things I like to do when visiting another country is sit down and read some local newspapers to get a feel for what's happening locally. Though American news filters through the syndicated news channels back to Australia, the pure breadth of coverage is not there.

Of course the news in the States right now is all doom-and-gloom about the economy and Wall Street. Both papers I browsed were 75%, if not 95% about the economic crisis, with a large focus on stocks, federal intervention, politics and the blame game. I was surprised by the inclusion of The Wall Street Journal story As Times Turn Tough,New York's Wealthy Economize. "Oh boo hoo poor American rich people, you can't afford a nose job, I feel so sorry for you." It took me most of the day to find a story that considered the impact on the average American thanks to Time publishing Forget Wall Street. What about the rest of us?

Of course it's also a fascinating time with the race for the American Presidency, from both inside the States and out. One thing I've always found odd as an Aussie travelling to other countries is how patriotic other countries are, and in turn how much the general population is willing to visibly show their preference for political parties. Across from the hotel I'm staying at somebody has placed an Obama for President poster 8 stories up on a balcony nobody can see, and yesterday I spotted this poster near China Town. I just can't in living memory remember somebody in Australia putting something similar up, like a "I Love Kevin" poster, or a glowing picture of Little Johnny's glowing mug.

Of course OOW is far away from the local economic and political issues.

Saturday afternoon proved a great day to catch up with fellow Oracle ACEs and bloggers, Doug Burns, Tim Hall, Lucas Jellema, Marcel Kratchovil, with much speculation about the big OOW announcements.

Given that I've just sat in on the Sunday ACE Director meeting where some of the announcements have been either made or hinted at, it's a fun game to think back to our discussions yesterday to see how correct they were. Some of the announcements are completely embargoed until the keynotes so we can't talk about them. And as I have such poor memory of what we can/can't talk about, I'll keep mum till each keynote .

Monday's my Back to Basics Web Services presentation and the start of the Oracle Develop sessions I'll attend. Should be an interesting day as long as the jet lag doesn't kick in.

Disclaimer: I'm at OOW08 as part of the Oracle ACE Director program.

OOW08 Day -2: Jet lag = 1, OOW = 0

Chris Muir | Sep 19, 2008 15:50 -0600
14,726 kms later (9,150 miles) I've touched down in San Fran for OOW08. Once again the epic battle between jet lag and OOW rages on. Today jet lag definitely wins with no sign of sleep on the plane. However over the next week the excitement of OOW will throw itself at jet lag, and we'll see who comes out triumphant.

All in all a rather silly post to let others at OOW know I've arrived and keen to catch up, so drop me an email.

Oh, and if anybody would like to recommend a good coffee joint San Fran downtown besides the usual franchises please let me know. Is it even possible to get a "flat white" in the USA?

JDev 11g ADF BC – New feature “Static List View Objects”

Chris Muir | Sep 17, 2008 17:30 -0600
Following on from the Property Sets and Declarative View Object posts, another new feature in ADF Business Components in JDeveloper 11g is the "Static List View Object".

To create a Static List View Object, via the View Object Wizard you select the "Rows populated at design time (Static List)" option:


You then define the individual attributes of the VO yourself similar to a programmatic VO:


Then manually create the actual rows and attribute values yourself, hardcoded:


It's even possible to import the data at design time from the Import button on this same screen using a CSV file.

The key advantage of the Static List View Object is it's suitable for small datasets that never change. A great example would be gender values (M = Male, F = Female) or statuses (O = Open, C = Closed), or in Australia where the Australian State values are set at 8 (ACT, NT, NSW, QLD, SA, TAS, VIC, WA) and unlikely to change anytime soon (ignoring the obligatory "come-the-revolution" quotes ;).

Prior to the static list, in 10.1.3 one "hack" way to create a static VO was to create a R/O VO with a SELECT statement similare to following to load in some hard coded values:

SELECT 'a hardcoded value' FROM DUAL
UNION ALL
SELECT 'another hardcoded value' FROM DUAL


This was a kludge and required a database roundtrip to return the values. Simply not ideal.

With the new 11g feature, there's a valid argument that such data should be in fact stored in a database table anyway. Yet it's really upto you as the well-informed-programmer to decide what would be suitable for a Static List VO as separate to a normal R/W or R/O View Object. Note Oracle recommends in their JDev 11g documentation that the Static List is only suitable for 100 rows or less, otherwise use a database derived VO anyway.

I've also found Static List VOs suitable for stub VOs in creating ADF Faces RC web page mockups for demonstration purposes, where the database tables have yet to be designed. We instead create some dummy data Static List VOs, some web pages based on those VOs, and it looks like the pages are showing real data. A key problem with this approach though is if you then need to transform the Static List VOs into real database VOs, it's a pain in the butt, because you need to delete the Static List VO and all its dependencies, create the new database derived VO, and then plug this correctly back into the web page and bindings. Hint hint Oracle, a "transform" VO facility would be neat.

Note that Static List VOs are a great candidate for the new Shared Application Module feature, of which Avrom Roy-Faderman has recently posted about in part 1 and part 2.

10 things we probably wont see at OOW08

Chris Muir | Sep 15, 2008 19:20 -0600
As I prepare for my next trip to San Fran under the overly generous Oracle ACE Director program, I thought I'd post 10 things we (probably?) wont see at OOW08:
  1. Streakers
  2. Sessions on "how to deal with your pain-in-the-butt DBA"
  3. Larry's keynote rendition of the great oom-pah Chicken Dance
  4. An exhibitor recommending their neighbour's solution over their own
  5. Tom finally proposing a Developer-DBA hug-a-thon (awwww, give me a hug Tom!)
  6. Oracle running on the EeePC (Oracle XEeePC, or ZeepC)
  7. Oracle's 2nd standard presentation disclaimer slide replaced with "Our word is your guarantee – or your money back"
  8. Out the door queues to get into the "OCI API in detail" session
  9. Oracle announcing in its latest round of acquisitions, it accidentally bought itself (apparently Oracle was a great acquisition opportunity as Oracle had great database market share and now Oracle owns 107% of the database market)
  10. Oracle staff wearing the new corporate tartan shirts (black on black doesn't count as tartan)
And just for the record, I started writing this post after last year's OOW. Incredibly trite humour like this takes a long time to prepare.

JDev 11g ADF BC – New feature “Declarative View Objects”

Chris Muir | Sep 13, 2008 23:20 -0600
Following on from my Property Sets post, another new feature in ADF Business Components for JDeveloper 11g is the "Declarative View Object".

To create a Declarative View Object, you need a View Object based on an Entity Object, and under the Query page of the View Object Wizard or Editor, you set the SQL Mode to Declarative:


On switching a View Object to the Declarative SQL Mode option you'll notice the Wizard/Editor hides the SQL Query from you, instead providing an interface to modify the Where clause by selecting and/or constructing View Criteria, and selecting View Object attributes to participate in the Order By clause.


The key to Declarative View Object is they calculate the SQL statement to execute at runtime from the underlying Entity Object's database table and attribute database columns. With the previous Normal and Expert modes, the SQL query was effectively defined at design time by the programmer. The Declarative VO approach reminds me of how Oracle Forms works, in the fact that Oracle Forms uses the Block-table and Item-column mappings to construct the SQL statement at runtime; there is no complete SQL query you can look at design time in Forms.

The main advantage of Declarative mode is it removes the need to understand SQL queries, including the Where and Order By clauses. The query is now effectively hidden from the programmer.

I can hear a million Oracle programmers asking "why would we want to do that?" Taking the broad idea that not all programmers are born equal, and not all programmers know SQL, moving to a Declarative approach will assist such non-SQL-savvy programmers, as well as beginners or business users in working with ADF.

Another advantage is this approach uses the new 11g VO View Criteria feature in specifying the filtering Where clause. The View Criteria feature is a powerful one as it allows the programmer to name each Where clause essentially, and reuse that Where clause throughout the program, potentially in combination with other named View Criteria. For an example of this reuse have a look at how the new LOV controls in ADF Faces Rich Client support the defined View Criteria.

Obviously Declarative View Objects aren't for everyone, but they provide an interesting new feature extending the declarative programming concept in JDeveloper. Soon there wont be much programming left to actually do!

One caveat I need to state with this post, and I forgot previously with the Property Sets post, is this feature is currently available in the JDev 11g Drop 6 release (and potentially TP4) that the Oracle ACE Directors have access to. There's the possibility it wont be in the production release, but maybe we'll know for sure in a week or so.