The Commodore brand-name is curently owned by a Dutch company, and they hope to leverage the name with the launch of a range of high-end PCs. There’s a photo of the new machines on The Inquirer’s site.
Simplifying Swing development with Genesis: wiring Swing apps with annotations
Netbean’s Matisse GUI builder has made a huge difference in the effort required to build a Swing app – with Netbeans 5.0 now it is possible to build good looking Swing apps with minimal effort.
But what about wiring together actual code with your new GUI front end? Michael Santos has an interesting blog entry on java.net about a project called Genesis that allows you to use annotations to wire up your code to your Swing code. The examples in the article look very simple – this is an approach we should keep our eyes on.
Google launch corporate Online Office suite
Based on their existing Online webapps, Google is announcing a corporate suite of applications targeted at businesses and organizations on Monday.
The suite is likely to comprise GMail, Google Calendar, Google Talk, and Page Creator. Also in the works are beta versions of their online Spreadsheet and Word Processing software.
The collection of apps will be available for free, with a premium edition available towards the end of the year that will include additional storage and support. The suite of apps is an extension of the ‘GMail for your Domain’ service, which allows you to use GMail with your own corporate or orgainization’s domain name, instead of ‘gmail.com’. The other apps offered are now available to take advantage of this feature.
Is Google about to beat Microsoft at their own game?
Handling validation on Entity properties
Grails GORM (Grails Object Relational Mapping) allows you to define a number of validation rules that are carried through to your view when entering data.
For example with following simple Entity:
<code>
class Test1 {
Long id
Long version
String string1
Long testLong
Float float1
def constraints = {
string1(blank:false)
testLong(nullable:false,blank:false)
float1(nullable:false,blank:false)
}
...
}
</code>
The ‘constraints’ section defines the rules on the properties on this Entity – the rules are a comma separated list of name/value pairs for the rules to be applied. Notice the ‘blank’ only works on String properties. To require a value for any other property type, use ‘nullable:false’.
Here are some further self-explanatory examples from the online Grails docs:
<code>
def constraints = {
login(length:5..15,blank:false,unique:true)
password(length:5..15,blank:false)
email(email:true,blank:false)
age(min:new Date(),nullable:false)
}
</code>
