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: Jesse Tayler <email@hidden>
- Date: Thu, 16 Dec 2010 15:29:24 -0500
keep forgetting the list on cc' --
On Dec 16, 2010, at 3:22 PM, Jesse Tayler wrote:
> if you want to substitute a property level component use componentName, but bound the rule around the specific entity and property scope you're looking to target.
>
> it looks like maybe your rule for substituting your component actually scopes anything in that entity rather than the propertyKey = "theProperty" in the example -?
>
> this rule that says (and propertyKey = "theProperty") -- this level of scope might be needed in your rule eh?
>
>
> 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
>>
>
_______________________________________________
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