Re: Struggling with D2W Custom Components, how to get a Custom Component Page?
Re: Struggling with D2W Custom Components, how to get a Custom Component Page?
- Subject: Re: Struggling with D2W Custom Components, how to get a Custom Component Page?
- From: Johan Henselmans <email@hidden>
- Date: Thu, 16 Dec 2010 23:00:10 +0100
On 16 dec 2010, at 22:24, Ramsey Gurley wrote:
> Hi Johan!
>
> It looks like you really don't need the D2WCustomComponent bit. You can simply create a dummy property key and use that. For instance, you my have displayPropertyKeys like:
>
> 100: qualifier => displayPropertyKeys = (attr1, attr2, myDummyKey, rel1)
>
> or some such. Then for your custom component, just use
>
> 100: propertyKey = 'myDummyKey' => componentName = "MyCustomJavascriptThing"
>
> That should put your component on the page. If the component is synchronizing, you'll need to implement getter/setter methods for whatever the repetition passes to your custom component, but beyond that, you're done. If you want to base your calculations on the entity, you should be able to get that directly from the d2wContext that the repetition passes in to your custom component.
>
The thing is, these are about 20 properties that have to be calculated per entity and then displayed. I thought it would be handier to use something I already had, and is known not to have errors, instead of creating extra calculation methods with the risk of extra errors, as every extra line of code creatse more errros.
I suppose I should be looking at your WOWODC2010 presentations, but unfortunately these are still not available...
> Ramsey
>
> On Dec 16, 2010, at 3:04 PM, Johan Henselmans wrote:
>
>>
>> Here's the idea:
>>
>> I have a custom component page from somewhere else with javascript that does a whole bunch of calculations based on values of an EO.
>>
>> No problem, I thought, according to the D2W Rules References I follow rule 7:
>>
>> (http://wiki.objectstyle.org/confluence/display/WO/D2W+Rules+Reference+-+Cookbook+-+FAQ)
>>
>> 7. How do I easily use my own custom component in a Direct to Web page?
>>
>> Step 1:
>>
>> Add the following rules to your rule file:
>>
>> 100: pageConfiguration = "ListTheEntity" and propertyKey = "theProperty" => componentName = "D2WCustomComponent"
>> 100: pageConfiguration = "ListTheEntity" and propertyKey = "theProperty" => customComponentName = "MyThePropertyComponent"
>>
>>
>> Step 2:
>>
>> Create a component in your project named 'MyThePropertyComponent' and give it an 'object' and 'key' binding. The object will receive the current object, and the key will receive the current propertyKey (as a string) from DirectToWeb. Do with them what you will.
>>
>> public
>> EOEnterpriseObject object() {
>>
>> return (EOEnterpriseObject) valueForBinding("object"
>> );
>> }
>>
>>
>> public String
>> key() {
>>
>> return (String) valueForBinding("key"
>> );
>> }
>>
>>
>> So I add these methods, but removed this propertyKey thingy because I want my the entity to be used as the object.
>>
>> Im my situatiion:
>>
>> 100: pageConfiguration = "InspectTheEntity" => componentName = "D2WCustomComponent"
>> 100: pageConfiguration = "InspectTheEntity" => customComponentName = "MyNiceJavascriptAndAllPage"
>>
>> first I had to add some extra methods to this page, because WebObjects complained it could not set object and key values, so I added:
>>
>> public void setObject(EOEnterpriseObject anObject) {
>> currentObject = anObject;
>> }
>>
>> public void setKey(String aKey) {
>> currentkey = aKey;
>> }
>>
>> But then it displayed the page.
>>
>> 20 times.
>>
>> I get a display of my custom page for all the components in the page. So component 1 displays a complete empty page, component 2 etc. None of my EOEnterprise values are displayed from the EOObject that I selected.
>>
>> I must be missing something. I understood that the object would pass through the current select enterprise object, and I could use that to fill in the values in my custom page. Apparently, that is not the case. I tried to find some customcomponent in the d2wmodels of BugTracker or ERMoviesDemo, but did not find anything over there.
>>
>> Can someone enlighten me?
>>
>> Johan Henselmans
>> email@hidden
>>
>>
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>>
>
Johan Henselmans
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden