Changeset 6135

Show
Ignore:
Timestamp:
02/03/12 17:20:55 (4 months ago)
Author:
mtld
Message:

use target theme list for runtime includes too

Location:
trunk/pustefix-core/src/main/java/de/schlund/pfixxml
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • trunk/pustefix-core/src/main/java/de/schlund/pfixxml/IncludeDocumentExtension.java

    r6114 r6135  
    2828 
    2929import javax.xml.transform.TransformerException; 
     30import javax.xml.transform.URIResolver; 
    3031 
    3132import org.apache.log4j.Logger; 
     
    4041import de.schlund.pfixxml.resources.ResourceProviderRegistry; 
    4142import de.schlund.pfixxml.resources.ResourceUtil; 
     43import de.schlund.pfixxml.targets.Target; 
    4244import de.schlund.pfixxml.targets.TargetGenerator; 
    4345import de.schlund.pfixxml.targets.VirtualTarget; 
     
    4648import de.schlund.pfixxml.util.XPath; 
    4749import de.schlund.pfixxml.util.Xml; 
     50import de.schlund.pfixxml.util.Xslt.ResourceResolver; 
    4851import de.schlund.pfixxml.util.XsltContext; 
    4952 
     
    139142 
    140143            String[] themes = targetgen.getGlobalThemes().getThemesArr(); 
    141             if (!targetkey.equals(NOTARGET)) { 
     144            if(targetkey.equals(NOTARGET)) { 
     145                Target parentTarget = getParentTarget(context); 
     146                if(parentTarget != null && parentTarget.getThemes() != null && !parentTarget.getThemes().isEmpty()) { 
     147                    themes = parentTarget.getThemes().getThemesArr(); 
     148                } 
     149            } else { 
    142150                themes = target.getThemes().getThemesArr(); 
    143151            } 
     
    356364 
    357365            String[] themes = targetgen.getGlobalThemes().getThemesArr(); 
    358             if (!targetkey.equals(NOTARGET)) { 
     366            if(targetkey.equals(NOTARGET)) { 
     367                Target parentTarget = getParentTarget(context); 
     368                if(parentTarget != null && parentTarget.getThemes() != null && !parentTarget.getThemes().isEmpty()) { 
     369                    themes = parentTarget.getThemes().getThemesArr(); 
     370                } 
     371            } else { 
    359372                themes = target.getThemes().getThemesArr(); 
    360373            } 
     
    450463        return ""; 
    451464    } 
     465     
     466    private static Target getParentTarget(XsltContext context) { 
     467        URIResolver resolver = context.getURIResolver(); 
     468        if(resolver != null && resolver instanceof ResourceResolver) { 
     469            ResourceResolver resResolver = (ResourceResolver)resolver; 
     470            return resResolver.getParentTarget(); 
     471        } 
     472        return null; 
     473    } 
    452474 
    453475    public static boolean isIncludeDocument(XsltContext context) { 
  • trunk/pustefix-core/src/main/java/de/schlund/pfixxml/targets/Themes.java

    r4517 r6135  
    3333 */ 
    3434public class Themes { 
     35     
    3536    ArrayList<String> themes; 
    3637    String id; 
     
    8283        return (String[]) themes.toArray(new String[]{}); 
    8384    } 
     85     
     86    public boolean isEmpty() { 
     87        return themes.isEmpty(); 
     88    } 
    8489 
    8590    @Override 
  • trunk/pustefix-core/src/main/java/de/schlund/pfixxml/util/Xslt.java

    r5815 r6135  
    252252     
    253253     
    254     static class ResourceResolver implements URIResolver { 
     254    public static class ResourceResolver implements URIResolver { 
    255255         
    256256        private TargetImpl parent; 
     
    264264        } 
    265265 
     266        public Target getParentTarget() { 
     267            return parent; 
     268        } 
     269         
    266270        /** 
    267271         * Resolve file url relative to root. Before searching the file system, check 
  • trunk/pustefix-core/src/main/java/de/schlund/pfixxml/util/XsltContext.java

    r4517 r6135  
    1919package de.schlund.pfixxml.util; 
    2020 
     21import javax.xml.transform.URIResolver; 
     22 
    2123/** 
    2224 * @author mleidig@schlund.de 
     
    2729    public String getDocumentElementName(); 
    2830    public XsltVersion getXsltVersion(); 
    29      
     31    public URIResolver getURIResolver(); 
    3032} 
  • trunk/pustefix-core/src/main/java/de/schlund/pfixxml/util/xsltimpl/XsltContextSaxon1.java

    r4517 r6135  
    1818 
    1919package de.schlund.pfixxml.util.xsltimpl; 
     20 
     21import javax.xml.transform.URIResolver; 
    2022 
    2123import org.w3c.dom.Document; 
     
    5254    } 
    5355     
     56    public URIResolver getURIResolver() { 
     57        return context.getController().getURIResolver(); 
     58    } 
     59         
    5460} 
  • trunk/pustefix-core/src/main/java/de/schlund/pfixxml/util/xsltimpl/XsltContextSaxon2.java

    r4517 r6135  
    1818 
    1919package de.schlund.pfixxml.util.xsltimpl; 
     20 
     21import javax.xml.transform.URIResolver; 
    2022 
    2123import net.sf.saxon.expr.XPathContext; 
     
    4951    } 
    5052     
     53    public URIResolver getURIResolver() { 
     54        return context.getController().getURIResolver(); 
     55    } 
     56     
    5157}