Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
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



Back to the top