Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Custom Wizard Page Operation's Run Priority

Thanks for the reply! (more below)

On Fri, Jun 13, 2008 at 10:31 AM, Alex Chapiro <achapiro@xxxxxxx> wrote:
>
> Karol Krizka wrote:
>>
>> Hi,
>>
>> I am working on a CDT projectType that needs to have a certain
>> environment configured before it can be created. What I though of
>> doing is to add an custom wizard page using the
>> org.eclipse.cdt.managedbuilder.ui.newWizardPages extension, where the
>> user will be asked to enter the configuration for the environment.
>>
>
> Actually, you shouldn't create new dialogs, it's already there. You can see
> it if you on Select Configuration page press Advanced Settings button.
I'm not making new dialogs, just extending the existing ones.

>The
> tricky thing is if you'd like calculate environment using some basic
> parameters. In this case you can use class which  implements
> IConfigurationEnvironmentVariableSupplier interface. In my case for example
> I calculate environment from platform, compiler version, language type and
> something else. To simplify users task I let him edit these more obvious
> parameters on the extra tab property page, then reevaluate environment
> (automatically). On the other hand user can edit environment directly.
> Anyway, I couldn't do these changes without changing of CDT stuff.
>
I'm already using that class during the build process. I just needed
to extend the wizard page to get a few options to create the
environment. The environment variables are set using a bash script,
and the location of the script is what I need to get from the user.

>
>> Then I wanted to use the operationClass to process the information,
>> run the necessary commands and create the project using a template.
>> But the problem is that the operationClass is run after the project is
>> created, which is too late. I have several ideas on how to get around
>> this, but they seem a bit hacky and I'm wondering if there is a
>> cleaner way to make sure that operationClass runs before the project
>> is created.
>>
>
> This functionality exists in MBS and "almost" works. MBSWizardHandler has
> doCustom method. To do extra work during project creation I had  to create
> invisible custom page and added custom operation to it. It works smooth now,
> but unfortunately I had to change CDT stuff once again (not much, I hope).
>
Ah, I'll take a look at that method.

>
>> Here is what I'm thinking of doing
>> 1) Add a button to the custom wizard page that says "configure
>> environment". Clicking it will run what needs to be run and enables
>> the Next/Finish buttons of the wizard.
>>
>> 2) Add another custom process at the beginning of the template that
>> will somehow grab the options and run the scripts. I don't like this
>> approach, because I plan to create several templates for the
>> projectType, and I don't really want to make sure that the custom
>> process is included in every one of them...
>>
>>
>> On a slightly related topic, is it possible to dynamically add/delete
>> the custom page to the wizard? I know I can specity the projectType,
>> natureID and toolchainID of projects for which to display the page,
>> but that is not enough for what I need to do. The environment that
>> this page will be created for is specific to the entire workspace, so
>> I only need to display it the first time the user tries to create a
>> project. What I'm thinking of doing is showing editable text boxes if
>> he has not configured it yet and labels with current options if he has
>> configured it, but it would be even better if I could not display
>> anything at all.
>>
>
> Yes, you can manipulate pages visibility as well as re-evaluate dynamically
> previous and next pages
>
I was afraid someone would suggest that. :P I guess I could do some
"splicing" to remove the page after it was loaded. I'll play a bit
around with it.

Cheers,
Karol Krizka


Back to the top