wicked :) Thanks alot, saved my day!
On Jun 12, 2009, at 17:33 , Jeremy Thomerson wrote:
Yes - don't use a simple attribute modifier. Use an
"AttributeModifier" that takes a model. Return the URL in the model.
pseudo code:
container.add(new AttributeModifier("value", true, new
AbstractReadOnlyModel<CharSequence>()) {
public CharSequence getObject() {
return getRequestCycle().urlFor(dlink, ILinkListener.INTERFACE));
}
});
You're trying to get the URL before the page is constructed / added to
page map - as the error mentions. This delays the URL retrieval until
render time.
--
Jeremy Thomerson
http://www.wickettraining.com
On Fri, Jun 12, 2009 at 4:35 AM, Bas Vroling<bvrol...@cmbi.ru.nl>
wrote:
Thanks, I looked at the source and did the following:
public JalViewPanel(String id, DefaultMutableTreeNode treeNode) {
super(id);
activeNode = treeNode;
dlink = new DownloadLink("downloadMsf",
currentJalviewAlignment) {
@Override
public void onClick() {
String alignment = (String)
currentJalviewAlignment.getObject();
byte[] bytes = alignment.getBytes();
getRequestCycle().setRequestTarget(
new
AlignmentRequestTarget(bytes, "alignment.fasta"));
}
};
add(dlink);
WebMarkupContainer container = new
WebMarkupContainer("filename");
SimpleAttributeModifier modifier = new
SimpleAttributeModifier("value",
getRequestCycle().urlFor(dlink,
ILinkListener.INTERFACE));
container.add(modifier);
add(container);
}
the " getRequestCycle().urlFor(dlink, ILinkListener.INTERFACE) "
part works,
when I put this is a label it renders the correct url which if i
paste it in
the address bar goes to download the file.
However, in the way it is now wicket throws an IllegalStateException:
java.lang.IllegalStateException: No Page found for component
[MarkupContainer [Component id = downloadMsf]]
Any ideas?
On 11 Jun, at 23:23, Jeremy Thomerson wrote:
Look at the source - it has getURL which is a protected method. If
you really can't figure out how to use urlFor(...) from the source -
then override getURL as such:
public CharSequence getURL() {
return super.getURL();
}
Make it public and use it to get the URL. You can ascertain all of
this from the source.
--
Jeremy Thomerson
http://www.wickettraining.com
On Thu, Jun 11, 2009 at 4:18 AM, Bas Vroling<bvrol...@cmbi.ru.nl>
wrote:
So does anyone have an idea how to fix this?
On 10 Jun, at 12:42, Bas Vroling wrote:
Thanks for the extensive feedback, but urlFor() does not accept
that as
input...
I tried being smart and did this (please correct me if this is
nonsense):
add(new WebMarkupContainer("filename").add(new
SimpleAttributeModifier(
"value",
dlink.urlFor(ILinkListener.INTERFACE))));
when I access the pages it gives the following error:
java.lang.IllegalStateException: No Page found for component
[MarkupContainer [Component id = downloadMsf]]
at org.apache.wicket.Component.getPage(Component.java:1755)
although the component is added to the panel. Here's the
complete code:
public JalViewPanel(String id, DefaultMutableTreeNode treeNode) {
super(id);
activeNode = treeNode;
DownloadLink dlink = new DownloadLink("downloadMsf",
currentJalviewAlignment) {
@Override
public void onClick() {
String alignment = (String)
currentJalviewAlignment.getObject();
byte[] bytes = alignment.getBytes();
getRequestCycle().setRequestTarget(new
AlignmentRequestTarget(bytes, "alignment.fasta"));
}
};
add(dlink);
add(new WebMarkupContainer("filename").add(new
SimpleAttributeModifier(
"value",
dlink.urlFor(ILinkListener.INTERFACE))));
}
On 10 Jun, at 12:10, Martijn Dashorst wrote:
You could always look at the source for how Link does it:
getURL()
calls:
/**
* Gets the url to use for this link.
*
* @return The URL that this link links to
*/
protected CharSequence getURL()
{
return urlFor(ILinkListener.INTERFACE);
}
which calls:
Component#urlFor(this, ILinkListener.INTERFACE)
so you should call:
urlFor(dlink, ILinkListener.INTERFACE)
Martijn
On Wed, Jun 10, 2009 at 11:59 AM, Bas
Vroling<bvrol...@cmbi.ru.nl>
wrote:
I'm feeling not really smart here, but that doesn't work.
urlFor needs
something like a irequesttarget. I tried something like this:
add(new WebMarkupContainer("filename").add(new
SimpleAttributeModifier(
"value",
urlFor(dlink.getRequestCycle().getRequestTarget()))));
but that gives me the url of the page, not the downloadlink.
On 10 Jun, at 11:46, Martijn Dashorst wrote:
urlFor(dlink)?
Martijn
On Wed, Jun 10, 2009 at 11:27 AM, Bas Vroling<bvrol...@cmbi.ru.nl
>
wrote:
Ok, that is starting to work, thanks! Now I only need to get
the url
in
the
simpleAttributeModifier. This doesn't accept models but
needs a
CharSequence, which does seem logical but how do I get the
actual
URL
of
the
dlink model in there?
On 10 Jun, at 10:48, Martijn Dashorst wrote:
<param wicket:id="filename" />
add(new WebMarkupContainer("filename").add(new
SimpleAttributeModifier("value", ...)));
On Wed, Jun 10, 2009 at 9:57 AM, Bas Vroling<bvrol...@cmbi.ru.nl
>
wrote:
If I set setRenderBodyOnly(true) it doesn't work either,
and then
it
shouldn't complain anymore. (wicket is the one
complaining, not
the
applet
btw)
On 10 Jun, at 09:53, Dorothée Giernoth wrote:
b/c you can't put a tag into a tag ... as it says: it is
a value
and
it
needs a value, not a tag ... xml doesn't work that way
-----Ursprüngliche Nachricht-----
Von: Bas Vroling [mailto:bvrol...@cmbi.ru.nl]
Gesendet: Mittwoch, 10. Juni 2009 09:41
An: users@wicket.apache.org
Betreff: inserting urls in script variables
Hi guys,
I'm trying to insert a download url in a piece of
template code.
The
template part looks like this:
<wicket:panel>
<span wicket:id="familyName"></span>
<applet code="jalview.bin.JalviewLite" width="100%"
height="750"
archive="jalviewApplet.jar">
<param name="file" value="{{URL HERE}}">
<param name="embedded" value="true"/>
<param name="showFullId" value="false"/>
</applet>
</wicket:panel>
The applet show a multiple sequence alignment that I
would like
to
be
retrieved from wicket.
In my java code I have created a link that downloads the
file.
This
works fine if I show the link on a page and click on it:
DownloadLink dlink = new DownloadLink("downloadMsf",
currentJalviewAlignment) {
@Override
public void onClick() {
String alignment = (String)
currentJalviewAlignment.getObject();
byte[] bytes = alignment.getBytes();
getRequestCycle().setRequestTarget(new
AlignmentRequestTarget(bytes, "alignment" + ".fasta"));
}
};
When I try to do the obvious, replace the {{URL_HERE}}
part with
<span
wicket:id="downloadMsf"></span> it complains about non-
valid XML
and
such.
Any ideas?
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-
h...@wicket.apache.org
--
Become a Wicket expert, learn from the best:
http://wicketinaction.com
Apache Wicket 1.3.5 is released
Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
--
Become a Wicket expert, learn from the best:
http://wicketinaction.com
Apache Wicket 1.3.5 is released
Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
--
Become a Wicket expert, learn from the best: http://wicketinaction.com
Apache Wicket 1.3.5 is released
Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org