Eclipse Slideshow

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.

This entry was posted in Examples. Bookmark the permalink.

7 Responses to Eclipse Slideshow

  1. Did you look at the ruby slideshow gem ?
    http://slideshow.rubyforge.org/

    Pretty much the same idea. However it uses Markdown, while you use mediawiki’s syntax.

  2. Wayne Beaton says:

    I have. There are some things that we can do in Eclipse that are harder to do with the Ruby-based stuff. But the Ruby Slideshow does solve the distribution problem in a reasonable way (distribute HTML). Though, the generated output rendered odd on FF on my system. But that can be solved.

    I have several motivations for doing this:

    1) It’s a good example of how one might use/extend the Mylyn Wiki parser, manipulate Java source through JDT, render images using draw2d, build a view, build an editor, services, extension points, etc.

    2) It gives immediate feedback; the view updates as you’re typing

    3) I hate pushing bits around and messing with font sizes and text position and all that junk in PPT/ODP. Eclipse Slideshow resizes fonts, positions and sizes graphics, etc. to make it work. No pushing bits…

    4) It’s something that I care about that gives me a good platform for digging into and understanding parts of Eclipse that I don’t necessarily get to explore otherwise

    As an example, Eclipse Slideshow isn’t intended to be a real product. It will likely always be incomplete.

  3. Wayne, why didn’t you render content in an editor? The chances are that someone may want to open more then one presentation at the same time and editors generally more suitable for this kind of content, especially if there is a resource underneath.

  4. Wayne Beaton says:

    You can open more than one *.show file and flip between them. The view shows basically a preview of the slide that the cursor is focused on. There’s no reason why the editor can’t show the rendered slide as well (the slide rendering bits are pretty well decoupled)

  5. Frank says:

    I have created a large presentation with 200 slides using http://goessner.net/articles/slideous/ It uses plain HTML for the authoring. One really nice feature is that you can hit the letter “p” and then all slides are shown as one long document. I use this for printing handouts.

    Eclipse Slidewhow was a bit hard to set up because of the wikitext dependency. I needed to get the old January version from CVS.

    I’m looking forward to Eclipse Slideshow possibly becoming a replacment for my slideous slides.

  6. Wayne Beaton says:

    Hi Frank. I’ve been waiting for a structural change to the Examples project before contributing. I should be able to upload this to CVS and put a build script together (to generate an update site) next week.

  7. Reblogged this on FunThomas Blog (de) und kommentierte:
    Ein sehr interessantes Eclipse Plugin welches ich mir bereits mittels BuildBoost compiliert und hier zum Download abgelegt habe: https://github.com/FunThomas424242/EclipseSlideshow-Build/downloads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s