You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/01/06 12:28:47 UTC
svn commit: r124363 - /cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java
Author: cziegeler
Date: Thu Jan 6 03:28:45 2005
New Revision: 124363
URL: http://svn.apache.org/viewcvs?view=rev&rev=124363
Log:
Support for self as target
Modified:
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java
Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java?view=diff&rev=124363&p1=cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java&r1=124362&p2=cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java&r2=124363
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java Thu Jan 6 03:28:45 2005
@@ -105,6 +105,9 @@
/** The prefix */
protected String prefix;
+ /** Handle target self as no target? */
+ protected boolean ignoreTargetSelf;
+
/**
* @see AbstractTransformer#setup(SourceResolver, Map, String, Parameters)
*/
@@ -113,6 +116,8 @@
String src,
Parameters par)
throws ProcessingException, SAXException, IOException {
+ this.ignoreTargetSelf = par.getParameterAsBoolean("ignore-target-self", false);
+
this.copletInstanceData =
ProxyTransformer.getInstanceData(
this.manager,
@@ -165,7 +170,7 @@
*/
public void startElement(String uri, String name, String raw,
Attributes attributes)
- throws SAXException {
+ throws SAXException {
if ("form".equalsIgnoreCase(name)) {
handleTag(
@@ -183,14 +188,14 @@
} else if ("link".equalsIgnoreCase(name)) {
handleTag("href", uri, name, raw, attributes, false, false);
} else if ("a".equalsIgnoreCase(name)) {
- handleTag(
- "href",
- uri,
- name,
- raw,
- attributes,
- true,
- (attributes.getIndex("target") > -1));
+ boolean direct;
+ final String v = attributes.getValue("target");
+ if ( v == null || (this.ignoreTargetSelf && v.equals("self")) ) {
+ direct = false;
+ } else {
+ direct = true;
+ }
+ handleTag("href", uri, name, raw, attributes, true, direct);
} else if ("menu-item".equalsIgnoreCase(name)) {
handleTag("href", uri, name, raw, attributes, true, false);
} else if ("input".equalsIgnoreCase(name)) {
@@ -208,7 +213,7 @@
* @see org.xml.sax.ContentHandler#endElement(String, String, String)
*/
public void endElement(String uri, String name, String raw)
- throws SAXException {
+ throws SAXException {
String elementName = null;
if (!elementStack.empty()) {
@@ -277,7 +282,14 @@
|| remoteURI.startsWith("mailto:")) {
super.startElement(uri, elementName, raw, attributes);
} else {
- if (attributes.getIndex("target") > -1 || direct) {
+ boolean evalTarget;
+ final String v = attributes.getValue("target");
+ if ( v == null || (this.ignoreTargetSelf && v.equals("self")) ) {
+ evalTarget = false;
+ } else {
+ evalTarget = true;
+ }
+ if (evalTarget || direct) {
try {
remoteURI =
ProxyTransformer.resolveURI(remoteURI, documentBase);