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: David Holt <email@hidden>
- Date: Thu, 16 Dec 2010 13:49:47 -0800
On 2010-12-16, at 1:43 PM, Johan Henselmans wrote:
>
> On 16 dec 2010, at 22:20, David LeBer wrote:
>
>> Johan,
>>
>> You are seeing the component repeated 20 times because those instructions are for creating a 'property level component'.
>>
>> Hense the propertyKey being important. Without it, the component is used for every property on your entity.
>>
>> It looks like you want to create a page level component. In that case look at some of the existing page level components in wonder.
>>
>
> Like ERModInspectPage, for instance, if I want a sort of inspect page?
Yup. And don't forget to add a rule such as:
0 : pageConfiguration = 'EditListActivity' => templateNameForEditableList = "DHMODEditableListPage" [com.webobjects.directtoweb.Assignment]
>
> I was looking at the pages in BugTracker or ERMovieDemo, but that does not seem to give me an idea how to create such a page.
>
> I looked at an old component that I got out of the 'freezing' of components that used to be available in 5.2/10.4 days, which starts with
>
> public class EditDigestedPasswordUser extends WOComponent implements EditPageInterface {
>
> but I am not sure if that still should be used in such a way.
>
> (I really miss the freezing of a template component that one could do in 5.2/OS X 10.4 D2W: take a component, freeze it, use it as a template to make some a custom component for that specific entity, and not having to fiddle with all the knobs)
>
> (On a related note, did anybody notice that Spotlight results are spottier and spottier? I searched for extend in the Wonder source tree, nearly nothing came up, while I know there is a ton of stuff over there that extends…)
>
>
>> On 2010-12-16, 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
>>
>> ;david
>>
>> --
>> David LeBer
>> Codeferous Software
>> 'co-def-er-ous' adj. Literally 'code-bearing'
>> site: http://codeferous.com
>> blog: http://davidleber.net
>> profile: http://www.linkedin.com/in/davidleber
>> twitter: http://twitter.com/rebeld
>> --
>> Toronto Area Cocoa / WebObjects developers group:
>> http://tacow.org
>>
>>
>>
>>
>
> 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