Archive for the ‘Nebula’ Category

Nebula Gallery widget in production (PosterGenius)

March 9th, 2010

Just relaying a ‘thank-you’ post from Stavros Kounis on the nebula newsgroup :

Hi all

Its was back to 2008 when we have decide to rely on nebula gallery widget for our project named “PosterGenius”[1][2].

Since then Nebula Gallery widget[3] was havy used in our application. Now PosterGenius is a finalist for the Best RCP Application for the 2010 Eclipse Community Awards.

I what to share this “recognition” of our work with the Nebula Team[4] and say a BIG “Thank you guys!!”

/stavros

[1] http://www.postergenius.com/
[2] http://skounis.blogspot.com/2010/03/nebula-gallery-widget-in-production.html
[3] http://www.eclipse.org/nebula/widgets/gallery/gallery.php
[4] http://www.eclipse.org/nebula/

It’s nice to see the Gallery widget being used in more RCP applications. This kind of feedback shows that Gallery is ready to be used in production applications, even if it is still labeled as ‘beta’ because of some missing features, like accessibility and full JFace support (Feel free to help :-) ).

Thanks Stavros for using Nebula widgets :-)
I’ve updated my Nebula Gallery page with screenshots and links.

Eclipse 3.5 RC3 released : Cocoa works great

May 31st, 2009

Eclipse 3.5 RC3 is out and this release fixes the last issues (Bugs 277539 and 277437) I was seeing when running the best test suite I have, ShareMedia, on the previous 3.5 RC2 Cocoa x86_64 SWT port.

Now everything is working, even the most tricky parts such as custom widgets, Open GL with LWJGL and animations…. :-)

ShareMedia running on SWT 3.5 Cocoa x86_64

ShareMedia running on SWT 3.5 Cocoa x86_64

The new 3.5 release also brings some long-waited features on Mac OS X :

- Java 6 and 64 bits support

- Shell modified hint

Shell modified hint

Shell modified hint

- Shell sheet style

Shell sheet style

Shell sheet style

- Program icons are now returned in full size !!!! Program.findProgram("jpg").getImageData() returns beautiful 512×512 icons instead of 16×16, see the following gallery widget snippet :

Gallery Snippet on SWT 3.4

Gallery Snippet on SWT 3.4

Gallery Snippet on SWT 3.5

Gallery Snippet on SWT 3.5

UPDATE: Oh no ! this is a cocoa bug, images should still be returned in 16×16. SWT committers, please don’t fix it ! :-) I hope this will help fixing bug 181723.

These improvements make Eclipse 3.5 an absolute must for all Mac users.

The only thing I’m still missing is the Native OSX toolbar (bug 222859)

I would like to thanks all developpers who worked very hard to create this great Cocoa port in only one year and those who keep hacking to improving Eclipse UI on Mac.

Nebula project news

April 26th, 2009

Nebula is a rather active Eclipse project even if it is maintained mostly by individuals (see Nebula statistics on Ohloh). It can also be very silent :-) . If you’re not following the cvs commit log, the dev mailing list or open bugs, it can be hard to notice what is going on.

Here are the latest news :

  • Nebula is not only an incubator for SWT : the current Nebula mission statement can sound like the Nebula widgets are unstable, otherwise they would have moved to SWT :

    The Nebula project is a source for custom SWT widgets and other UI components. Nebula is also an incubator for SWT. Some Nebula widgets will graduate into SWT and therefore into the main Eclipse Platform.

    The reality is different :
    – several Nebula widget were developped for real world applications and were contributed once completed in order to share the code base with the Eclipse community.

    – Additionnal stable widgets are currently being contributed from other Eclipse projects.

    – The graduation is unlikely to happen, for several *good* reasons like toolkit size and dedication to native widgets even if it contains a few custom ones.

    Tom Schindl, Nebula co-lead with Chris Gross, pointed this problem out in a recent mail to the dev list and according to the number of “+1″ he got, the statement is likely to be changed very soon.

    On the stable/unstable topic, an idea (as discussed previously on the dev list) was to provide more visibility by grouping the widgets by status (stable/alpha/dormant) and to do releases of stable ones as soon as possible.

  • Nightly builds : The binary downloads have been removed from the Nebula website for some time now. The reason was simple : the build process was down and all downloads were several months old. They were also not conforming to the incubation status so we simply removed them.

    Nightly builds are now back on the download page. The build process is using althena (cbi) on build.eclipse.org and can run unit tests. As a result, junit tests results are also available alongside of the binaries.

    Note : we haven’t finished setting up the build process for every widget yet, more downloads will be added soon. Progress can be monitored on bug 237588.

    Our next move is to build on hudson.

  • Nebula Examples : The example project page has been restored.

    Nebula Example

    This project is also built nightly and can be downloaded as binary or simply installed from the update site.

    An official webstart version will be available as soon as I can host it on eclipse.org. (Eclipse webmaster please comment bug 270617 :) ). In the meantime, you can try this webstart (hosted here on my blog, don’t kill my bandwidth ! )

  • Gallery widget stable version : I’ve published a stable (not nightly) version of the Gallery widget : 0.5.2_R_0_20090418.

    Even if the project itself is still in incubation, this version of the Gallery widget is stable enough to be used in RCP application or plugins. Be sure to read the release notes page which points out stable/unstable features and the explaination of the incubation phase (What is Incubation) on Eclipse.org.

    With that version, a javadoc is available.

    Don’t forget to report bugs if any !

That’s all for today, I hope to have more news to blog about soon :-) .

Nebula Gallery example updated

April 2nd, 2009

I’ve just fixed bug 268743 – Gallery example need update to show latest features. As a result, you can now play with all Gallery features within the Nebula example application.

Being able to combine all options freely let me spot some problems with untested usecases :

270736 : Group selection selects the last item of the group if not using SWT.MULTI

270737 : Margin issues with animation

270934 : Decorators : Wrong position for bottom left et top right decorators

266614 :Item selection background can be visible on closed group when animations turned on

I fixed these 4 items while I was at it.

You can download this example from the nebula CVS. It works both as a view or as a stand alone application.

You can also test it from webstart. (Windows only, I’m still fighting with some issues with java web start on Linux and MacOS – bugs 270421, 270617, 270948, 270949, 270950).

update : webstart now works on linux

Next on my todo list :
- get nebula nighlty builds running for all widgets (almost done)
- host the webstart on eclipse
- add an example tab for nebula animation package.

Nebula Gallery widget : new features

January 4th, 2009

Happy New Year to everyone !!! :-)

During the christmas and new year holidays, I had some free time to improve the Nebula Gallery widget. Here is the list of the new features :

  • Animations : Expanding and closing of groups is now animated. The animation code is from SAT. Expand and collapse animations can be chosen between all existing SAT animations including Exponential, Elastic or Bounce or by any custom animation which implements IMovement. See video above (you may need to go to my blog, as youtube videos are not supported by planet eclipse or google reader).

    DefaultGroupRenderer#setAnimation(boolean enable)

    DefaultGroupRenderer#setAnimationLength(int timems)

    DefaultGroupRenderer#setAnimationCloseMovement(IMovement mov)

    DefaultGroupRenderer#setAnimationOpenMovement(IMovement mov)

    It’s now easy to add additional effects, like zooming on mouse over.

    The ScrollingSmoother class which replaces the default scrolling behavior by a custom effect is now included in the bundle.

    Note : Only Linear animation has been included with the widget. You can get additionnal animations with this bundle org.sharemedia.ui.sat.easing.

  • Images and descriptions for groups : images and descriptions are now displayed for groups.

    Up to 3 lines of text are supported, simply by using GalleryItem#setText( int index, String text) with id=0 for the main label and id=1 or id=2 for the two descriptions lines.

  • Lower quality on user actions : Since this widget can draw easily draw more than 20 images at every redraw, the framerate can become very low with large images. This new mode reduce the quality of images (disables antialias or interpolation) when the user is resizing or scrolling the widget in order to get ultra fast redraws.

    While scrolling you would get this quality :

    Low quality

    500 ms after the last action, the content is updated with a better quality :

    High quality

    Gallery#setLowerQualityOnUserAction( boolean enable)

    Gallery#setHigherQualityDelay( int timems)

  • Decorators : support for decorators has been added in the widget. This allows to scale decorators differently from the main image, and solves resize problems with transparent images (reported by Justin Dolezy, see here). Decorators can be specified using GalleryItem#setData(String id, Object value) as single images or arrays of images.

    All four corners are supported, and decorators are automatically resized if there is no enough room to draw all of them :

  • Quality settings: It’s now possible to change the quality settings for the graphic context. Previously quality was always set to the maximum (antialias = on and interpolation = high). Quality can now be reduced when needed.

    public void setAntialias(int antialias)

    public void setInterpolation(int interpolation)

  • Virtual groups: The widget supports SWT.VIRTUAL, which create items where they are first used. But as the widget needs to know the size of every group, they are all created right await while items are still created on demand.

    The new lazy groups mode allows to create groups only when they get visible. Until that moment, a default value is used for every groups making the content creation even more lazy. This feature uses exactly the same code as the standard virtual mode.

    public void setVirtualGroups(boolean virtualGroups)

    public void setVirtualGroupDefaultItemCount(int defaultItemCount)
    Set the default item count. Since changing on-the-fly the size of a group changes the size and position of the slider, using a realistic value reduces makes this update less noticeable.

    public void setVirtualGroupsCompatibilityMode(boolean compatibilityMode)
    This mode can cause issue with code that set the slider size programatically (like ScrollingSmoother). The compatibility mode ensure that only groups after the current group can be uninitialized.

  • Always expanded : : if you don’t need to expand/collapse groups, you can use DefaultGroupRenderer#setAlwaysExpanded to remove the button in the title bar and display groups as expanded whatever their state is. With this option, the Gallery widget looks like it was on the very first versions.

    DefaultGroupRenderer#setAlwaysExpanded( boolean enable )

The code has been commited to Nebula’s CVS. Everyone can test this new version and give feedback. Have fun :)