Download Prototypes

Note that our prototypes must be running on at least Java 1.5 with Eclipse 3.3.

The prototypes of our tools can be downloaded by using subversion to check out the tools into your Eclipse workspace. Point your subversion client at:

svn://amstel.cs.pdx.edu/refactoringtools

And check out the following modules:

edu.pdx.cs.multiview.util 
edu.pdx.cs.multiview.swt.pieMenu
edu.pdx.cs.multiview.refactoring.pieMenu
edu.pdx.cs.multiview.refactoringCues

As soon as these tools are stable, we will put them in our update site for more convenient access.

Demos


Please be patient... these may take a few moments to load!

Pie Menus

Suppose a programmer has a Dog class that knows how to bark(), but would like to have its sibling Cat class know how to meow(), with similar functionality. Below shows how a programmer might use linear menus and wizards to activate refactoring tools to help achieve this change:

Below is the same change performed with pie menus and without wizards.

Refactoring Cues

Suppose a programmer is adding a new field to a class and will have its value read in from a Dictionary. First, the programmer wants to eliminate some duplication in the read() method:

public void read(Dictionary dict){
     a = Integer.parseInt(((String)dict.get("a")));
     b = Integer.parseInt(((String)dict.get("b")));

     dx = Double.parseDouble(((String)dict.get("dx")));
     dy = Double.parseDouble(((String)dict.get("dy")));
}

This refactoring involves removing the duplication using Extract Method, as well as some subsidiary extracting and inlining of variables. Note that the tools automatically remove some kinds of duplication for you. First, we'll remove this piece of code, duplicated 4 times:

(String)dict.get(...)

And then factor out two pieces of duplication, repeated twice each:

Integer.parseInt(...)
Double.parseDouble(...)

Using standard Eclipse refactoring tools, the process might look like this using hotkeys and wizards:

Below is the same change performed with hotkeys and Refactoring Cues: