Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-ui-dev] Towards a new approach to New, Import, and Project refactoring : discussing bug 102527

I would like to advocate for, and have a discussion on how to :
- re-visit the new and import story, 
- add support for project refactoring, 
- support those refactoring with wizard pipelines, 
- and trigger project refactorings based on project's context changes.

The enhancement request I posted is :
https://bugs.eclipse.org/bugs/show_bug.cgi?id=102527

I think it's a good time, as I assume that planning might be taking
place for the future :-)

Just a quick summary of my thoughts here:

*New, Import and Refactor project are ONE
-------------------------------------------------------
New, Import and Refactor project are three facets of the same story:
what they do, and how they are presented in the UI is important but is
just an implementation detail IMHO ;-) . There is an opportunity to
review them as such.
They apply a transformation to a project to go from one state to another
:
- New & import : from no project to some project, plus some other
artifact
- Refactor : from one project state to another project state. 

* Wizards pipelines 
----------------------
Projects state changes are akin to a pipeline of transforms applied to a
project.
State changes are done commonly with wizards, and often sequences of
wizards:
- adding some project nature & builder
- configuring some stuffs (i.e. classpath)
- adding some files (from templates for samples or external imports)
- performing some other actions.
Pipelining needs the ability to :
-- invoke and finish a wizard, 
-- pass data between loosely coupled wizards in and out. 
Having a way to define pipeline wizards that can be composed (and
re-composed) with a loose coupling could support most of the use cases. 

* Triggers
---------------
Refactorings could be triggered by the user in the UI (menus, buttons,
...) or based on some change in context for a project. For instance,
adding a new Java file to a project should trigger a refactoring of the
project to support Java. 
The most similar available mechanism seems to be
activities/capabilities. In a sense triggers would also support
progressive disclosure.

What do you think?

-- 
Cheers
Philippe

philippe ombredanne | nexB - Open by Design (tm)
1 650 799 0949 | pombredanne at nexb.com 
http://www.nexb.com
http://sf.net/projects/easyeclipse
http://eclipse.techforge.com





Back to the top