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

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…

vm networking problem fixed

Over the weekend I upgraded to Windows 8.1, then discovered that networking for the virtual machines wouldn't work. Then I tried something incredibly simple and fixed the problem.

Checking the system I noticed that three VMware Windows services weren't running; VMnetDHCP, VMUSBArbService, and VMwareNatService. VMware Player allows you to install, remove, or fix an existing installation. I chose to try fixing the installation, and that fixed the problem. The services were re-installed/restarted, and the virtual machines had networking again.

Once network connectivity was established there was exactly one updated file for Ubuntu 13.10, a data file. This underscores how solid and finished the release was this time. Every other version of every other Linux installation I've ever dealt with has always been succeeded by boatloads of updates after the initial installation. But not this time.

Everything is working properly on my notebook. All's right with the world.

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…