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
= '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@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
--
Antoine Berry
--
Antoine Berry
--
Antoine Berry
_______________________________________________
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
--
Antoine Berry
_______________________________________________
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
--
Antoine Berry
|