I think it would be confusing to have both wtkx:id and @ID. I'm also not sure
that the use case for such a feature has been clearly articulated. Perhaps the
automationID property of Component would suffice?
On May 7, 2010, at 3:23 AM, Dirk Möbius wrote:
> On second thought, I admit Patrick has a point here. I'm not happy with my
> own code example because there's too much boilerplate code. The injected
> button members are not really needed.
>
> Albeit, simply adding an "id" property to Component (analogous to Swing's
> "name" property) is not a good solution either, because the WTKXSerializer
> (soon to be named BeanSerializer) is more general and unaware of Component --
> it would be awkward to insert something like:
>
> if (bean instanceof Component)
> ((Component)bean).setId(...);
>
> Instead I propose a new class annotation:
>
> @Id
> public class Component {
> private String id;
> // getter and setter...
> }
>
> You can also set the name of the id property:
>
> @Id("name")
> public class MyBean {
> private String name;
> // getter and setter...
> }
>
> If WTKXSerializer sees the @Id annotation on a bean, it calls its setter,
> assuming its type is String. I think that would be general enough.
>
> @Id could also be named @WtkxId or @BxId.
>
> What do you think?
> Pivot 2.0?!?
>
> Regards,
> Dirk
>
>
> Patrick Shea <[email protected]> wrote:
>
>> Unfortunately I don't come from an html background. I'm just trying to reuse
>> the same listener for more than one component but I can't because I can't
>> separate which is which!
>>
>> This is where the id comes into play...
>>
>> I don't think that any xml attribute should be hidden from the java model,
>> they should always be exposed.
>>
>> At the very least the namedObjects map should be exposed and not be private
>> in the serializer.
>>
>> Patrick
>>
>>
>>
>> -----Original Message-----
>> From: "Greg Brown" <[email protected]>
>> Sent: Monday, May 3, 2010 6:24pm
>> To: [email protected]
>> Subject: Re: How to retrieve wtkx:id?
>>
>> I understand why you might expect it to work that way, especially if you are
>> coming from HTML, but it doesn't. Consider that Java member variables are
>> also accessible via reflection, but you still can't get a variable name from
>> a class instance. WTKX isn't a DOM - it's just another way of instantiating
>> classes.
>>
>> Hope that helps clarify things.
>>
>> Greg
>>
>> On May 3, 2010, at 6:16 PM, Patrick Shea wrote:
>>
>>> Well, they are declared in xml as id's and used in code in get(...) so they
>>> are quite public.
>>>
>>> I was able to go around this by reflection but it's ugly and they should
>>> really be exposed at the component level I think.
>>>
>>> Patrick
>>>
>>> -----Original Message-----
>>> From: "Greg Brown" <[email protected]>
>>> Sent: Monday, May 3, 2010 6:07pm
>>> To: [email protected]
>>> Subject: Re: How to retrieve wtkx:id?
>>>
>>> No. WTKX IDs don't work like HTML IDs - they are more like variable names.
>>> Just as there is no way to retrieve a variable name from an object
>>> instantiated in Java, there is no way to retrieve an ID from an object
>>> declared in WTKX.
>>>
>>> On May 3, 2010, at 10:20 AM, Patrick Shea wrote:
>>>
>>>> Is there a way to get the wtkx:id of a given component?
>>>>
>>>> Thanks
>>>> Patrick
>>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
>
> --
> Dirk Möbius
>
> SCOOP GmbH
> Am Kielshof 29
> D-51105 Köln
> Fon +49 221 801916-0
> Fax +49 221 801916-17
> Mobil +49 170 7363035
> www.scoop-gmbh.de
> Sitz der Gesellschaft: Köln
> Handelsregister: Köln
> Handelsregisternummer: HRB 36623
> Geschäftsführer:
> Dr. Oleg Balovnev
> Frank Heinen
> Dr. Wolfgang Reddig
> Roland Scheel
>
>