Sometimes it’s good to cool down, relax & wait & see. A lot of people (me included) were unhappy due to the sudden death of Kenai. It was a project I loved, especially because it was closely integrated in NB and had some features I was missing from java.net, my favorite Java community site.
So we were discussing various scenarios what we could do. There were lot’s of discussions what would be the best project hosting site for our projects and what we should tell our community. Some people already moved their projects to Google Code or JavaForge. We were discussing if we should have our own forge for NB related projects, or if we should ask the NetBeans Team to open up their Kenai infrastructure for us.
But now it turns out that the Kenai infrastructure will be part of Java.net:
Actually this is perfect. I never understood why Sun would open a second project hosting site, if not as a playground for improvements for java.net. So now we have the best of breed, the strong and vivid community of Java.net, and teh advanced and modern features of Kenai. And Java.net still seems to be an independent entity inside Oracle.
Nevertheless let’s not forget we lost some strong supporters of our community through the merger. For the NetBeans Dream Team this is especially true for Aaron Houston. Thanks Aaron and congratulations to your new employer for having you aboard…
This week I received three questions from JAXenter regarding the future of NetBeans, and just one day after my answer they show up as a small article on their website:
That’s agile journalism :-). Maybe we can learn some project management techniques from journalists. They also have to work to tight deadlines and compose a whole work from modules worked on by individuals. And in the end everything needs to be integrated to build the end product. Ah, I feel new Agile paradigm coming up! Watch out Scrum, here comes Scribe :-).
P.s.: The English version will be online soon as well…
Shay Shmeltzer, group manager in the JDeveloper/ADF product management team asks on his blog about the future of NetBeans & JDeveloper: “So how close were your predictions?”
I must admit that my predictions about the future of NetBeans were much more pessimistic. The plan for NB, as much as we know from these wecasts is very encouraging.
I got the impression that Oracle really have thoroughly analyzed the new entries to their stack. Ted is talking about the places where they want to intensify their work (Java & NB Platform) and the places where community should step in (scripting, emerging languages). That’s a little bit different from the Thomas Kurian story, where we see NetBeans as an IDE for scripting languages, but I guess Ted is closer to the actual technology.
I also like the fact that he’s talking about sharing Plugins between JDeveloper and NetBeans. I do believe this is not only words, because Ted is one of the guys behind JSR-198, a Specification for IDE interoperability that looks conceptually very familiar to NB platform developers.
And the most important part: He’s talking about the platform and the community. So they will eventually support the ongoing focus on the platform. In my eyes every investment in the platform is an investment in the community. Every penny spent here will pay back in contributions. And if they manage to improve, stabilize and document the APIs for language support & refactoring there’ll probably be much more contributions in terms of language support & plugins.
I really for the first time believe, that the Oracle-Sun Deal might turn out to be good for NetBeans. It seems they know better what they’ve got than many people inside Sun…
Here’s a slide from the (currently ongoing) webcast about the Oracle - Sun Merger:
Good News, whatever it means in detail. I like the mention of Java EE6. I don’t know though why Hudson is mentioned as a NB technology. Probably because the integration is so excellent that they thought it’s a part of the IDE ;-).
For the first time the fotos are available before the course ended. And for the first time we had to do a Panorama shot to get all people on the picture
Thanks to Jacek for creating these great pictures!
I was in Poznań last year for the NetBeans Day. I arrived together with Adam Bien just before our presentations started. It turned out to be a big mistake, because people kept telling us about the great party the night before :-). Looking forward to be there again!
What a nice surprise! I wanted to see my Devoxx talk on Parleys and entered my name in the search field to find out that the guys at the University of Würzburg have uploaded footage they took during our Training there almost two years ago. Here you can see me talking German:
In QuickTip 38 and 39 I’ve shown how you can use PropertyEditorSupport to have customized rendering of your components. This is nice, but also has it’s drawbacks. E.g. when rendering your Text, you won’t know wether or not the cell is selected. So you’ll need a renderer instead. For some simple rendering you can simply use a TableCellRenderer, e.g. like this:
public class CustomOutlineCellRenderer extends DefaultOutlineCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row,
int column) {
DefaultTableCellRenderer c = null;
if (value instanceof Property) {
Property property = (Property) value;
if (property != null) {
try {
Object propertyValue = property.getValue();
// assuming we have text properties, this will paint OK…
c = (DefaultOutlineCellRenderer) super.getTableCellRendererComponent(
table, propertyValue, isSelected, hasFocus, row, column);
// special handling for images
if (propertyValue instanceof Image) {
c.setText(”");
c.setIcon(ImageUtilities.image2Icon((Image) propertyValue));
return c;
}
} catch (IllegalAccessException ex) {
Exceptions.printStackTrace(ex);
} catch (InvocationTargetException ex) {
Exceptions.printStackTrace(ex);
}
}
} else {
// fallback when no property (shouldn’t happen)
c = (DefaultOutlineCellRenderer) super.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
}
Outline tbl = (Outline) table;
c.setForeground(tbl.getForeground());
c.setBackground(tbl.getBackground());
if (isSelected) {
c.setBackground(tbl.getSelectionBackground());
c.setForeground(tbl.getSelectionForeground());
}
return c;
}
}
Set in on your OutLineView’s Outline and you’re done:
CustomOutlineCellRenderer cellRenderer = new CustomOutlineCellRenderer();
outLineView.getOutline().setDefaultRenderer(Node.Property.class, cellRenderer);
Now all Properties are displayed like in a simple JTable, without the disabled style painting for readonly properties.
Today I’m heading for Linz where we’ll have a NetBeans Platform Certified Course at the Johannes Kepler University. Obviously the cultural capital of Europe must support the NetBeans platform. This is the third or fourth year in a row that the course is held there. I’m looking forward to meet Thomas Würthinger again, who will give the course together with Jaroslav Tulach and me.
I saw his name on some slides at Devoxx in the Universal VM talk by Brian Goetz and Alex Buckley recently. He was listed as one of the representatives for the Scheme language. Scheme support for the JVM is developed at their university, and they were among the likely adaptors of the new “invokeDynamic” bytecode. If you wanna try out scheme, there’s a NetBeans based IDE for this language called LambdaBeans.
Great news for the NetBeans Platform. Listen to the latest podcast to hear Jim Parkinson in Prague talking about the support for the NetBeans platform.
You’ll even hear something about the roadmap for the upcoming 6.9 release. One of the major improvements will be documentation and support for the platform. Excellent!
…at least this is what one of my fellow Dream Team members asked when we discussed the results of a very recent IDE comparison. I didn’t want to step into the IDE bashing going on between NetBeans users and the JDeveloper Team but it simply is too tempting. The german publisher who held this poll is by the way not related to Sun ( not a Sun held conference ), actually they are also publishing the German Eclipse magazine & have a monthly column on new Eclipse Plugins. I think that’s a nice message to the NetBeans Team! (By the way the poll is still open…)
Over the last years I sometimes had trouble understanding what the NetBeans Management decides and why, but right now in the light of the merger I’m really convinced they & the NB Team are on the right track. The future of NB might not be in their hands, but I think they are doing a great job making it bright. It’s a good time to show what the NetBeans Team is capable of with a release like 6.8. This and the decision to strengthen the platform are good moves to position NB and call attention to how great the product is, and what it has in comparison to Oracles strategic product.
In my last tip I’ve shown you how to open two editors at the same time. But sometimes you want to have one default editor for your xml (e.g. a form), and a fallback plain xml editor to do some additional editing. To achieve that you simply need to use CookieSets assign method instead of add:
cookies.assign(OpenCookie.class, new MyOpenSupport(getPrimaryEntry()));
cookies.assign(EditCookie.class, DataEditorSupport.create(this, getPrimaryEntry(), getCookieSet()));
Now the Custom Editor will open by default, and You can use the EditCookie to open the default Editor. E.g. via an Action added to your custom Node that you return from createNodeDelegate():
class MyDataNode extends DataNode{
public MyDataNode(MyDataObject aThis, Children LEAF, Lookup lookup) {
super(aThis, LEAF, lookup);
}
@Override
public Action[] getActions(boolean context) {
ArrayList actionArray = new ArrayList();
Action [] actions = super.getActions(context);
for (Action action : actions) {
actionArray.add(action);
}
Action editXML = new AbstractAction(”Edit XML”) {