NetBeans 6 delivers great updates to the Matisse GUI builder. Spend a few minutes with Roman Strobl and get an expert briefing on what's new and what has changed. (sponsored)
In this, the third and final installation of Andres' Introduction to Groovy series, you learn about how Groovy handles variable numbers of arguments, named parameters, currying, and more about Groovy operators. Including, some new operators.
Swing Fuse (actually just Fuse), is a framework designed to make it easier to create your own custom desktop components. In this article, Daniel Spiewak shows you how to get started and provides sample source code you can download.
Willam Louth shows how he uses JXInsight Probes to investigate probable performance issues with code bases that he is not familiar with. He also highlights possible pitfalls in creating a benchmark, as well as in the analysis of results.
Yesterday
we magically transformed one of the
Filthy Rich Client
samples into a plugin. However, when we installed our plugin into NetBeans IDE, we discovered that the functionality we were providing was superfluous, or even contradictory, to what NetBeans IDE already had, because NetBeans IDE already caters for a progress bar, thanks to its reliance on the NetBeans Platform. Kind of like moving all your furniture to your new house, only to discover that your new house already has furniture. But, better furniture! Attractive furniture. Furniture that has withstood the test of time.
So, before we create a new
application
, as promised yesterday, let's create a new
plugin
. We'll take
another
of the
Filthy Rich Client
samples. This one is called
StackLayout
and is discussed in chapter 10 of the book. This is what it looks like when you run it:
Now that's a pretty application! When you use your mouse to select a photo in the background, it comes to the foreground, and all the others move to the back. A custom layout is used to create this effect, and if you want to know more about it, get the book and read chapter 10! So, what we will do now is create a plugin that holds all the code that is used to create the above effect. When we are done, we will install that plugin into NetBeans IDE. It will look like this:
So, we will create a new window in NetBeans IDE and we will also copy all the code from the Filthy Rich Client sample into our module's source structure, as done yesterday. (All the classes in our plugin are shown in the screenshot above, in the left part, where you see the complete source structure of our plugin-to-be.) However, because we now have a more useful example (i.e., imagine the above as a splash screen or as a standlone photo application, for example), we will be doing a pretty useful thing by porting the sample to a plugin, since we will then (as we will see) be able to install that same plugin into a variety of
other
applications too.
So, let's begin! Everything will be explained, down to the smallest detail, using screenshots to guide you on your journey.
So, our journey begins by taking a quick look at the Filthy Rich Client sample's source structure. The Projects window shows us the following:
At the same time, the Files window shows that we also have a folder that contains the sample's photos:
Let's get going. The sooner we get the beautiful sample above transformed into a plugin, the better! In the New Project wizard (Ctrl-Shift-N), select the Module template, highlighted below:
Click Next, fill in the name of the plugin, and leave all other values at their defaults:
Click Next again and fill in some more details, such as the 'code name base', which is simply a unique identifier of your module:
Click Finish. Now we have the source structure of our plugin, shown here below the sample in NetBeans IDE:
And now, just copy ALL the Java classes
and
the photos into your module's source structure:
What I did was, I put everything that was in the original sample's default package into the module's main package. I then had to add package statements to each of these classes, because they didn't have package statements to begin with (since they were in the default package in the original sample). I created a new subpackage called 'images'and just copied the images into that. I added the original 'io' package from the original sample to the module source structure, without changing anything.
Right. We haven't done any coding yet, have we? We've rudely plagiarized everything thus far. Let's continue, because now we need a window that will display the cool photos from the original sample. We'll get a handy template for creating new windows, if we go to the New File wizard:
Click Next. Here we specify the area where we want the window to appear. Let's choose the 'editor' area, i.e., the area where the Source Editor is found:
Next, we type a name, which will be the prefix of the generated classes and files:
As you can see, NetBeans IDE helpfully tells you what is about to be done for you, i.e., which classes and files will be generated and which existing files will be changed.
Click Finish. Now you see a bunch of new classes and files in your plugin source structure:
You now have a
TopComponent
, which is your window, two XML files for serialization (neither of which you will ever need to touch), and an
Action
class that will appear in the Window menu (because of registration entries generated into your XML layer file), for opening the window.
Right-click and choose "Install/Reload in Development IDE". The plugin is then installed in the same NetBeans IDE where you are currently developing, displaying a beautifully empty window, ready for you to work with:
What we now have, i.e., that window, is called a
TopComponent
. Think of it as a
JFrame
, but then an extremely magical
JFrame
. A
JFrame
on steroids. It is a
JFrame
that integrates into NetBeans Platform applications, as can be seen in NetBeans IDE above. You can use Matisse to design it, just like any other Swing container. Alternatively, you can just code everything into the source view, without using the design view at all.
For the sample's code to work with our
TopComponent
, we need to set the layout of our
TopComponent
to
BorderLayout
, so in the Design view, right-click on the window and choose Set Layout | BorderLayout.
We need to move the code from the original
JFrame
(called
ApplicationFrame
) into our
TopComponent
. Open the
JFrame
and notice the constructor is defined as follows:
Copy that code, but not the last three lines which are not needed since the NetBeans Platform already handles those details, and paste in into the
TopComponent
constructor:
Now copy all the other methods, that are in the original
JFrame
, i.e., only the ones that are needed by the method calls above, into the
TopComponent
.
Finally, in the
AvatorChooser
class, goto line 577 or thereabouts and tweak the reference to the location of the images. Originally, they were in "./images", now they are in "images". Make that small change and your images will be found correctly. (You might encounter problems with the loading of the images, despite this change, which I want to come back to at a later point.)
Install the plugin again and the same user experience as before with the
JFrame
will have been transformed to the
TopComponent
:
Okay, now what's the point of all this? Right-click the plugin that you created and choose the "Create NBM" menu item, shown below:
Now take a look in the Files window, where you should now see a file that ends with the letters "NBM":
An NBM file is an archive file. It is essentially a ZIP file and you can open it with any tools you use for unzipping any other ZIP file. However, it contains metadata that any NetBeans Platform application understands. What this means will become apparent later.
Since our NBM file can be installed in any other NetBeans Platform application, it is polite to provide some information
about
the plugin. When you right-click on the project node, you can go to the Project Properties dialog and use the following two panels to provide some basic info:
And now... it is time to reveal that
all
applications on the NetBeans Platform (except where this might have been disabled, although there's no reason for that) have a Plugin Manager under the Tools menu. Think 'Synaptic Package Manager', if you are a Linux Ubuntu user. The NBM file we created can be installed via that Plugin Manager, as can be seen here, in
any
other NetBeans Platform application:
So now, let's create a NetBeans Platform application of our own. Back in the New Project wizard, choose the Module Suite template:
Click Next, give it a name, click Finish. Go to the Project Properties dialog, to the Libraries panel, and
unselect
everything
except
the
platform7
item, as shown here:
All the others in that list have been added on top of
platform7
, to create NetBeans IDE. We don't want NetBeans IDE. We
only
want the NetBeans Platform. And, by deselecting all the others, above, we have the absolute basic set of modules, i.e., the bare minimum, which together constitute the NetBeans Platform.
Right-click the project and run it. Now... we have the NetBeans Platform. Tada...
The above is a
modular Swing application framework
. In fact, it is the only application framework for which all those words are true. It is the basis of your Swing application, providing all the features (and more) that every Swing application typically needs.
Note:
Anything you do
not
want from the NetBeans Platform can easily be excluded. What you see above is the basic starting point. You can weed and tweak and hide and disable items from here and then add and extend to your heart's content! Splash screen and title bar can be set in the module suite's Project Properties dialog, back in NetBeans IDE.
Under the Tools menu you have... the Plugin Manager! What did you do to get that? Nothing. Choose that Plugin Manager and install the NBM file. Now you have your new window with photos! You also have a lot more. Under the Window menu you will, for example find the 'Favorites' window, which is a file browser that the NetBeans Platform gives you for free. Open the Favorites window and your own picture gallery and you see the following:
Note:
Not all plugins in your application would be installed via the Plugin Manager. (For example, the Favorites window you see above comes from a plugin too, but that one is part of the NetBeans Platform.) If you look in the Projects window, at the module suite's 'Modules' node, you will see that you can add modules there. Those will be the ones that your user gets by default. The Plugin Manager is for adding
additional
ones, either updates to existing functionality or new features that you distribute via 'update centers'. An 'update center' is defined by an XML file that describes the location (and other info) of each plugin that you want to make available. Your users would register that XML file (which you would have on-line somewhere) in their Plugin Manager and then the Plugin Manager would download those plugins on request.
Chances are, though, that you want to replace those images with your own. That's the point of a picture gallery, isn't it? You don't want these anonymous (though pretty) pictures in your personal photo gallery. One thing you can do is... go to the Tools menu and choose Options. Wow... you have an Options window:
You can
extend
that Options window. (You can also hide as much of it as you like, even all of it, if you don't want to give your users any options at all.) Add your own panels and let the user specify pictures they would like to see in their picture gallery. That Options window extension would be part of the same plugin that provides the picture gallery. There is a wizard that, just as in the case of the window earlier in this story, generates the basic classes required for Options Window extensions.
Here
is a tutorial that will explain everything in this regard.
Finally, there's something else to notice. You can drag your window around the frame, moving it to wherever you feel most comfortable with it. You can even move it right out of the frame altogether, which is a new feature in NetBeans Platform 6:
And
that
is the meaning of a 'docking system', also known as a 'windowing system'. You get that out of the box when you create your application on the NetBeans Platform. In other words, each
TopComponent
comes prepackaged with functionality for minimizing, maximing, dragging, and undocking itself. Together, all these
TopComponents
constitute the docking system.
So, in conclusion, what have we gained from the NetBeans Platform? I think the answer is obvious. We have a pluggable application, for free. Free not only in the sense of money, but also in the sense of coding. For no coding whatsoever, we're able to extend our application. Even if it were to be small in the beginning, it now at least has the potential to grow. Other features we have seen here are a docking system, an Options window, and a file browser. But that's all just the tip of the iceberg. Virtually every part of the NetBeans Platform can be extended, as in the case of the Options window, pointed out above. Resources are many and complementary: the
NetBeans Javadoc
and
NetBeans Platform Learning Trail
, together with the vital mailing list (
dev at openide dot netbeans dot org
) and the recently published
Rich Client Programming: Plugging into the NetBeans Platform
.
And this is the end of this 3 part series! I hope it has shown a lot of different interrelated things. How NetBeans IDE can be a filthy rich client, for example. But also, how the richness of one NetBeans Platform application can make all other NetBeans Platform applications equally rich. A lot of functionality is interchangeable because of the pluggable nature of NetBeans Platform applications.
Once the plugin is created you mentioned about an XML file to update centers. Can you explain this a little more?
I didn't realize how Netbeans plug-ins are that easy to create and distribute. Is it not illegal to call them plugins instead of modules?
For others who don't know the FRC book demonstrating the StackLayout example it is extremely cool, the curvy and wavy lines below the pictures actually move around gracefully! Nice trigonometry.
IMHO, on Chet and Romain's FRC Website, it should have all the examples as Webstart runnable apps to just showcase the Filthy Richness that is in the book. I don't think people realize how cool and useful these types of techniques really are.
Hi there Carl. Thanks for the questions! Firstly, about the XML file to update centers. Yes, it's really easy (surprisingly easy_ to distribute NetBeans plugins. (We call them plugins or modules interchangeably, there's no difference between them, a 'module' is the technical term for the more friendly term 'plugin'.) There's a
three part series called "Plublish Plugins Painlessly" in my blog
, which you might find helpful in this regard. And I agree with you, that FRC sample is really cool. I also agree with you about the web start idea for their samples. I'll ping them and see what they think.
> Hi there Carl. Thanks for the questions! Firstly,
> about the XML file to update centers. Yes, it's
> really easy (surprisingly easy_ to distribute
> NetBeans plugins. (We call them plugins or modules
> interchangeably, there's no difference between them,
> a 'module' is the technical term for the more
> friendly term 'plugin'.)
> There's a
Thanks!
In the Eclipse world it seem mostly called a 'plugin'
> href="http://blogs.sun.com/geertjan/entry/publish_plug
> _ins_painlessly2">three part series called "Plublish
> Plugins Painlessly" in my blog
, which you might
> find helpful in this regard.
Thanks for the link to your blog. I'm still digesting stuff, lots of stuff.
To others: To all who don't know about Geertjan's blog, I just want say "Wow man!". I don't want to take away from the Tips & Tricks at the Java Lobby, but go over there and you'll notice his blog is packed with endless tips and tutorials that are very cool. I practically spent hours just consuming many blog entries, and that was just a week of his entries. I don't know where he finds the time, but thanks a lot!
With NetBeans 6.0 and his blog, you will become an extremely productive developer. I know I am.
> And I agree with you,
> that FRC sample is really cool. I also agree with you
> about the web start idea for their samples. I'll ping
> them and see what they think.
I don't know anything about publishing companies, but I think it is more enticing to take things for a test drive to see how much of the book can be more relevant to your development projects. It's like a gaming book I once bought, when I saw it running I said to myself "I must have this book!" Also, it's like a magician who is willing to show you the trick over and over again, but to know the secret you have to buy his/her book. Also, it's easier to show a boss or teammate these techniques without having to explain things or building a project.
Swing Hacks, should have done this too now that I was thinking of it.
It's just my opinion, so if they decide not too, it's no big deal.
Publishing the demos has nothing to do with the publisher, but just the time than Romain and I have to spend on it. The first priority was getting the site up and rolling, along with the source code for all of the demos (I think you would agree that having the code for the demos is probably more useful in the long run than just having the snippets in the books or even some binary executables on the site...).
Ideally, we will also have web-started versions of the apps, or at least those that are meant to be more than a simple "here's what a drawLine() call looks like" example. But given work, life, and the rest of the stuff we're doing with the book (like trying to get the Animated Transitions library posted as a project - hopefully this week!) it just hasn't happened.
I realized, reading your post, that it might at least help to have some screenshots, like the color versions that we took for the book (which the publisher kindly reproduced in black & white - gives it a more trendy, artistic look, don't you think?). Then at least people that haven't flipped through the book and don't have quick access to NetBeans for building/running the projects can see what the demos and the book will show them. I'll talk to Romain about what we can reasonably do there to show off the demos a bit more...
> Hi Carl (and Geertjan),
>
> Publishing the demos has nothing to do with the
> publisher, but just the time than Romain and I have
> to spend on it. The first priority was getting the
> site up and rolling, along with the source code for
> all of the demos (I think you would agree that having
> the code for the demos is probably more useful in the
> long run than just having the snippets in the books
> or even some binary executables on the site...).
>
> Ideally, we will also have web-started versions of
> the apps, or at least those that are meant to be more
> than a simple "here's what a drawLine() call looks
> like" example. But given work, life, and the rest of
> the stuff we're doing with the book (like trying to
You mean work and life are two separate things? (just kidding..)
Yes, I agree with you in regards to main examples vs. simples ones.
> get the Animated Transitions library posted as a
> project - hopefully this week!) it just hasn't
> happened.
>
Nice... That's what I can't wait to learn how to do. I'm way behind in the book and still on chapter 12. In reference to "Animated Transitions" I assume you are talking about chapter 18. This is one of the coolest things that all rich applications should have and do well.
> I realized, reading your post, that it might at least
> help to have some screenshots, like the color
> versions that we took for the book (which the
> publisher kindly reproduced in black & white - gives
> it a more trendy, artistic look, don't you think?).
> Then at least people that haven't flipped through the
> book and don't have quick access to NetBeans for
> building/running the projects can see what the demos
> and the book will show them. I'll talk to Romain
> about what we can reasonably do there to show off the
> demos a bit more...
>
> Thanks,
> Chet.
Yep... I guess except for page 190 ch7 fig7-9 on RadialGradientPaint. At first glance I saw 3 black circles. I'm not blind just not always so observant.
Yes, screen shots would be nice also. Whenever you guys can fit it into your busy schedules.
Thanks!
Is anyone in the works planning on writing a sequel to the book? In my opinion it should have (SwingX, JDIC, JNA, more animation, jsr 295, 296, IconFeedbackPanel ability like JGoodies Validation API, painters, etc.)
I wonder what it could be called?
Here are some names I came up with:
"More Dirt..." FRC part 2
"Revenge of the Filth" episode 2
"Extremely Filthy Rich Clients"
"Got Filth - The FRC saga continues!"
With all due respect I'm just having a little fun.
NetBeans IDE: Filthy Rich Client? (Part 3)
At 2:46 PM on Sep 30, 2007, Geertjan wrote:
Fresh Jobs for Developers Post a job opportunity
So, before we create a new application , as promised yesterday, let's create a new plugin . We'll take another of the Filthy Rich Client samples. This one is called StackLayout and is discussed in chapter 10 of the book. This is what it looks like when you run it:
Now that's a pretty application! When you use your mouse to select a photo in the background, it comes to the foreground, and all the others move to the back. A custom layout is used to create this effect, and if you want to know more about it, get the book and read chapter 10! So, what we will do now is create a plugin that holds all the code that is used to create the above effect. When we are done, we will install that plugin into NetBeans IDE. It will look like this:
So, we will create a new window in NetBeans IDE and we will also copy all the code from the Filthy Rich Client sample into our module's source structure, as done yesterday. (All the classes in our plugin are shown in the screenshot above, in the left part, where you see the complete source structure of our plugin-to-be.) However, because we now have a more useful example (i.e., imagine the above as a splash screen or as a standlone photo application, for example), we will be doing a pretty useful thing by porting the sample to a plugin, since we will then (as we will see) be able to install that same plugin into a variety of other applications too.
So, let's begin! Everything will be explained, down to the smallest detail, using screenshots to guide you on your journey.
At the same time, the Files window shows that we also have a folder that contains the sample's photos:
What I did was, I put everything that was in the original sample's default package into the module's main package. I then had to add package statements to each of these classes, because they didn't have package statements to begin with (since they were in the default package in the original sample). I created a new subpackage called 'images'and just copied the images into that. I added the original 'io' package from the original sample to the module source structure, without changing anything.
As you can see, NetBeans IDE helpfully tells you what is about to be done for you, i.e., which classes and files will be generated and which existing files will be changed.
You now have a TopComponent , which is your window, two XML files for serialization (neither of which you will ever need to touch), and an Action class that will appear in the Window menu (because of registration entries generated into your XML layer file), for opening the window.
What we now have, i.e., that window, is called a TopComponent . Think of it as a JFrame , but then an extremely magical JFrame . A JFrame on steroids. It is a JFrame that integrates into NetBeans Platform applications, as can be seen in NetBeans IDE above. You can use Matisse to design it, just like any other Swing container. Alternatively, you can just code everything into the source view, without using the design view at all.
Copy that code, but not the last three lines which are not needed since the NetBeans Platform already handles those details, and paste in into the TopComponent constructor:
Now copy all the other methods, that are in the original JFrame , i.e., only the ones that are needed by the method calls above, into the TopComponent .
An NBM file is an archive file. It is essentially a ZIP file and you can open it with any tools you use for unzipping any other ZIP file. However, it contains metadata that any NetBeans Platform application understands. What this means will become apparent later.
All the others in that list have been added on top of platform7 , to create NetBeans IDE. We don't want NetBeans IDE. We only want the NetBeans Platform. And, by deselecting all the others, above, we have the absolute basic set of modules, i.e., the bare minimum, which together constitute the NetBeans Platform.
The above is a modular Swing application framework . In fact, it is the only application framework for which all those words are true. It is the basis of your Swing application, providing all the features (and more) that every Swing application typically needs.
Note: Anything you do not want from the NetBeans Platform can easily be excluded. What you see above is the basic starting point. You can weed and tweak and hide and disable items from here and then add and extend to your heart's content! Splash screen and title bar can be set in the module suite's Project Properties dialog, back in NetBeans IDE.
Note: Not all plugins in your application would be installed via the Plugin Manager. (For example, the Favorites window you see above comes from a plugin too, but that one is part of the NetBeans Platform.) If you look in the Projects window, at the module suite's 'Modules' node, you will see that you can add modules there. Those will be the ones that your user gets by default. The Plugin Manager is for adding additional ones, either updates to existing functionality or new features that you distribute via 'update centers'. An 'update center' is defined by an XML file that describes the location (and other info) of each plugin that you want to make available. Your users would register that XML file (which you would have on-line somewhere) in their Plugin Manager and then the Plugin Manager would download those plugins on request.
You can extend that Options window. (You can also hide as much of it as you like, even all of it, if you don't want to give your users any options at all.) Add your own panels and let the user specify pictures they would like to see in their picture gallery. That Options window extension would be part of the same plugin that provides the picture gallery. There is a wizard that, just as in the case of the window earlier in this story, generates the basic classes required for Options Window extensions. Here is a tutorial that will explain everything in this regard.
And that is the meaning of a 'docking system', also known as a 'windowing system'. You get that out of the box when you create your application on the NetBeans Platform. In other words, each TopComponent comes prepackaged with functionality for minimizing, maximing, dragging, and undocking itself. Together, all these TopComponents constitute the docking system.
So, in conclusion, what have we gained from the NetBeans Platform? I think the answer is obvious. We have a pluggable application, for free. Free not only in the sense of money, but also in the sense of coding. For no coding whatsoever, we're able to extend our application. Even if it were to be small in the beginning, it now at least has the potential to grow. Other features we have seen here are a docking system, an Options window, and a file browser. But that's all just the tip of the iceberg. Virtually every part of the NetBeans Platform can be extended, as in the case of the Options window, pointed out above. Resources are many and complementary: the NetBeans Javadoc and NetBeans Platform Learning Trail , together with the vital mailing list ( dev at openide dot netbeans dot org ) and the recently published Rich Client Programming: Plugging into the NetBeans Platform .
And this is the end of this 3 part series! I hope it has shown a lot of different interrelated things. How NetBeans IDE can be a filthy rich client, for example. But also, how the richness of one NetBeans Platform application can make all other NetBeans Platform applications equally rich. A lot of functionality is interchangeable because of the pluggable nature of NetBeans Platform applications.
Update: Jump to part 1 or part 2 .
5 replies so far (
Post your own)
Re: NetBeans IDE: Filthy Rich Client? (Part 3)
Geertjan,Once the plugin is created you mentioned about an XML file to update centers. Can you explain this a little more?
I didn't realize how Netbeans plug-ins are that easy to create and distribute. Is it not illegal to call them plugins instead of modules?
For others who don't know the FRC book demonstrating the StackLayout example it is extremely cool, the curvy and wavy lines below the pictures actually move around gracefully! Nice trigonometry.
IMHO, on Chet and Romain's FRC Website, it should have all the examples as Webstart runnable apps to just showcase the Filthy Richness that is in the book. I don't think people realize how cool and useful these types of techniques really are.
Thanks!
Keep up the great work.
Part 4?
-Carl
Re: NetBeans IDE: Filthy Rich Client? (Part 3)
Hi there Carl. Thanks for the questions! Firstly, about the XML file to update centers. Yes, it's really easy (surprisingly easy_ to distribute NetBeans plugins. (We call them plugins or modules interchangeably, there's no difference between them, a 'module' is the technical term for the more friendly term 'plugin'.) There's a three part series called "Plublish Plugins Painlessly" in my blog , which you might find helpful in this regard. And I agree with you, that FRC sample is really cool. I also agree with you about the web start idea for their samples. I'll ping them and see what they think.Re: NetBeans IDE: Filthy Rich Client? (Part 3)
Geertjan,> Hi there Carl. Thanks for the questions! Firstly,
> about the XML file to update centers. Yes, it's
> really easy (surprisingly easy_ to distribute
> NetBeans plugins. (We call them plugins or modules
> interchangeably, there's no difference between them,
> a 'module' is the technical term for the more
> friendly term 'plugin'.)
> There's a Thanks!
In the Eclipse world it seem mostly called a 'plugin'
> href="http://blogs.sun.com/geertjan/entry/publish_plug
> _ins_painlessly2">three part series called "Plublish
> Plugins Painlessly" in my blog , which you might
> find helpful in this regard.
Thanks for the link to your blog. I'm still digesting stuff, lots of stuff.
To others: To all who don't know about Geertjan's blog, I just want say "Wow man!". I don't want to take away from the Tips & Tricks at the Java Lobby, but go over there and you'll notice his blog is packed with endless tips and tutorials that are very cool. I practically spent hours just consuming many blog entries, and that was just a week of his entries. I don't know where he finds the time, but thanks a lot!
With NetBeans 6.0 and his blog, you will become an extremely productive developer. I know I am.
> And I agree with you,
> that FRC sample is really cool. I also agree with you
> about the web start idea for their samples. I'll ping
> them and see what they think.
I don't know anything about publishing companies, but I think it is more enticing to take things for a test drive to see how much of the book can be more relevant to your development projects. It's like a gaming book I once bought, when I saw it running I said to myself "I must have this book!" Also, it's like a magician who is willing to show you the trick over and over again, but to know the secret you have to buy his/her book. Also, it's easier to show a boss or teammate these techniques without having to explain things or building a project.
Swing Hacks, should have done this too now that I was thinking of it.
It's just my opinion, so if they decide not too, it's no big deal.
-Carl
Re: NetBeans IDE: Filthy Rich Client? (Part 3)
Hi Carl (and Geertjan),Publishing the demos has nothing to do with the publisher, but just the time than Romain and I have to spend on it. The first priority was getting the site up and rolling, along with the source code for all of the demos (I think you would agree that having the code for the demos is probably more useful in the long run than just having the snippets in the books or even some binary executables on the site...).
Ideally, we will also have web-started versions of the apps, or at least those that are meant to be more than a simple "here's what a drawLine() call looks like" example. But given work, life, and the rest of the stuff we're doing with the book (like trying to get the Animated Transitions library posted as a project - hopefully this week!) it just hasn't happened.
I realized, reading your post, that it might at least help to have some screenshots, like the color versions that we took for the book (which the publisher kindly reproduced in black & white - gives it a more trendy, artistic look, don't you think?). Then at least people that haven't flipped through the book and don't have quick access to NetBeans for building/running the projects can see what the demos and the book will show them. I'll talk to Romain about what we can reasonably do there to show off the demos a bit more...
Thanks,
Chet.
Re: NetBeans IDE: Filthy Rich Client? (Part 3)
Chet,> Hi Carl (and Geertjan),
>
> Publishing the demos has nothing to do with the
> publisher, but just the time than Romain and I have
> to spend on it. The first priority was getting the
> site up and rolling, along with the source code for
> all of the demos (I think you would agree that having
> the code for the demos is probably more useful in the
> long run than just having the snippets in the books
> or even some binary executables on the site...).
>
> Ideally, we will also have web-started versions of
> the apps, or at least those that are meant to be more
> than a simple "here's what a drawLine() call looks
> like" example. But given work, life, and the rest of
> the stuff we're doing with the book (like trying to
You mean work and life are two separate things? (just kidding..)
Yes, I agree with you in regards to main examples vs. simples ones.
> get the Animated Transitions library posted as a
> project - hopefully this week!) it just hasn't
> happened.
>
Nice... That's what I can't wait to learn how to do. I'm way behind in the book and still on chapter 12. In reference to "Animated Transitions" I assume you are talking about chapter 18. This is one of the coolest things that all rich applications should have and do well.
To others: At Simon Morris's blog titled "Swing Bling", it is an impressive example of animated transitions.
check it out:
http://weblogs.java.net/blog/javakiddy/archive/2007/02/swing_bling.html
> I realized, reading your post, that it might at least
> help to have some screenshots, like the color
> versions that we took for the book (which the
> publisher kindly reproduced in black & white - gives
> it a more trendy, artistic look, don't you think?).
> Then at least people that haven't flipped through the
> book and don't have quick access to NetBeans for
> building/running the projects can see what the demos
> and the book will show them. I'll talk to Romain
> about what we can reasonably do there to show off the
> demos a bit more...
>
> Thanks,
> Chet.
Yep... I guess except for page 190 ch7 fig7-9 on RadialGradientPaint. At first glance I saw 3 black circles. I'm not blind just not always so observant.
Yes, screen shots would be nice also. Whenever you guys can fit it into your busy schedules.
Thanks!
Is anyone in the works planning on writing a sequel to the book? In my opinion it should have (SwingX, JDIC, JNA, more animation, jsr 295, 296, IconFeedbackPanel ability like JGoodies Validation API, painters, etc.)
I wonder what it could be called?
Here are some names I came up with:
"More Dirt..." FRC part 2
"Revenge of the Filth" episode 2
"Extremely Filthy Rich Clients"
"Got Filth - The FRC saga continues!"
With all due respect I'm just having a little fun.
Carl