<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #243 - Jun 06, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-06-06">

<link rel="stylesheet" type="text/css" href="/netbeans.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">

<!-- ====================================================== -->
<!-- Please do not edit this file by hand, it is rebuilt    -->
<!-- automatically and your changes will be lost.  Contact  -->
<!-- webmaster for details.  Rebuilt at                     -->
<!-- #TIMESTAMP# 06-Jun 14:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #243 - Jun 06, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #243 - Jun 06, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-06-06.html'>https://netbeans.org/community/news/newsletter/2006-06-06.html</a>&gt;<br>
Interested in becoming a newsletter editor?  We're always looking<br>
for editors to help out. Contact <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
<hr><pre>Flash Demo: 2-way UML Modeling
Roumen prepared a short flash demo of 2-way UML modeling in NetBeans
Enterprise Pack 5.5 Beta. Check out the demo to see how code gets
generated during visual modeling of classes and how changes of code
are propagated back to the model:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=513">http://services.netbeans.org/newsletter/story.php?id=513</a>&gt;

NetBeans Day Presentations
Visit the new Evangelism page to get NetBeans Day 2006 presentations
and other materials such as Flash demos and hands-on labs.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=514">http://services.netbeans.org/newsletter/story.php?id=514</a>&gt;

JavaOne Hands-on Labs Available
The list includes NetBeans Enterprise: Basic UML Modeling; Developing
Interoperable Next Generation Web Services with GlassFish, NetBeans,
and WSIT; Building Production Quality GUI Applications using NetBeans
5.0 GUI Builder (Matisse); NetBeans 5.0 Plug-in Development and more.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=515">http://services.netbeans.org/newsletter/story.php?id=515</a>&gt;

Using Hibernate with the Java Persistence API
One of the main features of the new Java Persistence API that was
introduced with the Java EE 5 platform is that you can plug in any
persistence provider that you want. The Sun Java System Application
Server 9 ships with Oracle's Toplink persistence provider. In this
tutorial, you will install the Hibernate persistence provider on the
application server and use it to develop a quick application that
accesses a database with the Java Persistence API.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=516">http://services.netbeans.org/newsletter/story.php?id=516</a>&gt;

Introduction to Java Servlets with NetBeans
At the completion of the tutorial, you are expected to comprehend the
concept of the Java Servlet, be familiar with the ways to create Java
Servlet using NetBeans 5.0, differences between POST and GET and should
be ready to go to the next level.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=517">http://services.netbeans.org/newsletter/story.php?id=517</a>&gt;

A Single-Mouse-Gesture Color Chooser for Swing
Have you ever needed a faster, slicker way to let your users select a
color in Swing? Tim Boudreau has setup a new java.net project, which
produces such a widget. Press the mouse and a palette pops up; drag
over the palette and release when the color is right; use combinations
of ctrl/alt/shift to switch palettes.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=518">http://services.netbeans.org/newsletter/story.php?id=518</a>&gt;

Talking About Tabs
Do you know how to create tabs for your Swing applications in the IDE?
If not, Geertjan explains how in his blog:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=519">http://services.netbeans.org/newsletter/story.php?id=519</a>&gt;

Debugging SJS AS 7
Need to debug an application that is deployed to version 7 of Sun Java
System Application Server?  You can use the Attach feature of the
NetBeans IDE debugger; Gregg Sporar shows you how in this blog entry:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=520">http://services.netbeans.org/newsletter/story.php?id=520</a>&gt;

Pilot: NetBeans TV! Interview with NetBeans Field Guide Author
In this first episode of NetBeans TV, NB Evangelist Roman Strobl
interviews NB Field Guide Author Patrick Keegan. Please watch and let
us know what you think. What should be on the next episode? Who do you
want to meet? What do you want to hear about?
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=521">http://services.netbeans.org/newsletter/story.php?id=521</a>&gt;

Developing for the SavaJe Mobile Platform
This guide will get you started quickly running and developing CDC
Applications (Xlets) for the SavaJe Operating System (OS) using the
NetBeans Mobility Pack. The tutorial takes you through some of the
basic steps of working with the new project system. This document is
designed to get you going as quickly as possible.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=522">http://services.netbeans.org/newsletter/story.php?id=522</a>&gt;
Visit Lukas Hasik's blog for further information and resources.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=523">http://services.netbeans.org/newsletter/story.php?id=523</a>&gt;

Update 1 for NetBeans Mobility Pack 5.5 Preview for CDC
All users that want to develop CDC/PP/AGUI applications for the SavaJe
Jasper S20 please download the update 1 of the NetBeans Mobility Pack
5.5 Preview for CDC. The new build contains a few fixes that were
discovered during the JavaOne conference. You can now develop
applications using the free design layout and deploy them.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=524">http://services.netbeans.org/newsletter/story.php?id=524</a>&gt;

Standing on the Shoulders of Giants
Is Jackpot just another refactoring tool? What can it do for me? We had
a little chat with Tom Ball, leader of the Jackpot development team,
and had him answer these and other questions.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=525">http://services.netbeans.org/newsletter/story.php?id=525</a>&gt;

Meet a NetBeans Module Writer: Alex Lam
The Napkin Look & Feel lets you create a "draft" look for an
application. NetBeans Staff met with Alex Lam to grill him about the
great new module he's working on: integrating Napkin with NetBeans IDE,
and any other application built on the NetBeans Platform.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=526">http://services.netbeans.org/newsletter/story.php?id=526</a>&gt; </pre><hr>This issue of NetBeans Weekly News was brought to you by Robert Demmer.<br>
The next editor will be Robert Demmer. (New volunteers are welcome!)<br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a></BODY>
</HTML>