Skip to main content

Posts

Showing posts from 2007

Changing appearances.

Lately I've been working on an application that can serve offices in different countries. So what I hear you say.........I do that every day.............use the 'locale.language', use a bundle and be happy ;-) Ok, I know that, but I want to have changing appearances, not only changing text. That can also be done by using a skin selector for instance like the one below:

<skin-family>#{facesContext.viewRoot.locale.language=='de' ? 'german' :
'english'}</skin-family>

You can use this in the same way as I did in one of my previous posts.

However, I want the application to behave in a way that not the whole look and feel changes, but that only some country specific elements automatically change. I will not go in to the details of the application, but I will try to explain the concept, based on license plates. Imagine a car rental company with cars and offices in different countries.

Whatever country (or even state for that matter) you are in, the

Hibernate untill your ADF-faces Spring (part II)

If you are an ADF developer with an Oracle forms background, you've probably been using ADF Business Components to implement the business and integration layer of your webapplications. So have I. Hibernate was new to me, and I will try to explain just a little bit in this post. I have some very good developers in my team that do the hard work on the hibernate part of this project. I will keep it simple and just explain some of the basics.

The persistence layer contains a set of classes and components, which handle the tasks of persisting or retrieving objects to or from the underlying database. This layer includes a domain model that includes the business entities. Hibernate is a typical example for technologies used in this layer.

There is a thing to keep in mind. You don't write sql queries. The hibernate framework will generate those for you. This is called "Hibernate Query Language" (HQL). The generated Language is based on the tye of database that you are connect…

Hibernate untill your ADF-faces Spring (part I)

It's october and summer ended a couple of weeks ago. A lot of rodents and bears prepare for winter and hibernation. So will I! I got involved in a project in which creativity was pushed to the limit in a very early stage.

We wanted to do a project with ADF (full framework) for one of our customers. This approach wasn't allowed. I've been mailing and talking about this case with some people at oracle (Steve Muench a.o.) but it is at it is...Either you like it or you don't. There are customers who, for whatever good reason, don't want to use ADF. John Stegeman wrote a nice entry on his blog about the pro's and cons, and about 'pride and prejudice' concerning JDeveloper and ADF.

In this case however, instead of forbidding the use of any part of the ADF, my customer decided to allow a Poc (Proof of Concept) in which I (and my co-workers) were allowed to use the ADF-faces part of the framework.

The consequence was that we had to think of an alternative applica…

New kid on the block !

It's been a quit month on my blog but I've been very busy "fooling around" lately.

That is what happens to you when you become a father for the first time. Less sleep......but tons of fun ! One thing that my daughter allready made clear to me is is that my time is no longer only available to Jdeveloper and ADF. Every time I find some minutes to do some research at home, she will start telling me that she wants to eat, or play, or that she want's some attention. I made it my personal goal to teach her (she's 8 weeks old now) ADF as soon as possible, so I get to spent more quality time with her ;-)

My daughter wasn't the only newborn. There actually is another one: "Oracle JDeveloper 11g Technical Preview 2 - (Build 4684)". It can be downloaded here.
It is the first preview which has a automated migration process for 10g apps.

Steve Muench announced it on his blog. You can find a link to the migration guide there as well. I'm curious to find out…

Easy scrolling in a table

If you have a backgound in Oracle Forms, you'll really like this post, because you are used to these functions: "key-up, key-down, current-record-visual-attribute", and so on........Especially the arrow keys to scroll a table !

It is possible to implement this in an ADF application. It takes some time to figure out, but it works, at least I'm very close now.

Using some of the logic from one of my previous posts I managed to implement "easy scrolling".

It take some javascript;
0: make the row current after click. "makeCurrent()".
1: find out the key pressed "checkKey()".
2: do the up or down action "nextRow()" and "previousRow()".
3: make sure you don't loose focus "holdCurrentField()".

You'll have to add onclick="makeCurrent()" and onkeydown="checkKey()" to every column in you're table. This will cause t…

Demo projectfiles available online

Some of you bloggers have been asking for source code of the application. It took me a while to make this available online. One of the reasons is that blogger does not support file upload (other than images).

After googling around for a while, I decided to use googlepages. You can find the project files here. For now there's only a draft version of the MyFacesPopup and the PullDownMenu. Navigation is not yet working in this version of the Menu, but I'm sure you'll get it working.

In my comming posts I will put direct references to the correct version of the dwonloadable demo's.

Save limited space; use MyFaces popup's

Sometimes I wonder how to put all these visual elements on an already overloaded page. Customers have their needs for functionality, but sometimes just don't know when to say STOP. We need this, we need that ............ I wondered if all this functionality has to be available at any time, and if so, if it should be visible.

What if I was able to 'partially hide' elements, and bring them into view only if a user really needs them ? I used one of the Myfaces components. In this case the popup.

A Popup will only "popup" at the location where it is defined. It works more or less in a "now you see it, now you don't" way. The functionality in this popup works the way it should. By using the popup, I was able to add functionality to my page, without overloading the page with visual components. Below you see the page. It has (somewhere) functionality to customize the page.



If the mouse is over the "Customize Your Application" text, the popup is sho…

Fun: Milleniumbug's are still around

I was sure that back in 1999 I found and coded my last fix for the milleniumbug. Maybe that was true for me, but even today they are around, even in brandnew products. In the new release of google analytics I found one.



If you open the extended calendar, they will tell you it's 1907...........
1907 was a great year for wine perhaps, but I dont think there was an internet back then.

However, analytics is a very usefull tool for me. And I'm sure they can fix it.

Total Recall.......DBA's go wild !!

Today Oracle launched the 11g database.

It's all about the yingyang of requirements and innovations.



If I just had the time I would tell you about it, but for now I'll just redirect you.


Read the press release here.

And read on the new features here.

And just for fun............ go here and Watch the July 11 Webcast.

It is the only way !!!

What's (on) your menu ?

Imagine a restaurant which serves great food, preferably your own favorite restaurant. Now imagine that this same restaurant, has your own personalized menu. Wouldn't that be great. You could just go there and eat whatever you feel like at that moment.

The same goes for the application you build. If you use ADF-Faces and a panelpage with menu facets to show the menu in your application, the framework tells you how your menu works, and almost what it looks like.

So this is what my menu looked like.



The ADF-faces menu has a couple of annoying features. First of all the size of the Menubar. If you have about 10 menu items (or less but with very long labels) the end users have to scroll to the right to see all items. You would easily miss the menu items on the far right. End users just love the pulldown menu's that they are used to. They use it in OracleForms, they use it in TwoLetterWord Office, and so on.

Secondly, the faces-config, in which the menu is configured will load only onc…

Sliding into view

A couple of days ago some one asked me if it was possible to bind inline style properties to a backing bean using Expression Language. I knew this was possible so I explained him how to do that. This also was a nice opportunity to try out how an af:inputNumberSlider works. I wanted to use the value of the slider to set the fontsize in the rest of my example application.






It worked ! Here's how I did it.
First you have to drop the af:inputNumberSlider on your page. You also have to drop an af:outputText on your page. This textfield will contain the displayed text. If you want the page to use the value of the slider immediately, you have to set the autosubmit property of the slider to true. After that, give the slider an id and use this id in the partial triggers property of the inputtext.

Finally you have to bind the slider and the outputtext to a backingbean. In this bean you will read the slidervalue and use it to set the size of the text in the outputtext.

The source of the bean loo…

Whats new ?

Recently this blog was mentioned on 'blogs.oracle.com' and on Steve Muench's weblog . Thanks Steve ! I guess my weblog is getting more popular by the week ("I Love Google Analytics").

So I want to put some really new stuff here. I also want to post at least once every week..... Here's my challenge !

I want to write on templating, LOV's and other new features, but that takes time. And I'm not just doing stuff for my blog. I'm also working ;-)

But I'll see what I can do. First I'll try to isolate some solutions we had to implement in the prvious project. And if there's more time ......

One size fits all.

I've been playing with the Jdeveloper 11G technical preview during this week and it's a lot of fun. The new ADF-Faces contains some very nice sizing components.

So from now on you don't have to try every possible size for columns and panels. Just use panelsplitters and adf tables and have your end users try for themselves. Here are some examples that I just created. If the images are too small, just click on them.....



Compare the order of the columns in the table below with the order in the table above. You can just drag and drop them runtime.



If you use the panelsplitter (click on the arrow) you can hide a pane runtime. Look below..... the menu has disappeared.



You can also resize the panels and columns. There is no coding required at all !!!
Just drag the borders to the size you want.

See here for the panels....


And here for the columns....



Finally the date select isn't a popup window anymore and that's very nice as well.



I'll be playing around for the next couple of…

JDeveloper 11G Technical Preview

Oracle released the JDeveloper 11G Technical Preview.


Want to know more on this Tech. Preview , then go to http://www.oracle.com/technology/products/jdev/11/index.html

How to hide the * for required fields

Sometimes it is annoying to see the '*' in front of a required field.
If a customer demands the '*' to be removed, you really have a problem !
It seems to be impossible to remove it and a lot of people say that it is.....................

But here is your solution.

If you put the following line of code in your stylesheet, the '*' will not be displayed !

.xi {
display: none;
}

For outlining everything, you can use the ussual stuff.

More to come

Project planning

From september on I've been working hard on a very exiting project. Thats why it has been very quiet on my weblog. However, in this project we found a lot of briljant solutions for common problems.... You can decide to avoid problems... but you can also try to solve them. The latter is what we did. Some solutions will be posted here shortly. I've more time now, so I'll try to post every week from now on.

Hint................
Using a Mulitselect listbox to create an in clause in a sql-query
And lots more.