You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ace.apache.org by Marcel Offermans <ma...@luminis.nl> on 2010/11/18 01:00:34 UTC

Vaadin update...

After Angelo committed some code earlier today, enabling the discovery of gateways again, I decided to add the "import from OBR" feature again for artifacts. That's working now, you can even multi select artifact, which makes importing existing apps a lot less painful).

As far as I'm concerned, we're still learning Vaadin and the current code is experimental at best. Selections and associations are still a bit buggy, and I seem to have partially broken keyboard multiselect again.

If anybody else wants to jump in, feel free. We're taking this one step at a time!

Greetings, Marcel


Re: Vaadin update...

Posted by Steven Siebert <sm...@gmail.com>.
Great stuff, good work Marcel/Angelo!

On Wed, Nov 17, 2010 at 7:00 PM, Marcel Offermans <
marcel.offermans@luminis.nl> wrote:

> After Angelo committed some code earlier today, enabling the discovery of
> gateways again, I decided to add the "import from OBR" feature again for
> artifacts. That's working now, you can even multi select artifact, which
> makes importing existing apps a lot less painful).
>
> As far as I'm concerned, we're still learning Vaadin and the current code
> is experimental at best. Selections and associations are still a bit buggy,
> and I seem to have partially broken keyboard multiselect again.
>
> If anybody else wants to jump in, feel free. We're taking this one step at
> a time!
>
> Greetings, Marcel
>
>

Re: Vaadin update...

Posted by Marcel Offermans <ma...@luminis.nl>.
On 18 Nov 2010, at 1:00 , Marcel Offermans wrote:

> After Angelo committed some code earlier today, enabling the discovery of gateways again, I decided to add the "import from OBR" feature again for artifacts. That's working now, you can even multi select artifact, which makes importing existing apps a lot less painful).
> 
> As far as I'm concerned, we're still learning Vaadin and the current code is experimental at best. Selections and associations are still a bit buggy, and I seem to have partially broken keyboard multiselect again.
> 
> If anybody else wants to jump in, feel free. We're taking this one step at a time!

A couple of weeks later, it's time for another update, since especially today I feel I've made worthwhile progress.

I've mostly reworked the way the 4 main tables track changes. Instead of the brute force method used before (basically repopulate all tables on every change) the tables now actually listen for (event admin) events that notify the UI model of changes in the underlying repository. That, plus a dozen of other fixes, now means that selections work well again (including keyboard control and multi select). Drag and drop is also greatly improved, but there are some corner cases that still need work and in some scenario's highlights are not recalculated correctly yet but that's only a visual issue.

All in all we're now probably at the same level the original GWT UI was, but for now that's still available for comparison.

Next up I added a way to extend the user interface whiteboard style. The key interface here is UIExtensionFactory which can create UI components to be used at specific locations. The idea is that this interface will be registered as a service with properties that indicate where it wants to extend the UI. The UI components then track those specific extensions with filter conditions and will invoke the factory's create() method to actually instantiate UI components. The create() method takes a Map<String, Object> that is used by every specific extension point to pass context information.

As an example I included one extension that hooks up to the only extension point in the UI right now: the target table. It adds an "info" button that, when pressed, shows the target ID and currently installed version. It should demonstrate the mechanism.

I'm actually curious what you think of this system. Of course we'd need to add lots of extension points and document them well, including the service properties and the context Map for each one.

Also, feel free to give the whole UI a try. The code is still very much experimental, so expect lots of console printing and still a few missing features, but I feel we're moving in the right direction quickly now.

Greetings, Marcel