Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] MBS (IManagedOptionValueHandler) questions

You should do

 

handleValue(..., IBuildObject configuration, ..){

...

  if(configuration instanceof IConfiguration){

    ManagedBuildManager.setOption((IConfiguration)configuration, ...);

  } else if (configuration instanceof IResourceConfiguration){

    ManagedBuildManager.setOption((IResourceConfiguration)configuration, ...);

}

...

}

 

Mikhail

 

-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Derek Morris
Sent: Thursday, October 19, 2006 7:57 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] MBS (IManagedOptionValueHandler) questions

 

Just tried that...

 

1. I had to add a dependency on org.eclipse.cdt.core and import

org.eclipse.cdt.core.AbstractCExtension to get ManagedBuildManager correctly.

 

2. Where do I get an IConfiguration from? I get passed an IBuildObject and

IOptionHolder and an IOption?

 

Thanks,

--

Derek

 

Sennikovsky, Mikhail wrote:

> Hi Derek,

>

>

> Please see my response embedded below.

>

>

> Mikhail

>

>

> -----Original Message-----

> From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]

> On Behalf Of Derek Morris

> Sent: Thursday, October 19, 2006 7:19 PM

> To: CDT General developers list.

> Subject: Re: [cdt-dev] MBS (IManagedOptionValueHandler) questions

>

>

> Hi Mikhail,

>

>

> I have written an IManagedOptionValueHandler. I have added a new

> optionCategory

>

> and options to that OptionCategory that uses the valueHandler and

>

> valueHandlerExtraArgument extension. I have added boolean and string

> options.

>

>

> IManagedOptionValueHandler gets passed IOptionHolder and IOption.

>

>

>  From within the valuehandler I am using IOption.setValue(). Using these

>

> interfaces I am almost getting the behaviour I want... If it setValue()

> on the

>

> boolean option, the corresponding checkbox in the GUI is updated.

> However, if I

>

> setValue() on the string, the corresponding textbox in the GUI is not

> updated

>

> until I interact with the GUI in some way (check the booleans checkbox, for

>

> example).

>

> */[Mikhail] This seems like a bug. Try using the ManagedBuildManager API

> instead of IOption (see my comment below) and if this does not help

> please raise a bug./*

>

>

> I have no docs for ManagedBuildManager so I don't know when/how to use

> it. As I

>

> am passed an IOption (and it is working - mostly - for me) I am using that.

>

> */[Mikhail] The org.eclipse.cdt.managedbuilder.core.ManagedBuildManager

> is the entry-point for all MBS core operations. It should be used for

> setting option values as well. You should not call IOption.setValue

> because it will not work for the case of extension options (i.e. options

> whose values are not overridden by user settings)./*

>

> */The ManagedBuildManager contains the following methods that should be

> used for option value modifications (see JavaDoc comments for those

> methods for more detail):/*

>

> */ /*

>

>       *public* *static* IOption setOption(IConfiguration config,

> IHoldsOptions holder, IOption option, *boolean* value)

>

>       *public* *static* IOption setOption(IResourceConfiguration

> resConfig, IHoldsOptions holder, IOption option, *boolean* value)

>

>       *public* *static* IOption setOption(IConfiguration config,

> IHoldsOptions holder, IOption option, String value)

>

> *public* *static* IOption setOption(IResourceConfiguration resConfig,

> IHoldsOptions holder, IOption option, String value)

>

>       *public* *static* IOption setOption(IConfiguration config,

> IHoldsOptions holder, IOption option, String[] value)

>

>       *public* *static* IOption setOption(IResourceConfiguration

> resConfig, IHoldsOptions holder, IOption option, String[] value)

>

> */ /*

>

> */The “IBuildObject configuration” argument passed to your value handler

> is either an IConfiguration or an IResourceConfiguration. You should do

> instanceof and call the proper ManagedBuildManager.setOption() method.

> Please let me know if you have any questions with using the

> ManagedBuildManager.setOption()/*

>

> */ /*

>

> */Regards,/*

>

> */Mikhail/*

>

> */ /*

>

> --

>

> Derek

>

>

> Sennikovsky, Mikhail wrote:

>

>>  Hi Derek,

>

>> 

>

>>  I did not fully understand how are you using the value handler

>

>>  mechanism. Could you elaborate a bit more on this (i.e. where are you

>

>>  calling the setValue from) so that I could understand your issue.

>

>>  BTW, you should not call the IOption.setValue directly. You should use

>

>>  the ManagedBuildManager.setOption() instead.

>

>> 

>

>>  Mikhail

>

>> 

>

>>  -----Original Message-----

>

>>  From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]

>

>>  On Behalf Of Derek Morris

>

>>  Sent: Thursday, October 19, 2006 5:28 PM

>

>>  To: CDT General developers list.

>

>>  Subject: Re: [cdt-dev] MBS (IManagedOptionValueHandler) questions

>

>> 

>

>>  Mikhail,

>

>> 

>

>>  When I use option.setValue(boolean), then the UI checkbox is updated

>

>>  However, when I option.setvalue(string), the the UI textbox is NOT

>

>>  updated,

>

>>  until I do something else in the UI (for example setting a checkbox). Is

>

>>  this I bug?

>

>> 

>

>>  --

>

>>  Derek

>

>> 

>

>>  Sennikovsky, Mikhail wrote:

>

>> > Hi Derek,

>

>> >

>

>> >

>

>> >

>

>> > Please see my answers embedded below.

>

>> >

>

>> >

>

>> >

>

>> > Mikhail

>

>> >

>

>> >

>

>> >

>

>> > -----Original Message-----

>

>> > From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]

>

>> 

>

>> > On Behalf Of Derek Morris

>

>> > Sent: Wednesday, October 18, 2006 3:20 PM

>

>> > To: CDT General developers list.

>

>> > Subject: [cdt-dev] MBS (IManagedOptionValueHandler) questions

>

>> >

>

>> >

>

>> >

>

>> > Hi,

>

>> >

>

>> >

>

>> >

>

>> > Note: I think you're going to hate this as I'm using this extension in

>

>>  a

>

>> > way

>

>> >

>

>> > that wasn't planned...

>

>> >

>

>> >

>

>> >

>

>> > In the plugin.xml have added an additional field to a compilers

>

>> > optionCategory,

>

>> >

>

>> > like this:

>

>> >

>

>> > <option

>

>> >

>

>> >     name='Paste area'

>

>> >

>

>> >     category='compiler.exe.debug'

>

>> >

>

>> >     id='paste'

>

>> >

>

>> >     valueType='string'

>

>> >

>

>> >     valueHandler='OptionValueHandler'

>

>> >

>

>> >     valueHandlerExtraArgument="paste"

>

>> >

>

>> >  ></option>

>

>> >

>

>> >

>

>> >

>

>> > I am using the OptionValueHandler to allow a user to paste tool

>

>>  options

>

>> > into a

>

>> >

>

>> > field which is then parsed to set the tool options in the properties

>

>> > GUI. This

>

>> >

>

>> > means I can copy and paste options between configurations and

>

>>  correctly

>

>> > set the

>

>> >

>

>> > properties GUI to match. This is working.

>

>> >

>

>> >

>

>> >

>

>> > The first question is that I would like to add this field to the main

>

>> > compiler

>

>> >

>

>> > page (under 'expert settings'), rather than one of the sub-pages. Is

>

>> > there a way

>

>> >

>

>> > to do this?

>

>> >

>

>> > */[Mikhail] It is not possible to extend/contribute to the main

>

>>  compiler

>

>> > page currently./*

>

>> >

>

>> >

>

>> >

>

>> >

>

>> >

>

>> > The second question is that after I have parsed the options, I wish to

>

>> 

>

>> > clear the

>

>> >

>

>> > entry field in the GUI. I am able to clear the value using

>

>> >

>

>> > (option.setValue("")), but this is not reflected in the GUI until I

>

>> > switch from

>

>> >

>

>> > the page and switch back again. Is there a way to get the entry field

>

>>  to be

>

>> > refreshed?

>

>> >

>

>> > */[Mikhail] The MBS functionality does not have the change

>

>>  notification

>

>> > mechanism currently. That is why MBS GUI has to refresh contents of

>

>>  each

>

>> > page to ensure that proper "live" values are displayed. Currently the

>

>> > refresh is performed in the following situations:/*

>

>> >

>

>> > */1.    /**/the page/tab becomes visible/*

>

>> >

>

>> > */2.    /**/the value of some UI property of the page gets changed/*

>

>> >

>

>> > */ /*

>

>> >

>

>> > */If you need some more flexible mechanism of UI contents update we

>

>> > might consider changing/enhancing the current MBS UI refresh

>

>>  mechanism./*

>

>> > */ /*

>

>> >

>

>> > */Regards,/*

>

>> >

>

>> > */Mikhail/*

>

>> >

>

>> >

>

>> >

>

>> > TIA

>

>> >

>

>> >

>

>> >

>

>> > --

>

>> >

>

>> > Derek

>

>> >

>

>> > _______________________________________________

>

>> >

>

>> > cdt-dev mailing list

>

>> >

>

>> > cdt-dev@xxxxxxxxxxx

>

>> >

>

>> > https://dev.eclipse.org/mailman/listinfo/cdt-dev

>

>> >

>

>> >

>

>> >

>

>>  ------------------------------------------------------------------------

>

>> > _______________________________________________

>

>> > cdt-dev mailing list

>

>> > cdt-dev@xxxxxxxxxxx

>

>> > https://dev.eclipse.org/mailman/listinfo/cdt-dev

>

>> 

>

>>  _______________________________________________

>

>>  cdt-dev mailing list

>

>>  cdt-dev@xxxxxxxxxxx

>

>>  https://dev.eclipse.org/mailman/listinfo/cdt-dev

>

>>  _______________________________________________

>

>>  cdt-dev mailing list

>

>>  cdt-dev@xxxxxxxxxxx

>

>>  https://dev.eclipse.org/mailman/listinfo/cdt-dev

>

>> 

>

> _______________________________________________

>

> cdt-dev mailing list

>

> cdt-dev@xxxxxxxxxxx

>

> https://dev.eclipse.org/mailman/listinfo/cdt-dev

>

>

> ------------------------------------------------------------------------

>

> _______________________________________________

> cdt-dev mailing list

> cdt-dev@xxxxxxxxxxx

> https://dev.eclipse.org/mailman/listinfo/cdt-dev

 

_______________________________________________

cdt-dev mailing list

cdt-dev@xxxxxxxxxxx

https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top