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