Okay I'm gonna work on that!
Thank you a lot for your help.
Le 10/09/12 19:08, Ramsey Gurley a écrit :
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 <http://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 <http://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 [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]
<mailto:[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]
<mailto:[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
_______________________________________________
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]