Skip to main content

NetBeans Matisse - Needs considerably more work

I pulled down the latest developer NetBeans (for July 21st) and installed it, then I visited the Project Matisse page and watched Roman Strobl's flash demo. I wanted to followed Roman's dialog and illustrations as I recreated his DemoForm. Using the latest developer version my results were a lot less successful than Roman's.

First, the Matisse module seems to have regressed with regards to stability. I encountered numerous unhandled exceptions as I attempted to add each of the controls. The biggest problem with the flash demo is that when Roman starts his demo he starts from a point where there are already a number of controls on the form. I added the same controls in order to start at the same spot where the flash demo starts. I generated no less than two exceptions to get to that point, which forced me to "save early, save often." The problem is that once an unexpected exception appears, then no more work can be done until the form is closed. You can't even save your work. You throw it away and then restart the form editor from the last saved state. The exception that plagued me is listed below.
java.lang.AssertionError
at org.netbeans.modules.form.layoutdesign.LayoutDesigner.endMoving(LayoutDesigner.java:396)
at org.netbeans.modules.form.HandleLayer$ResizeComponentDrag.end(HandleLayer.java:2188)
at org.netbeans.modules.form.HandleLayer$ComponentDrag.end(HandleLayer.java:1893)
at org.netbeans.modules.form.HandleLayer.endDragging(HandleLayer.java:799)
at org.netbeans.modules.form.HandleLayer.mouseReleased(HandleLayer.java:1290)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
[catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
The following images show where I got to with regards to the Matisse visual editor. The left image was the final "stable" stage, with the Identity panel added with its text field and three text entry areas. Note the three buttons beneath the Identity panel. These are outside the panel. They'll later illustrate what I've run into trying to build non-trivial layouts with Matisse ever since it's been made available.

The right image shows what happened to me when I tried to follow Roman's example and add Organization label and text box to the Identity panel. Unlike the smooth example in the flash demo, my experience was anything but smooth. Any attempt to add the label did not push down the lower two labels. Instead Matisse kept placing it first in line with the email address label, and pushing the text box off the form edge. I finally got it added to the panel by manually moving down the lower to labels and associated text boxes, adding the new label and text box, and then manually moving the lower controls back up again. When I finished that exercise I had managed to shove down the "Remove Account" button on the left, and the lower buttons beneath the Identity panel were now almost completely off the form edge. Not a problem, right? Wrong. Grabbing the Identity panel's lower edge and attempting to resize it back to its original location resulted in an immediate unexpected exception. I could do nothing to the form at this point, except kill it, and any attempt to bring it back up and resize the Identity panel resulted in the aforementioned exception being thrown.

Comments

Popular posts from this blog

A Decade Long Religious Con Job

I rarely write inflammatory (what some might call trolling) titles to a post, but this building you see before you deserves it. I've been seeing this building next to I-4 just east of Altamonte/436 and Crane's Roost for nearly 12 years, and never knew who owned it. Today on a trip up to Lake Mary with my wife I saw it yet again. That's when I told her I wanted to stop by on the way back and poke around the property, and photograph any parts of it if I could.

What I discovered was this still unfinished eighteen story (I counted) white elephant, overgrown with weeds and yet still under slow-motion construction. It looks impressive with its exterior glass curtain walls, but that impression is quickly lost when you see the unfinished lower stories and look inside to the unfinished interior spaces.

A quick check via Google leads to an article written in 2010 by the Orlando Sentinel about the Majesty Tower. Based on what I read in the article it's owned by SuperChannel 55 WA…

first night for the gingersnaps

The first night has passed and the two have managed to survive, in spite of what their tiny hearts might have thought when first arriving. Greebo, the larger of the two, has been in hiding the entire time so far. Ponder has spent the time zipping in and out of hiding spots, checking things out, and learning just how comfortable pillows are for resting your head.

During the night I felt the tiny body of Ponder hitting the bed as he leaped up on the side, and then climbed to the top to run around on top of me. At least once he play-attacked my fingers. He might be small but his claws are still quite sharp.

When I got up in the morning the bowl of cat kitten food was fairly well depleted. It's been refilled and fresh water put in the big dish on the floor. I'm assuming that both Greebo and Ponder are feeding and drinking. I have seen Greebo under the furniture peeking out at me when I went looking for him. I'm leaving him alone while he continues to adjust.

So far the guys h…

cat-in-a-box channels greta garbo

So I'm sitting at my computer, when I start to notice a racket in back. I ignore it for a while until I hear a load "thump!", as if something had been dropped on the floor, followed by a lot of loud rattling. I turn around and see Lucy in the box just having a grand old time, rolling around and rattling that box a good one. I grab the GX1 and snap a few shots before she notices me and the camera, then leaps out and back into her chair (which used to be my chair before she decided it was her chair).

Just like caring for Katie my black Lab taught me about dogs, caring for Lucy is teaching me about cats. She finds me fascinating, as I do her. And she expresses great affection and love toward me without coaxing. I try to return the affection and love, but she is a cat, and she takes a bat at me on occasion, although I think that's just her being playful. She always has her claws in when she does that.

She sits next to me during the evening in her chair while I sit in mi…