• Share this article:

Eclipse Slideshow

Monday, January 19, 2009 - 23:41 by Wayne Beaton

I briefly mentioned some presentation software I’ve been working on on-and-off for a while a few postings back. Eclipse Slideshow has gotten to the point where others are expressing interest, so I thought it was time to make it available. I’ve been holding back only because there are already two other examples waiting in the queue for inclusion in the Examples project, and I didn’t want to make things more difficult. However, it seems that those two other candidates for inclusion have stalled somewhat, so I’ve decided to plow ahead (hint, hint: you know who you are).

I’ve attached what I have so far to Bug 261590 and have posted a little video that shows it in action.

To make it work, you’ll need the org.eclipse.mylyn.wikitext.core and org.eclipse.mylyn.wikitext.mediawiki.core from the Mylyn sandbox (have I spoken recently of the love I have for Mylyn?) and the latest drop of draw2d from GEF (you can get that from the Ganymede update site).

The code is, of course, a little rough. It’s not nearly commented enough at this point to be a helpful example, but that will come with time.

The demonstration shows it in action. You edit the content using MediaWiki format (the same format that we use on Eclipsepedia) and it renders in a view. As shown in the demo, you can present full screen by clicking on the mislabeled button on the view. I actually used this for my presentation at Eclipse Summit Europe 2008.

The demo shows different slide templates used for different types of content. Headers mark the beginning of a new slide; a level one slide is considered a “title” slide, and renders as such. For example, the following markup:

=Test=
Wayne Beaton

Evangelist, nice guy

Renders as:

Level two slides render as “content” slides. For example, the following markup:

==A slide with Code==
[[Image:images/the_last_starfighter.jpg||right]]

Code importing [[Image:images/RiverRats.gif]] isn't very advanced yet.
*This will look better if you create a project named "Stuff" with a ''org.eclipse.examples.tests.Junk'' class that has a main(String[]) method.
*I intend to render the code in box.

{Code:java://Stuff/org.eclipse.examples.tests.Junk#main([QString;)}

Renders as:

The rendering engine supports images embedded in the text, as well as images positioned on the left or right (I plan to support top and bottom positioning as well). Something that I’ve only just started implementing is the ability to import source from a class or method onto the slide directly from the workspace. The {Code:java://Stuff/org.eclipse.examples.tests.Junk#main([QString;)} tag grabs the main method from the Junk class found in the Stuff project (I intend to make parameters a little easier to encode). Right now, this tag just inserts the text of the method directly into the text of the slide. My plan is to treat the the text more like an image, neatly formated with a nice box around it. I’ve got most of that sorted out; it’s just a matter of time.

You’ll probably notice as you watch the video that one of the cooler things it does is that it makes everything just fit. It arranges the images and modifies the font sizes to make it work. No pushing bits around. I hate pushing bits around in Open Office…

I have a lot of ideas of what I’d like to do with this:

  • Print slides to a PDF printer driver to generate student handouts
  • Markup syntax for the wiki text processor to support some notion of handout notes
  • Additional presentation templates (support via extension point is already included)
  • Import/export Open Office documents

There’s more. I’d love to hear your thoughts about this. Comments on Bug 261590 are most welcome.

Tags