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: Ramsey Gurley <email@hidden>
- Date: Thu, 16 Dec 2010 16:24:16 -0500
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.
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
_______________________________________________
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