One of my bigger challenges is managing a workspace packed with many different projects. As an evangelist, I tend to spend a lot of my time experimenting with stuff and the result is a tonne of projects of various sizes. I do try to close the projects that I’m not currently working on. I’ve also imported a bunch of plug-ins as projects so that I can more easily look through them (the PDE makes this dead easy). I’ve talked a lot over the past weeks about some work I’m doing with an EBay rich client. I’m building it as an example of what you can do with the Eclipse RCP technology, and I’ve organized the application in multiple projects (partially discussed here).
Keeping all these projects straight in the Package Explorer is a real challenge. Here is a screenshot of the Project Explorer in my workspace:
Obviously, I need to clean things up a little (and this is only a subset). I really don’t need a lot of these projects. However, it helps (I think) to make the point: things get cluttered.
At the top-right of the view, there’s a little pointing-down-triangle-thingy that opens a menu when it’s clicked. In the menu, there’s an entry to show either “Projects” or “Working Sets”; oddly enough, this toggles what the view shows. In the above image, it’s showing projects. By setting it to “Working Sets”, here’s how it changes:
There… that’s better. For this to work, you need to actually define your working sets. You can do this in a few different places, but the easiest one is in that same pointing-down-triangle-menu-thingy. Select “Select Working Sets…” from the menu. From here you can choose which existing working sets you want to display in the view (I’ve actually defined a couple more working sets, but have filtered out the ones I don’t care about); you can also create and edit working sets from here.
A working set is just a collection of projects that have some relationship that means something to you. For example, I’ve grouped all the projects that I need for the EBay thingy into a single working set. You can use these working sets in other places. You can, for example, specify a working set to constrain a search (i.e. search only those elements defined in the working set).
Of course, the big problem with working sets and this view is that I’ve completely lost my motivation to clean up my workspace…