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
> 
> 

Reply via email to