You need to supply your own css to override it.
Ramsey
On Sep 10, 2012, at 9:55 AM, Antoine Berry wrote:
> You were right, the buttons are actually hidden on the span tag! How could I
> set it?
>
> Le 10/09/12 17:56, Ramsey Gurley a écrit :
>>
>> On Sep 10, 2012, at 7:57 AM, Antoine Berry wrote:
>>
>>> Hi,
>>>
>>> Well my action methods match this signature... Here's my class :
>>>
>>> public class ListInvoiceController extends ERDBranchDelegate {
>>>
>>>
>>> private WOComponent sender;
>>>
>>> private WOComponent sender() {
>>> return sender;
>>> }
>>>
>>> private void setSender(WOComponent sender) {
>>> this.sender = sender;
>>> }j
>>
>> You don't need a sender ivar. You can delete these.
>>
>>>
>>> private D2WContext d2wContext() {
>>> return (D2WContext) sender().valueForKey("d2wContext");
>>> }
>>
>> ERDBranchDelegate does this for you. Just use d2wContext(sender)
>>
>>>
>>> private EOEnterpriseObject object() {
>>> return (EOEnterpriseObject)d2wContext().valueForKey("object");
>>> }
>>
>> object(sender)
>>
>>>
>>> public WOComponent copyButton (WOComponent sender){
>>> setSender(sender);
>>> Invoice invoice = (Invoice)object();
>>> EOEnterpriseObject invoiceCopy = invoice.copy(null);
>>> EditPageInterface epi =
>>> D2W.factory().editPageForNewObjectWithEntityNamed(Invoice.Keys.ENTITY_NAME,
>>> sender.session());
>>> epi.setObject(invoiceCopy);
>>> ((InvoiceWizardPage) epi).isCopy = true;
>>> return (WOComponent) epi;
>>> }
>>>
>>> public WOComponent pdfButton(WOComponent sender){
>>> setSender(sender);
>>> Invoice invoice = (Invoice) object();
>>> PDFInvoice pdfPage = (PDFInvoice)
>>> WOApplication.application().pageWithName(PDFInvoice.class.getName(),
>>> (WOContext) sender.context().clone());
>>> pdfPage.setInvoice(invoice);
>>>
>>> return pdfPage;
>>> }
>>> }
>>>
>>> my rules :
>>> 80 : (pageConfiguration like 'List*Invoice' and session.isSubjectAdmin =
>>> '1') => actions = {"left" = ("controllerAction"); "right" =
>>> ("inspectAction"); } [com.webobjects.directtoweb.Assignment]
>>> 100 : propertyKey = 'controllerAction' => componentName =
>>> "ERDControllerButton" [com.webobjects.directtoweb.Assignment]
>>> 105 : pageConfiguration like 'List*Invoice' => pageController =
>>> "ListInvoiceController" [er.directtoweb.ERDDelayedObjectCreationAssignment]
>>
>> Noted your followup message. Yes, this last rule needs the fully class name
>> with package.
>>
>>>
>>> And when I go to a list page which have this controller, I've noticed that
>>> the rules are fired . I must have missed something but I don't know
>>> where... Do you maybe have an exemple in which I could search?
>>>
>>> Thanks a lot!
>>
>> The method signatures look right. You're using ERModern aren't you? I think
>> ERModern hides the ERDController button with CSS. Check your page source to
>> see if it's really there.
>>
>> Ramsey
>>
>>>
>>>
>>> Le 07/09/12 20:37, Ramsey Gurley a écrit :
>>>> You probably don't need a rule. The branch delegate will supply the
>>>> default branch choices. You just have to make sure your action methods
>>>> match the signature
>>>>
>>>> public WOComponent myButton(WOComponent sender)
>>>>
>>>> Ramsey
>>>>
>>>> On Sep 7, 2012, at 7:31 AM, Antoine Berry wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> Actually I wrote my rules again and now there's no exceptions anymore. I
>>>>> don't know why that didn't work before, I must have put something
>>>>> wrong... But now that the rules are fired, the buttons which I would want
>>>>> to add in my list aren't display. What are the rules to display the
>>>>> custom buttons? is it the "branchChoices" rule?
>>>>>
>>>>> All my rules about this pageController :
>>>>>
>>>>> 80 : ((pageConfiguration like 'List*Invoice' or pageConfiguration like
>>>>> 'ListCustomer' or pageConfiguration like 'ListBankAccount' or
>>>>> pageConfiguration like 'ListCompany') and
>>>>> session.isSubjectAdmin = '1') => actions = {"left" = ("inspectAction",
>>>>> "deleteAction"); "right" = ("controllerAction"); }
>>>>> [com.webobjects.directtoweb.Assignment]
>>>>>
>>>>> 100 : propertyKey = 'controllerAction' => componentName =
>>>>> "ERDControllerButton" [com.webobjects.directtoweb.Assignment]
>>>>>
>>>>> 105 : entity.name = 'Invoice' => pageController =
>>>>> "fr.sophiacom.application.ui.delegates.ListInvoiceController"
>>>>> [er.directtoweb.ERDDelayedObjectCreationAssignment]
>>>>>
>>>>>
>>>>> Le 06/09/12 19:14, Ramsey Gurley a écrit :
>>>>>>
>>>>>> On Sep 6, 2012, at 2:22 AM, Antoine Berry wrote:
>>>>>>
>>>>>>> Hello Ramsey,
>>>>>>>
>>>>>>> Thank you about the quick answer. I understood why you told me not to
>>>>>>> use the nextPageDelegate. I tried a couple of things with it, and you
>>>>>>> were right, embedded component are already perfectly managed. So I
>>>>>>> followed your advice and tried to solve my problem with a
>>>>>>> pageController, which seems way easier (and smarter).
>>>>>>> I found an old email on the web (by Anjo Krank :
>>>>>>> http://www.digipedia.pl/usenet/thread/17625/14191/) which explain how
>>>>>>> to add a custom button on a list. The rule where I set the
>>>>>>> pageController is fired, but my actions rule throws an exception :
>>>>>>>
>>>>>>> Reason: <fr.sophiacom.sophiacture.business.Invoice 0x36cebdbf>
>>>>>>> valueForKey(): lookup of unknown key: 'controllerAction'. This class
>>>>>>> does not have an instance variable of the name controllerAction or
>>>>>>> _controllerAction, nor a method of the name controllerAction,
>>>>>>> _controllerAction, getControllerAction, or _getControllerAction
>>>>>>
>>>>>> What does the stack trace look like?
>>>>>>
>>>>>>>
>>>>>>> I kind of understand why this exception occurred but I can't find the
>>>>>>> solution. The email is quite old now so I thought that maybe something
>>>>>>> has changed since?
>>>>>>>
>>>>>>> my rules for the controller :
>>>>>>>
>>>>>>> 80 : ((pageConfiguration like 'List*Invoice' or pageConfiguration like
>>>>>>> 'ListCustomer' or pageConfiguration like 'ListBankAccount' or
>>>>>>> pageConfiguration like 'ListCompany') and session.isSubjectAdmin = '1')
>>>>>>> => actions = {"left" = ("inspectAction", "controllerAction"); "right" =
>>>>>>> ("deleteAction"); } [com.webobjects.directtoweb.Assignment]
>>>>>>>
>>>>>>> 105 : entity.name = 'Invoice' => pageController =
>>>>>>> "fr.sophiacom.application.ui.delegates.ListInvoiceController"
>>>>>>> [er.directtoweb.ERDDelayedObjectCreationAssignment]
>>>>>>>
>>>>>>> 100 : propertyKey = 'controllerAction' => componentName =
>>>>>>> "ERDControllerButton"
>>>>>>> [com.webobjects.directtoweb.Assignment]
>>>>>>>
>>>>>>>
>>>>>>> PS : for a list I set the actions with "left = (...)" and "right =
>>>>>>> (...)", but what about an inspect page, or an edit page? I tried a
>>>>>>> couple of things like "bottom = (...)" for exemple but it doesn't seem
>>>>>>> to work... Do you know which keyword I have to use?
>>>>>>>
>>>>>>> Le 04/09/12 19:12, Ramsey Gurley a écrit :
>>>>>>>> Hi Antoine,
>>>>>>>>
>>>>>>>> You almost had it. Use the entire class path and use the
>>>>>>>> ERDDelayedObjectCreationAssignment instead of Assignment. That will
>>>>>>>> generate the object using the default constructor.
>>>>>>>>
>>>>>>>> Be aware though... if you are working with embedded D2W pages with a
>>>>>>>> bound action binding, you can't set the nextPageDelegate because it is
>>>>>>>> already set. In most cases, I don't use the nextPageDelegate. I use
>>>>>>>> the pageController instead.
>>>>>>>>
>>>>>>>> Ramsey
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sep 4, 2012, at 9:54 AM, Antoine Berry wrote:
>>>>>>>>
>>>>>>>>> Hello everybody,
>>>>>>>>>
>>>>>>>>> I'm working on a D2W application, and I'm trying to override most of
>>>>>>>>> the nextPage default behavior. I've created a delegate which reorient
>>>>>>>>> the user on an inspect page of his object after its creation (for
>>>>>>>>> exemple), and first i've set it in the code (through the
>>>>>>>>> navigationController), and it worked quite well.
>>>>>>>>> But I would want to do it directly in the rules, cause I don't have
>>>>>>>>> direct access on every pages, like the edit pages for exemple. So I
>>>>>>>>> tried to add a rule like "100 : pageConfiguration like
>>>>>>>>> 'CreateMyObject' => nextPageDelegate <=
>>>>>>>>> InspectAfterCreationDelegate". But there is a ClassCastException :
>>>>>>>>> "cannot cast from java.lang.String to
>>>>>>>>> com.webobjects.directtoweb.NextPageDelegate". And it's the same
>>>>>>>>> exception when I put the complete path of my class...
>>>>>>>>> I've tried different things, but I can't find a solution, and I don't
>>>>>>>>> know where to search. I'm new on the mailing list so I'm sorry if
>>>>>>>>> this subject has been discussed before (maybe somebody have an
>>>>>>>>> archive about a similar discussion).
>>>>>>>>>
>>>>>>>>> Antoine
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>>> Webobjects-dev mailing list ([email protected])
>>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com
>>>>>>>>>
>>>>>>>>> This email sent to [email protected]
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Antoine Berry
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Antoine Berry
>>>>
>>>
>>>
>>> --
>>> Antoine Berry
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/ramseygurley%40gmail.com
>>>
>>> This email sent to [email protected]
>>
>
>
> --
> Antoine Berry
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list ([email protected])
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com
>
> This email sent to [email protected]
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]