Eclipse Platform Improvements for Microsoft Windows

by David Green, November 2nd, 2011

In Eclipse 3.6 we worked with the Microsoft interoperability team to bring some major improvements for Microsoft Windows users, such as Jump Lists, taskbar progress indicator and taskbar overlay text and images. As part of Tasktop’s ongoing partnership with Microsoft, we’ve been working hard to bring you two more improvements this year: Desktop Search, and Glass.

Desktop Search

The idea behind Desktop Search is simple: enable developers to search for resources outside of the current workspace. Until now Eclipse developers have only been able to search for resources within their workspace. First requested in 2007, this feature will help developers using multiple workspaces or those who regularly work with non-workspace files or documents.

Integrated Desktop Search

While Desktop Search works for users on any OS, Windows users will experience a much faster search as a result of tight platform integration with Windows Search. Windows Search provides a full-text search index over a user’s files. The powerful Windows Search “SELECT TOP” syntax is used to find the most relevant matches.

Desktop Search Results

Workspace and non-workspace resources are displayed side-by-side in the search result.

We hope to have Desktop Search integrated as a Platform feature for Eclipse 3.8. In the meantime, Desktop Search is available from the Mylyn Incubator update site. To install select “Help -> Install New Software” from the Eclipse menu. Using the following site http://download.eclipse.org/mylyn/incubator/3.7 select “Mylyn Desktop Search (Incubation)”. If this is something that you’d like to see as an Eclipse Platform feature, please vote for it on bug 192767.

Aero Glass for SWT

Modern Windows applications can have transparency, commonly known as Glass. For the first time, with this latest improvement to SWT on Windows, both Eclipse workbench and Eclipse RCP applications will be able to look like modern Windows 7 applications.

As an example here is the Glass look applied to the Tasktop RCP application, which only took a few hours of effort:

Tasktop RCP with Glass

In this screenshot we’ve updated Tasktop RCP to use Glass for the shell, toolbar and search widget.

RCP and Eclipse platform developers will be able to use Glass with the new TRIM_FILL style bit:


	Shell uiShell = new Shell(display, SWT.SHELL_TRIM | SWT.TRIM_FILL);
	uiShell.setText("Glassy World");

	Composite uiRoot = new Composite(uiShell, SWT.TRIM_FILL);

Looking forward we would like to see this new Glass support adopted by the workbench modernization effort in e4.

Glass support in SWT is nearing completion, under development on bug 325795: support Windows Vista and 7 Aero Glass shells.

Eclipse And Windows – Looking To The Future

Through our partnership with Microsoft, Tasktop is continuing our efforts to keep Eclipse looking fresh and modern on Windows. We are currently discussing the next round of improvements, so if you have any ideas or feedback about what you’d like to see next, please drop me a note at david.green@tasktop.com.

You can read more about these and related efforts from the Microsoft perspective:

Contributors

Many thanks go out to Felipe Heidrich, Scott Kovatch, Mike Wilson, Steve Northover, Silenio Quarti, Bogdan Gheorghe, Raymond Lam, and Shawn Minto for helping to make Glass with SWT a reality, and to Łukasz Milewski for his prototype. Thanks also go out to Raymond Lam, Shawn Minto, Steffen Pingel and David Green for creating the desktop search integration, and to Dani Megert for supporting integration into the Eclipse core platform. Also I’d like to give a special thank you to the Microsoft Interop team who have been driving a better experience for Eclipse users on Windows.

9 Responses to “Eclipse Platform Improvements for Microsoft Windows”

  1. Deepak Azad Says:

    Super cool! I eagerly await the Glass look to come to e4.

  2. Alex Blewitt Says:

    Can the desktop search utilise spotlight when running on OSX?

  3. David Green Says:

    @Alex Currently desktop search doesn’t use Spotlight. There is an extension point enabling plug-ins to provide OS-specific integration. So far the only OS-specific optimization is for Microsoft Windows. Feel free to contribute!

  4. Daniel Zimmermann Says:

    Can you tell me where the SWT.TRIM_FILL has to be added? When I start my platform, there ist only a call of
    Display display = PlatformUI.createDisplay();
    creating the main display. The only shell I have is for the splash screen an my login-dialog using the call
    Shell shell = WorkbenchPlugin.getSplashShell(display);

    I have no clue, where to add the TRIM_FILL to…

    Thx.
    Daniel

  5. David Green Says:

    @Daniel See the example above, you’ll need to specify TRIM_FILL when creating a Shell. Currently this makes it very difficult to cause the workbench main shell to use Glass without modifying the workbench initialization source. In other words, it’ll be relatively easy to use Glass with SWT applications, but not so easy for Eclipse RCP or Eclipse applications that use the workbench. The next step will be for the Eclipse platform to start using Glass, perhaps as part of the Eclipse e4 modernization effort.

  6. Mike Milinkovich Says:

    David,

    You mentioned that these features will be in Eclipse 3.8. However, Juno is targeting Eclipse 4.2. Will the enhancements also appear there?

  7. David Green Says:

    @Mike

    We expect that getting this feature into the platform 3.8 stream will cause it to be consumed by the 4.x stream automagically. I’ll raise the issue on the bug report – if there are any additional integration efforts required for it to show up in the 4.x stream, we’ll be sure to follow through.

    Note that the platform team hasn’t yet indicated if they will accept this contribution at all – please vote for it on https://bugs.eclipse.org/192767 if you’re interested.

  8. Ed Says:

    As for SWT 4.2 this is NOT yet available.
    how can anyone get code that works with that parameter. that as for SWT 4.2 does not exist. ( SWT.TRIM_FILL)
    it appears it is not include as the Native code for windows is compiled agains windows XP SDK.

  9. David Green Says:

    @Ed You should definitely take this up on bug 325795 https://bugs.eclipse.org/bugs/show_bug.cgi?id=325795 since we’d love to see this contribution accepted.

    The results of the work to date can be found here: http://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?h=AERO_WORK

Leave a Reply