<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #252 - Aug 07, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-08-07">

<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# 07-Aug 19:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #252 - Aug 07, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #252 - Aug 07, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-08-07.html'>https://netbeans.org/community/news/newsletter/2006-08-07.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>Got the Borland Blues? Migrate Your JBuilder Projects to NetBeans for Free
Borland is no longer investing in developer tools.  Don't worry. Sun as
the tools to meet your needs, and they're free.  To ensure your success
in adopting NetBeans, Sun Developer Services is offering JBuilder users
free programming support until October 31th. Read more:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=672">http://services.netbeans.org/newsletter/story.php?id=672</a>&gt;

Visual Mobile Designer Custom Components Tutorials
The Visual Mobile Designer (VMD) is a graphical interface within the
NetBeans Mobility Pack that enables you to design mobile applications
using drag and drop components. These two tutorials detail how to take
advantage of the Wait Screen and Table Item components.
Wait Screen: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=673">http://services.netbeans.org/newsletter/story.php?id=673</a>&gt;
Table Item: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=674">http://services.netbeans.org/newsletter/story.php?id=674</a>&gt;

NetBeans xDesign Team
Did you ever wonder why your IDE's windows float and slide? Where do
Wizards come from? How many icons are in the IDE? And who put them
there? Hear it straight from the only ones who can claim to have worked
on every single IDE component -- and get invited to Prague.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=676">http://services.netbeans.org/newsletter/story.php?id=676</a>&gt;

Creating a Simple Spring MVC Web App with NetBeans 5.0
This introductory tutorial shows you how easy it is to use the Spring
library to build web applications with the NetBeans IDE.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=675">http://services.netbeans.org/newsletter/story.php?id=675</a>&gt;

So You've Got A TTV...
So, you've used the NetBeans APIs to implement a tree table view. The
nodes are in the Y axis and the properties in the X axis.
Congratulations! But do you know how easy it is to let the user click
on the column headers to sort the rows? Either ascending or descending?
Read Geertjan's blog to find out:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=677">http://services.netbeans.org/newsletter/story.php?id=677</a>&gt;

HTML Authoring in NetBeans IDE
Tim Boudreau has a very useful set of NetBeans modules for authoring
HTML in the IDE. He adds project support for HTML folders, a  navigator
for HTML files, and a host of other advanced features that make writing
HTML in the IDE much much easier. You can download the modules straight
from his blog:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=678">http://services.netbeans.org/newsletter/story.php?id=678</a>&gt;

Set API Permissions to Your Project
In Java ME you can define what API your application will use. It is
easy to set these settings with NetBeans Mobility Pack. Check out
Lukas's blog for more information.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=679">http://services.netbeans.org/newsletter/story.php?id=679</a>&gt;

JFugue API Gathering Even More Speed
"Offering a musical equivalent of the simple Note Pad application, the
JFugue Music NotePad project combines the NetBeans API with the
recently-updated JFugue, to create a simple drag-and-drop music editor,"
announced java.net. Dave Koelle, the creator of the JFugue API, also
wrote to say that Elliotte Rusty Harold's "Cafe au Lait"
(www.cafeaulait.org/) has a focus on JFugue as well. Check it out --
and join the new open source project for NetBeans integration at:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=680">http://services.netbeans.org/newsletter/story.php?id=680</a>&gt;

Command Line CVS, NetBeans, and java.net
Using command line CVS to set up a  java.net project for use in
NetBeans IDE is pretty easy... when you read Evan Summer's blog. He has
an ongoing series of tips and tricks, with the latest on this particular
subject. Have a look here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=681">http://services.netbeans.org/newsletter/story.php?id=681</a>&gt;

NetBeans in Nigeria!
Last year, a Sun Tech Days was held in Johannesburg, South Africa. Last
week, a Sun Developer Day was held in Lagos, Nigeria. NetBeans
enthusiast Aladejebi Ayodeji was there and reported on the event in his
blog. If you haven't read it yet, you should definitely check it out
(also for the cool photos):
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=682">http://services.netbeans.org/newsletter/story.php?id=682</a>&gt;

NetBeans Evandalists #26
"The punchline better not be anything about a NetBeans IDE ice pack."
Check out the latest installment of our beloved Evandalists cartoon
brought to you by Ruth.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=683">http://services.netbeans.org/newsletter/story.php?id=683</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>