Twitter github

Posts Tagged with “pde”

Polar Water Bottles and 3.3 Menus

A few days ago, I created a new icon using my rudimentary graphics skills:

I was inspired by my recent ‘Open Contacts‘ work (I hope the icon quality is good enough, noone seems to take me up on my GraphicsZilla idea ;p)… and now that I had the icon completed, I released my code so you have a pretty menu and toolbar entry:

How did I do this? Well, I could’ve been lame and used actionSets, but I decided to try out the new Platform Command Framework because I’m a big fan of learning new things. After looking at the wiki page, I was a bit depressed at first because it looked like a lot of work to get my pretty little icon where I wanted it 🙁

Never fear though, PDE was there for me like always with a new template for the 3.3 edition.

After looking at the code generated by the template, I had a better idea of how to work with the new command and menu story. The trickiest part was the locationURI attribute on the org.eclipse.ui.menus extension point. For the menu entry (pictured above), the locationURI was menu:navigate?after=open.ext3, which means insert me into the navigate menu (see IWorkbenchActionConstants for valid identifiers) after the open.ext3 group. For the toolbar entry, the locationURI was different, toolbar:org.eclipse.ui.main.toolbar?after=additions.

That wasn’t too bad right :)?

On a side note, as part of my “not to gain a ton of weight while working in the software industry” diet, I like to bike about ~100 miles (~160 km) a week. In the Texas summer heat (100F / 37C), nothing is more precious than cold water for me 🙂 These new polar insulated water bottles seem to do a really good job keeping the water cold for a typical 2-3 hour ride in high heat.

PDE + 1

The PDE family is growing! One of PDE’s beloved committers, Brian Bauman, is a brand new father! Say Hi to Trent!

Contacts on a Plane

On the plane to Boston, I managed to fairly quickly implement something I’ve wanted in a messaging client for years, the ability to quickly browse and message a contact via a keybinding to prevent the usage of the mouse (similar to how Ctrl+Shift+T in Eclipse rocks).

I implemented this feature for ECF (which is becoming my main chat client since it’s nice to have it all within Eclipse). How did I do this? Well, I used the wonderful FilteredItemsSelectionDialog from the Platform. And by wonderful, I mean it was wonderful once I got everything working 😀 I then took advantage of the new Platform Command Framework to wire things together (there was a PDE template that helped me with this). Look for this functionality post 1.0 ECF. I encourage people to file bugs and feature enhancements against ECF to make it more fully-featured.

Target Definitions

I tend to joke around with Wassim that PDE has certain things that only one person (hi Jeff) in the world uses. A good example of that is Target Definitions which people only come across accidentally when trying to create a Product Configuration. Why is it that only “one” person in the world uses Target Definitions? Is it a doc problem? Maybe, but it’s my opinion that feature adoption always comes down to evangelism via proper channels. However, that’s another discussion, back to Target Definitions 😉

In simplest terms, Target Definitions allow you to manage your target platform in ways you didn’t think was possible before. For example, you may be developing a product or component that only needs a specific set of plug-ins or features. As an example, let’s say you were a handsome developer working on the new Equinox provisioning effort. As a new Equinox provisioning developer, you know that you don’t need the whole SDK checked in your target platform so you used to manually check plug-ins that you didn’t want included. That kind of sucks…. as a smart Equinox provisioning developer you decided to create a target definition that would represent the target you are developing against (provisioning).

Once you do that, it’s easy to craft your target platform the way you want and also share that target platform with your fellow provisioning developers (since target definitions are contained in a shareable .target file).

That’s Target Definitions in a nutshell. I tend to use Target Definitions frequently when working with products that serve as platforms and I’m working with a component that exists on top of a product. So now that you know about them, go use them and file some bugs (or enhancements).

Creating an OSGi bundle with PDE

In response to Glyn’s post, I figure I would show people how to create a ‘hello world’ bundle using PDE (I cry these days if I ever see someone setting up their classpath ;p).

  • File->New->Project
  • Select Plug-in project
  • Make sure the target platform points to Equinox
  • Select the Hello OSGi template
  • Click Finish and we’re done. Feel free to launch using PDE’s facilities

PDE meets Bangalore

Wassim and I from PDE will be at Eclipse Forum India (EFI) next week giving conference attendees a full-day of PDE love 🙂

If anyone at the conference wants to sit down with us and chat about PDE/Eclipse (over an optional frosty beverage of course) please let us know. At the last EclipseCon, the PDE team heard good ideas (particularly from those demanding Band XI guys ;p) that we incorporated into the 3.3 release of PDE. We would love to do the same at EFI (for 3.4).

On a side note, as a committer representative, I would love to hear what issues or suggestions Eclipse committers in the area have. At Eclipse Forum Europe, I heard some complaints which I acted on and would like to do the same at EFI. Feel free to drop me a line and we can chat.

Small Launching Change

In the PDE team, we had this running joke that every Eclipse-related debate eventually degenerates into talking about the SWT_AWT bridge (this was true two EclipseCons ago, now every debate ends up talking about Provisioning/Update). Well, to make those SWT_AWT guys happy (especially on the Mac), we made a small change (fix) to how Eclipse applications are launched in PDE. In the past, we used to implicitly pass certain arguments (os,ws,arch,nl) to the framework, this is no longer true. In 3.3RC1, you’ll notice these arguments located in the program arguments box (explicitly).

We fought this change for awhile because in my eyes, it slightly complicates the launching user interface, but it was necessary to keep everyone happy. PDE will automatically migrate your old launch configurations (using some clever Debug APIs) so there’s no worry 🙂

Case Sensitivity Shenanigans

I’m currently stuck in the DFW airport which is like being in prison for owners of laptops that need a battery charge. The amount of power outlets (near where you can get a beer or some food) for personal use in the international terminal can be counted on one hand. I feel like I could make a million dollars with some extension cords and a powerstrip.

On the bright side, one of the trickiest PDE bugs has just been closed. It dealt with case sensitivity issues in the manifest editor. The framework doesn’t care whether your header is Bundle-ClassPath or Bundle-Classpath, and PDE should be flexible enough to handle these cases 🙂

Furthemore, developers can now use the enhanced JFace Text WordRule to deal with case sensitivity issues in their own editors.

PDE Gone Wild

In the next I-build, you’ll see that PDE‘s Plug-in Dependencies view has been upgraded (thank you Brian Bauman).

Oh my, it’s now easy to see how things are wired by that crazy framework!

Furthermore, it’s now possible to get a state of the [PDE] state. For example, if you had a bundle that wasn’t happy (In Eclipse Update terminology), you would see something like this:

Enjoy!

We do tooling but our business is people

The Eclipse 3.3 release cycle has gone really well for the PDE team. Considering the relatively small size of the team, we’ve managed to fix a ton of bugs and add a plethora of new enhancements (from people who didn’t submit patches btw ;p). The PDE motto has always been, “We do tooling but our business is people.” With that stated, the PDE team is entering the polish phase of the release cycle and we implemented things known as “theme weeks.”

This week’s theme is “anything product related” needs to be polished. Next week is primarily all things cheat-sheets. We are inviting the community to comment and file new bugs that they would like solved before 3.3 closes. We will pay special attention to these requests and try to fit them in the plan as we understand that PDE plays an important in the future growth of Eclipse.