Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 299332

Summary: Java Project Constructor class
Product: z_Archived Reporter: Wayne Beaton <wayne.beaton>
Component: IDE4EDUAssignee: Project Inbox <ide4edu-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Wayne Beaton CLA 2010-01-11 22:09:31 EST
The code to build a new Java Project is part of the "New Java Project" wizard. This class combines the GUI elements with the non-visual ("business model") elements in a way that makes it difficult to reuse.

I'd like to see the non-visual elements refactored out of the wizard into a separate class that has one job: create a Java Project. No GUI. An instance is loaded up with the information that it needs to do the work and is told "Go!" (with a progress tracker).

At some point, the class can be configured to permit observation so that a GUI can more easily interact with it. I don't believe that an initial implementation needs to have this to be useful.

Most of the code is in the "New Java Project" wizard; extracting it might be challenging. There is also a class in Kent Beck and Erich Gamma's "Contributing to Eclipse" book. I believe that there must also be something in the JDT tests or test harness that does this work.

This class can be leveraged by Bug 244645.

As a first step, we should probably capture the sorts of information we need to have in order to create a Java Project.

Note that this should be relatively high-level. The wizard should, for example, just know to set the Java nature. Given Java version information, it should sort out what the build path looks like.
Comment 1 Wayne Beaton CLA 2010-01-20 22:17:53 EST
I have committed a first pass at an implementation of this. It takes the form of a new plug-in. I have also taken the exciting step of creating a test plug-in that demonstrates the code at work.

The new plug-ins are found in CVS under org.eclipse.ide4edu/javalite/plugins. They are named org.eclipse.ide4edu.javalite.constructors and org.eclipse.ide4edu.javalite.constructors.tests. I will take a crack at updating/simplifying the corresponding user interface.
Comment 2 Wayne Beaton CLA 2010-01-21 10:26:32 EST
I have updated the user interface (Bug 300294) to use the constructor object. The implementation is now _much_ simpler and cleaner; even better, it all uses only public APIs. Declaring victory with this initial implementation; marking as FIXED.