Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] UX Discussion - New Project Wizard

For the moment, I can describe what we are currently doing with the New Project Wizard in our product, and maybe that helps further design work. We could probably also come up with some ideas of what we would ideally like, but that requires further discussion within our team first. It generally goes in the direction of what Bill Swanson (requiring minimal user input and knowledge) and Martin Runge (changing target architecture) say.

The product is an IDE for our embedded real-time OS "INOS" that runs on a variety of PowerPC- and ARM-based Indel hardware.

We add a new entry to the File > New menu named "INOS Project", which takes the user to a customized version of the CDT New C++ Project Wizard. The customizations are the following:

- We filter the "project type" list to only include our own project templates, which are "Executable > Indel INOS project", "Executable > Indel empty project", "Static Library > Indel static library". ("Executable" is only a semi-accurate description, as INOS does not have executables per se, but the user application code is linked together with the OS into a single binary.)

- We hide the "toolchains" list, because there is only one possible toolchain and there is no use cluttering the UI with it. (This is our workaround for the problem Martin describes of switching between target architectures at any time - we present an "Indel Toolchain" to CDT that internally switches between GCC 4.5 PowerPC, GCC 4.7 PowerPC, GCC 4.7 ARM and whatever else we support in the future.)

- We add a custom wizard page that allows selection of which hardware to target (multiple selection from a list of Indel products).

- We suppress the "Select Configurations" page, because our template process will later add configurations corresponding to what hardware targets were chosen (removing the automatically-added ones specified by the toolchain, after using them as templates).

We are quite happy with that state now from a user experience point of view, however attaining it required some more or less hacky tricks relying on implementation details (no changes to CDT though). In particular, to suppress the configuration page, we set a proxy handler on each org.eclipse.cdt.ui.wizards.EntryDescriptor that forwards all calls to the real MBSWizardHandler, but intercepts the getSpecificPage() call to rewire the previous/next page pointers of the wizard pages. So maybe our immediate wish for a future wizard is more extensibility that would provide officially supported ways of achieving the above modifications. Going further, the ability to switch between target architectures and release/debug independently without having separate configurations for every combination or having much additional code outside of CDT like above mentioned "Indel Toolchain".

 -Christian



Back to the top