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);