In other words, a "BankAccount" class was created, with a constructor. Then, I added an attribute, balance, to the diagram (by right-clicking in the diagram and choosing "Insert Attribute"), which resulted in the balance field being created, as well as a getter and setter. Then I right-clicked in the diagram again and chose "Insert Operation" and then added the withdraw operation. Doing this—all right inside the diagram, i.e., graphically— resulted in code being generated each step of the way:
Continuing like this, I added an interface (Bank.java), a superclass (Checking.java), and a test class (AccountTest.java). The relationships between these classes were done via the items in the Palette. The package was created the same way, with items in the palette being used to connect all the classes to the package.
Switching from the visual representations to the actual code is easy:
What is called "round trip engineering" is totally cool—changes you make in the code are reflected in the diagram; changes you make in the diagram are reflected in the code. Again, the code is generated whenever you add something to the diagram, how cool is that? So, you can see the effect immediately in the Java project in the Projects window.
And this is what the application looked like right at the end (notice the addition of a main method in AccountTest.java, I added that in the code, not in the diagram, but, as soon as I had made the addition to the code, it was added to the diagram by the IDE):
The whole thing was a really cool experience—working at a higher level, yet seeing code being generated for you on the fly. The only bug I encountered was this one—when the diagram needs to be saved (indicated by the asterisk below), the Save button in the IDE isn't activated (but you can workaround this by right-clicking on the tab and choosing "Save Document" there). Here's the proof—asterisk is visible in the tab, but Save button in the IDE cannot be clicked:
Aside from the above, the UML toolset in the IDE is really cool. Now, I wonder if this stuff can also be used in other areas, such as web applications and plug-in modules...