alright, again. version 2
I reviewd the documentation on annotations and simplified the .jwc
I still want to know how to add a component to a library without a jwc file?
Fernando Padilla wrote:
Alright, I had reason to stay up anyhow.
Attached is a version of a NameLink component that takes a name
parameter. Tapestry 4. I've tested this component only on
linux/firefox at home, but the same technique has been working on our
site for the last few months; I'll test this component out on a few
other browsers tomorrow. Anyone can feel free to absorb this into
Tapestry.
comments?
Questions: I'm trying to learn how to get rid of the jwc. Anybody know
the last few things I need to do? ReservedParameters through
annotations, and how to add a component to a component library without
refering to a jwc.
Fernando Padilla wrote:
I couldn't read through the threads ( didn't seem like the right
solution anyhow ). This is what our html developer came up with, a
nice javascript hack: (right off of our site) He simply created a
javascript function that is called that does the named-anchor
dereference, instead of letting the anchor-link do it (which takes
into account base-href).
<!-- don't reload the page when linking to anchors... -->
<script type="text/javascript">
function anchorMessages(){
location.hash = "messages";
}
</script>
<a href="javascript:anchorMessages()">blah</a>
Wow I just realized that I could easily make a component to wrap this.
I'll see about that in work tomorrow, or if someone else feels like
it, should be pretty darn easy.
Daniel Lydiard wrote:
This will helpful too
http://www.tapestryforums.com/anchor-tags-vt2957.html?highlight=shell+anchor+base+tag
----- Original Message ----- From: "Jason Suplizio" <[EMAIL PROTECTED]>
To: "Tapestry users" <tapestry-user@jakarta.apache.org>
Sent: Thursday, February 09, 2006 8:37 PM
Subject: Re: anchors with @Shell
http://www.nabble.com/Specifying-my-own-tapestry.url.BaseTagWriter-t1049395.html
On 2/9/06, Chris Chiappone <[EMAIL PROTECTED]> wrote:
There is a lot of info on this topic. Just do a search for "anchor
tags" in the tapestryforum.
On 2/9/06, Daniel Lydiard <[EMAIL PROTECTED]> wrote:
> I'm using the @Shell which creates a base tag with the application
base
url.
>
> if i do a
>
> [a name="top"][/a]
>
> and a link [a href="#top"]Back to top[/a]
>
> the application won't scroll to the top of the page because of the
base
tag
> produced by @Shell, it just goes back to the home page. Is there a
quick
> away around this?
>
> Thanks.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail:
[EMAIL PROTECTED]
>
>
--
~chris
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE component-specification
PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
<component-specification class="com.protrade.basesite.common.NameLink" allow-body="yes"
allow-informal-parameters="yes">
<reserved-parameter name="href"/>
<inject property="script" type="script" object="NameLink.script"/>
</component-specification>
------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script PUBLIC
"-//Apache Software Foundation//Tapestry Script Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd">
<script>
<body>
<unique>
function gotoNamedAnchor( name ) {
location.hash = name;
}
</unique>
</body>
</script>
------------------------------------------------------------------------
package com.protrade.basesite.common;
import java.util.HashMap;
import java.util.Map;
import org.apache.tapestry.AbstractComponent;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.IScript;
import org.apache.tapestry.PageRenderSupport;
import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
@ComponentClass( allowBody=true, allowInformalParameters=true )
public abstract class NameLink extends AbstractComponent {
@Parameter( name="name", required=true )
public abstract String getName();
public abstract IScript getScript();
protected void renderComponent( IMarkupWriter writer, IRequestCycle
cycle ) {
if ( !cycle.isRewinding() ) {
// add javascript
PageRenderSupport pageRenderSupport =
TapestryUtils.getPageRenderSupport( cycle, this );
Map symbols = new HashMap();
getScript().execute( cycle, pageRenderSupport, symbols
);
}
writer.begin( "a" );
writer.attribute( "href",
"javascript:gotoNamedAnchor(\""+getName()+"\")" );
renderInformalParameters( writer, cycle );
renderBody( writer, cycle );
writer.end();
}
}
------------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
package com.protrade.basesite.common;
import java.util.HashMap;
import java.util.Map;
import org.apache.tapestry.AbstractComponent;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.IScript;
import org.apache.tapestry.PageRenderSupport;
import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.InjectScript;
import org.apache.tapestry.annotations.Parameter;
@ComponentClass( allowBody=true, allowInformalParameters=true, reservedParameters="href" )
public abstract class NameLink extends AbstractComponent {
@Parameter( name="name", required=true )
public abstract String getName();
@InjectScript( "NameLink.script" )
public abstract IScript getScript();
protected void renderComponent( IMarkupWriter writer, IRequestCycle cycle ) {
if ( !cycle.isRewinding() ) {
// add javascript
PageRenderSupport pageRenderSupport = TapestryUtils.getPageRenderSupport( cycle, this );
Map symbols = new HashMap();
getScript().execute( cycle, pageRenderSupport, symbols );
}
writer.begin( "a" );
writer.attribute( "href", "javascript:gotoNamedAnchor(\""+getName()+"\")" );
renderInformalParameters( writer, cycle );
renderBody( writer, cycle );
writer.end();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE component-specification
PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
<component-specification class="com.protrade.basesite.common.NameLink" allow-body="yes" allow-informal-parameters="yes">
</component-specification>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script PUBLIC
"-//Apache Software Foundation//Tapestry Script Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd">
<script>
<body>
<unique>
function gotoNamedAnchor( name ) {
location.hash = name;
}
</unique>
</body>
</script>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]