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:56 UTC
svn commit: r124364 - /cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java
Author: cziegeler
Date: Thu Jan 6 03:28:54 2005
New Revision: 124364
URL: http://svn.apache.org/viewcvs?view=rev&rev=124364
Log:
Support for self as target
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java
Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java?view=diff&rev=124364&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java&r1=124363&p2=cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java&r2=124364
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/LinkTransformer.java Thu Jan 6 03:28:54 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,
@@ -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)) {
@@ -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);