Archive for the ‘Gallery Widget’ Category

Gallery Widget
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 :-) .

Gallery Widget
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.

Gallery Widget
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 :)

Gallery Widget
Nebula Gallery Widget bugfixes

November 2nd, 2008

Bugs 212567 and 215817 are now fixed. Thanks to Peter Centgraf and Robert Handschmann who provided the patchs.

The widget now fires default selection events and supports scrolling using PageUp, PageDown, Home and End. These changes enable the JFace IDoubleClickListener to work.

Sharemedia
ShareMedia 0.3.2 released

May 28th, 2008

ShareMedia is a photo manager based on Eclipse RCP. (open source / EPL)

Main features are :

  • Automatic file management (like in iTunes)
  • Sort and search using photos metadata
  • Standard and OpenGL photo viewers
  • Connect to Picasa, Jabber and Flickr (alpha) to share files
  • Ability to copy files between 2 accounts (Picasa/Picasa, Picasa/Flickr, Picasa/local files)
  • Plug-ins support (like all RCP applications)
  • much more…

This new release (0.3.2) includes :

  • Integrated intro content with tutorials and usefull links
  • SWT Animation Toolkit is now used to provide nice UI effects
  • Better error checking for password
  • Several bug fixes on the OpenGL viewer

For SWT/RCP developpers :
The Nebula Gallery Widget and the SAT toolkit where initially developed for this application so it is a good example on how they can be used.

Used libraries : SWT, RCP, Nebula widgets, LWJGL, DerbyDB, SmackAPI, Drew Noakes’s metadata Extractor, GData, FlickrAPI, SAT.

Screencasts :

Part 1 : Connect to a Picasa account, 3D and 2D fullscreen display

Part 2 : Download and upload photo, see metadata, create album and intelligent lists.

For the next release, I’m looking for some Java feedback. If you’re a Java developer and you already worked on the following topics, please drop a comment here.
- Writing EXIF / IPTC tags. (ShareMedia only have read support right now)
- Working with videos (creating thumbnails, playing in a SWT UI or OpenGL Canvas).

Thanks,