Using IFrame Shim to (partly) cover a Java applet
26 October 2007 at 20:31 CEST | In Other, Software development | 47 CommentsThis week I had a conversation with someone who was interested in integrating Oracle Forms and JSF. They had some issues with the Forms Java applet and a JavaScript/CSS dropdown menu. They wanted to have the dropdown menu to appear in front of the applet. The default behavior of both Internet Explorer and Firefox is to always draw the Java applet on top. This is not something you can fix by setting the z-index or any other CSS property.
I was intrigued by this problem and wanted to find a solution. I can see it being a very common requirement to have a JavaScript/CSS dropdown menu in a web application that embeds Oracle Forms. This can lead the way to replacing the former Oracle Forms menu with a web based menu. Then, over time one can change menu-items that call pages embedding an Oracle Form to menu-items that call "true" web pages. This is clean and smooth path to migrate from Oracle Forms to JSF (or any other web technology) without a big-bang rewrite of all your Forms.
After some googling, I found the solution (aka trick). It's got the nice name "IFrame Shim". Some objects, like applets, select-boxes and iframe's are not actually drawn by your browser but by the operating system. These objects are always on top of the HTML elements rendered by your browser. You cannot put them below HTML elements with a lower z-index. The key to the solution is that both applets and iframe's are managed by the operating system. You can layer these with respect to each other with the z-index. You can create an iframe with the exact same position and dimension as the div (or any other element) you want to float on top of the applet. You can have the iframe sit on top of the applet with a higher z-index. The HTML (e.g. div element) can float on top of the iframe with an even higher z-index.
You're not putting any content or document in the iframe. It's just a trick to have your browser layer the HTML element on top of the iframe and the two of these on top of the applet. See for your self with a simple demo or look at the source code below. I've tested the solution with MS Internet Explorer 5.5, 6.0, 7.0 and Mozilla Firefox 2.0.
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<script type="text/javascript">
function mouseIn() {
// create an iframe at the exact same position and
// size as the sub div
// Google "iframe shime" for more information
var shimmer = document.createElement('iframe');
shimmer.id='shimmer';
shimmer.style.position='absolute';
// normally you would get the dimensions and
// positions of the sub div dynamically. For demo
// purposes this is hardcoded
shimmer.style.width='150px';
shimmer.style.height='80px';
shimmer.style.top='100px';
shimmer.style.left='80px';
shimmer.style.zIndex='999';
shimmer.setAttribute('frameborder','0');
shimmer.setAttribute('src','javascript:false;');
document.body.appendChild(shimmer);
// make sub div visible
var sd = document.getElementById('subdiv');
sd.style.visibility='visible';
}
function mouseOut() {
var sd = document.getElementById('subdiv');
sd.style.visibility='hidden';
var shimmer = document.getElementById('shimmer');
document.body.removeChild(shimmer);
}
</script>
<style type="text/css">
#maindiv {display:block; width:150px; height:80px;
background:red;}
#subdiv {display:block; width:150px; height:80px;
background:blue; position:absolute;
top:100px; left:80px;
z-index:1000; visibility:hidden;}
</style>
<!-- top level div -->
<div id="maindiv" onmouseover="mouseIn();"
onmouseout="mouseOut();">
<p>MAIN DIV</p>
<p>move mouse here</p>
</div>
<!-- subdiv that gets shown when mouse hovers
over top level div -->
<div id="subdiv">
<p>SUB DIV</p>
</div>
<!-- java applet -->
<applet style"border:1px solid blue;"
codebase="http://java.sun.com/applets/jdk/1.4/demo/applets/Clock/"
code="Clock.class" width="170" height="150">
</applet>
</body>
</html>
Movie showing JSF component to integrate Oracle Forms
24 October 2007 at 08:36 CEST | In Demos, Forms, JDeveloper, Oracle, Web components | 4 CommentsI'm about to release a JSF component library to the public that can integrate Oracle Forms in a JSF/ADF Faces web application. As a sneak preview I've already put up the first screencast movie demonstrating how easy it is to embed an Oracle Form in a JSF page.
The component library not only supports the embedding of a Form like shown in the demo. It also allows you to pass parameters to the Form, pass parameters back from Forms to JSF, execute JSF navigation from Forms PL/SQL. On top of all that, it only starts the Forms applet once for your entire web session. So even when a user is switching between pages with and without an embedded Form, the user will not have to wait 5-10 secs for the Forms applet to start.
If you're interested please check back soon for more information. If you're visiting Oracle OpenWorld this year, be sure to enroll for my session on Monday. I'll be talking about the technical details of JSF-Forms integration and will also be showing the JSF component library that was used to create this demo movie.
Got featured in Oracle Magazine
24 October 2007 at 08:15 CEST | In Oracle | Leave the first commentThe online version of Oracle Magazine for November-December is published. Eurotransplant is in there this month. It's in an article by David Baum which looks at three customer who are successfully using SOA technology. Sometimes it's good to take a step back and see how other people perceive our progress. When you're in the middle of it you see all the (small) problems/challenges on your path. Once you step back and look at the whole picture, you realize how far we've come and how many changes we've adopted to over the last two years.
Can't wait to get my hands on the paper version in the mail or at OpenWorld. Just before the deadline we had a photographer take pictures of Murk Schaafsma and me. It must be a strange feeling to see your own picture in print for a magazine with over 1 million issues.
The article even mentions our ODTUG award wining technique to integrate Oracle Forms and web applications. Keep tuned to this blog, as I'm very close to releasing a full featured JSF component library to handle all this integration for you. It's a matter of dragging and dropping a JSF component to a JSF page and you have instant integration!
Here's the snippet about Eurotransplant:
Based on the successful Oracle Forms-to-SOA strategy underway at Eurotransplant International Foundation, the answer is yes. This not-for-profit organization helps coordinate the supply of organ donations and related information to institutions in the Netherlands, Germany, Luxembourg, Belgium, Austria, Croatia, and Slovenia, bringing together hospitals, transplant centers, and laboratories into a collaborative framework. Instantaneous communication is essential in the life-or-death situations that Eurotransplant confronts each day, and the foundation has a long history of using Oracle Forms to provide physicians with current information about available organs and patient waiting lists.
SnapshotsMurk Schaafsma, development manager at Eurotransplant, and his colleagues are now upgrading their core information systems while exploring the opportunities presented by Java and SOA. "BPEL [Business Process Execution Language] and SOA are helping us implement a system that supports our back office in the time-critical organ allocation process," says Schaafsma. "The system will give us a more patient-safe process and, in addition, we can fulfill the wishes for more transparency, which is increasingly desired by patients and national authorities."
Wilfred van der Deijl, the system architect at Eurotransplant, says an SOA will allow the foundation to accommodate disparate business rules while retaining their investment in Oracle Forms. "We want to deploy an evolutionary model, not a revolutionary one," he says. "In the past, adopting a new technology frequently meant we had to abandon the old technology. With SOA and Oracle BPEL Process Manager, we are proving that we can service-enable our existing systems and reuse them in the new architecture."
Eurotransplant uses Oracle BPEL Process Manager to help developers translate business requirements into workable information systems that can be implemented by the IT department. "Allocating available organs to the appropriate patients is a complex process requiring a great deal of flexibility," van der Deijl says. "Oracle BPEL Process Manager allows us to develop process-driven applications that truly support the people who will be executing these business processes."
Eurotransplant developed a technique to reuse its existing Oracle Forms, which used to be at the core of many of Eurotransplant's data-entry applications, in new user interfaces that were being built. The technique uses Oracle JDeveloper and Oracle Application Development Framework (Oracle ADF) technology. "With Eurotransplant's background firmly rooted in Oracle Forms, Oracle JDeveloper and Oracle ADF have allowed the organization to use its existing skill set to realize the benefits of SOA technologies quickly," says Grant Ronald, group product manager, application development tools, Oracle. Indeed, Eurotransplant's approach won the organization the 2007 Editor's Choice Award at the Oracle Development Tools User Group conference
Fellow Oracle bloggers, please join our LinkedIn group
4 October 2007 at 16:29 CEST | In Blogging, Other | 6 CommentsIf you're a fellow Oracle blogger, please join the new LinkedIn group "Oracle Bloggers". This will help you to get (and keep) in touch with fellow Oracle bloggers. You'll be able to contact each other, and we can use it to facilitate things like the bloggers dinner at Oracle OpenWorld. Having the "Oracle Bloggers" group logo on your profile page might also be an asset to your LinkedIn profile, but that's your own call
If you've already got a LinkedIn account, you can also look at the current members before joining. The group will accept anyone with an Oracle related blog aggregated at orablogs.com, orana.info or listed at blogs.oracle.com. Please give it some thought, and join.
PS. If you know any other Oracle bloggers, please ask them to join as well.
If you've never heard about LinkedIn, here is their own introduction:
LinkedIn is an online network of more than 14 million experienced professionals from around the world, representing 150 industries.
When you join, you create a profile that summarizes your professional accomplishments. Your profile helps you find and be found by former colleagues, clients, and partners. You can add more connections by inviting trusted contacts to join LinkedIn and connect to you.
Your network consists of your connections, your connections’ connections, and the people they know, linking you to thousands of qualified professionals.
Through your network you can:
- Find potential clients, service providers, subject experts, and partners who come recommended
- Be found for business opportunities
- Search for great jobs
- Discover inside connections that can help you land jobs and close deals
- Post and distribute job listings
- Find high-quality passive candidates
- Get introduced to other professionals through the people you know
LinkedIn is free to join. We also offer paid accounts that give you more tools for finding and reaching the right people, whether or not they are in your network.
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.

