git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1790795 13f79535-47bb-0310-9956-ffa450edef68pull/5/head
</property> | </property> | ||||
<property> | <property> | ||||
<name>visibility</name> | <name>visibility</name> | ||||
<inherited>false</inherited> | |||||
<datatype>ToBeImplemented</datatype> | |||||
<inherited>true</inherited> | |||||
<default>visible</default> | <default>visible</default> | ||||
<datatype>Enum</datatype> | |||||
<enumeration> | |||||
<value const="VISIBLE">visible</value> | |||||
<value const="HIDDEN">hidden</value> | |||||
<value const="COLLAPSE">collapse</value> | |||||
<value const="INHERIT">inherit</value> | |||||
</enumeration> | |||||
</property> | </property> | ||||
<property> | <property> | ||||
<name>z-index</name> | <name>z-index</name> |
import org.apache.fop.fonts.Font; | import org.apache.fop.fonts.Font; | ||||
import org.apache.fop.fonts.FontInfo; | import org.apache.fop.fonts.FontInfo; | ||||
import org.apache.fop.traits.BorderProps; | import org.apache.fop.traits.BorderProps; | ||||
import org.apache.fop.traits.Visibility; | |||||
import org.apache.fop.util.ColorUtil; | import org.apache.fop.util.ColorUtil; | ||||
import org.apache.fop.util.ContentHandlerFactory; | import org.apache.fop.util.ContentHandlerFactory; | ||||
import org.apache.fop.util.ContentHandlerFactoryRegistry; | import org.apache.fop.util.ContentHandlerFactoryRegistry; | ||||
if (attributes.getValue("top-offset") != null) { | if (attributes.getValue("top-offset") != null) { | ||||
block.setYOffset(XMLUtil.getAttributeAsInt(attributes, "top-offset", 0)); | block.setYOffset(XMLUtil.getAttributeAsInt(attributes, "top-offset", 0)); | ||||
} | } | ||||
if (attributes.getValue("visibility") != null) { | |||||
block.addTrait(Trait.VISIBILITY, Visibility.valueOf(attributes.getValue("visibility"))); | |||||
} | |||||
transferForeignObjects(attributes, block); | transferForeignObjects(attributes, block); | ||||
setAreaAttributes(attributes, block); | setAreaAttributes(attributes, block); | ||||
setTraits(attributes, block, SUBSET_COMMON); | setTraits(attributes, block, SUBSET_COMMON); |
import org.apache.fop.fonts.FontTriplet; | import org.apache.fop.fonts.FontTriplet; | ||||
import org.apache.fop.traits.BorderProps; | import org.apache.fop.traits.BorderProps; | ||||
import org.apache.fop.traits.Direction; | import org.apache.fop.traits.Direction; | ||||
import org.apache.fop.traits.Visibility; | |||||
import org.apache.fop.traits.WritingMode; | import org.apache.fop.traits.WritingMode; | ||||
import org.apache.fop.util.ColorUtil; | import org.apache.fop.util.ColorUtil; | ||||
/** For optional content groups. */ | /** For optional content groups. */ | ||||
public static final Integer LAYER = 43; | public static final Integer LAYER = 43; | ||||
/** Used to disable the rendering of a Block http://www.w3.org/TR/xsl/#rend-vis */ | |||||
public static final Integer VISIBILITY = 44; | |||||
/** Maximum value used by trait keys */ | /** Maximum value used by trait keys */ | ||||
public static final int MAX_TRAIT_KEY = 43; | |||||
public static final int MAX_TRAIT_KEY = 44; | |||||
private static final TraitInfo[] TRAIT_INFO = new TraitInfo[MAX_TRAIT_KEY + 1]; | private static final TraitInfo[] TRAIT_INFO = new TraitInfo[MAX_TRAIT_KEY + 1]; | ||||
put(SHIFT_DIRECTION, | put(SHIFT_DIRECTION, | ||||
new TraitInfo("shift-direction", Direction.class)); | new TraitInfo("shift-direction", Direction.class)); | ||||
put(LAYER, new TraitInfo("layer", String.class)); | put(LAYER, new TraitInfo("layer", String.class)); | ||||
put(VISIBILITY, new TraitInfo("visibility", Visibility.class)); | |||||
} | } | ||||
/** | /** |
private Numeric widows; | private Numeric widows; | ||||
private int wrapOption; | private int wrapOption; | ||||
private int disableColumnBalancing; | private int disableColumnBalancing; | ||||
private int visibility; | |||||
// Unused but valid items, commented out for performance: | // Unused but valid items, commented out for performance: | ||||
// private CommonAccessibility commonAccessibility; | // private CommonAccessibility commonAccessibility; | ||||
// private CommonAural commonAural; | // private CommonAural commonAural; | ||||
// private Length textDepth; | // private Length textDepth; | ||||
// private Length textAltitude; | // private Length textAltitude; | ||||
// private int visibility; | |||||
// End of FO trait values | // End of FO trait values | ||||
/** | /** | ||||
widows = pList.get(PR_WIDOWS).getNumeric(); | widows = pList.get(PR_WIDOWS).getNumeric(); | ||||
wrapOption = pList.get(PR_WRAP_OPTION).getEnum(); | wrapOption = pList.get(PR_WRAP_OPTION).getEnum(); | ||||
disableColumnBalancing = pList.get(PR_X_DISABLE_COLUMN_BALANCING).getEnum(); | disableColumnBalancing = pList.get(PR_X_DISABLE_COLUMN_BALANCING).getEnum(); | ||||
visibility = pList.get(PR_VISIBILITY).getEnum(); | |||||
} | } | ||||
/** {@inheritDoc} */ | /** {@inheritDoc} */ | ||||
return FO_BLOCK; | return FO_BLOCK; | ||||
} | } | ||||
public int getVisibility() { | |||||
return visibility; | |||||
} | |||||
} | } |
TraitSetter.addSpaceBeforeAfter(curBlockArea, layoutContext.getSpaceAdjust(), | TraitSetter.addSpaceBeforeAfter(curBlockArea, layoutContext.getSpaceAdjust(), | ||||
effSpaceBefore, effSpaceAfter); | effSpaceBefore, effSpaceAfter); | ||||
TraitSetter.setVisibility(curBlockArea, getBlockFO().getVisibility()); | |||||
flush(); | flush(); | ||||
curBlockArea = null; | curBlockArea = null; |
import org.apache.fop.fonts.Font; | import org.apache.fop.fonts.Font; | ||||
import org.apache.fop.traits.BorderProps; | import org.apache.fop.traits.BorderProps; | ||||
import org.apache.fop.traits.MinOptMax; | import org.apache.fop.traits.MinOptMax; | ||||
import org.apache.fop.traits.Visibility; | |||||
/** | /** | ||||
* This is a helper class used for setting common traits on areas. | * This is a helper class used for setting common traits on areas. | ||||
} | } | ||||
} | } | ||||
public static void setVisibility(Area area, int visibility) { | |||||
Visibility v; | |||||
switch (visibility) { | |||||
case Constants.EN_COLLAPSE: | |||||
v = Visibility.COLLAPSE; | |||||
break; | |||||
case Constants.EN_HIDDEN: | |||||
v = Visibility.HIDDEN; | |||||
break; | |||||
default: | |||||
v = Visibility.VISIBLE; | |||||
} | |||||
area.addTrait(Trait.VISIBILITY, v); | |||||
} | |||||
/** | /** | ||||
* Sets the structure tree element associated to the given area. | * Sets the structure tree element associated to the given area. | ||||
* | * |
import org.apache.fop.area.inline.WordArea; | import org.apache.fop.area.inline.WordArea; | ||||
import org.apache.fop.fo.Constants; | import org.apache.fop.fo.Constants; | ||||
import org.apache.fop.fonts.FontInfo; | import org.apache.fop.fonts.FontInfo; | ||||
import org.apache.fop.traits.Visibility; | |||||
/** | /** | ||||
* Abstract base class for all renderers. The Abstract renderer does all the | * Abstract base class for all renderers. The Abstract renderer does all the | ||||
handleBlockTraits(block); | handleBlockTraits(block); | ||||
if (children != null) { | |||||
if (children != null && block.getTrait(Trait.VISIBILITY) != Visibility.HIDDEN) | |||||
{ | |||||
renderBlocks(block, children); | renderBlocks(block, children); | ||||
} | } | ||||
/* | |||||
* Licensed to the Apache Software Foundation (ASF) under one or more | |||||
* contributor license agreements. See the NOTICE file distributed with | |||||
* this work for additional information regarding copyright ownership. | |||||
* The ASF licenses this file to You under the Apache License, Version 2.0 | |||||
* (the "License"); you may not use this file except in compliance with | |||||
* the License. You may obtain a copy of the License at | |||||
* | |||||
* http://www.apache.org/licenses/LICENSE-2.0 | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, software | |||||
* distributed under the License is distributed on an "AS IS" BASIS, | |||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
* See the License for the specific language governing permissions and | |||||
* limitations under the License. | |||||
*/ | |||||
package org.apache.fop.traits; | |||||
import java.io.ObjectStreamException; | |||||
import org.apache.fop.fo.Constants; | |||||
public final class Visibility extends TraitEnum { | |||||
private static final long serialVersionUID = 1L; | |||||
private static final String[] VISIBILITY_NAMES = new String[] | |||||
{"visible", "hidden", "collapse"}; | |||||
private static final int[] VISIBILITY_VALUES = new int[] | |||||
{Constants.EN_VISIBLE, Constants.EN_HIDDEN, Constants.EN_COLLAPSE}; | |||||
/** border-style: none */ | |||||
public static final Visibility VISIBLE = new Visibility(0); | |||||
/** border-style: hidden */ | |||||
public static final Visibility HIDDEN = new Visibility(1); | |||||
/** border-style: dotted */ | |||||
public static final Visibility COLLAPSE = new Visibility(2); | |||||
private static final Visibility[] VISIBILITIES = new Visibility[] { | |||||
VISIBLE, HIDDEN, COLLAPSE}; | |||||
private Visibility(int index) { | |||||
super(VISIBILITY_NAMES[index], VISIBILITY_VALUES[index]); | |||||
} | |||||
/** | |||||
* Returns the enumeration/singleton object based on its name. | |||||
* @param name the name of the enumeration value | |||||
* @return the enumeration object | |||||
*/ | |||||
public static Visibility valueOf(String name) { | |||||
for (Visibility v : VISIBILITIES) { | |||||
if (v.getName().equalsIgnoreCase(name)) { | |||||
return v; | |||||
} | |||||
} | |||||
throw new IllegalArgumentException("Illegal visibility value: " + name); | |||||
} | |||||
private Object readResolve() throws ObjectStreamException { | |||||
return valueOf(getName()); | |||||
} | |||||
public String toString() { | |||||
return getName(); | |||||
} | |||||
} |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!-- | |||||
Licensed to the Apache Software Foundation (ASF) under one or more | |||||
contributor license agreements. See the NOTICE file distributed with | |||||
this work for additional information regarding copyright ownership. | |||||
The ASF licenses this file to You under the Apache License, Version 2.0 | |||||
(the "License"); you may not use this file except in compliance with | |||||
the License. You may obtain a copy of the License at | |||||
http://www.apache.org/licenses/LICENSE-2.0 | |||||
Unless required by applicable law or agreed to in writing, software | |||||
distributed under the License is distributed on an "AS IS" BASIS, | |||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
See the License for the specific language governing permissions and | |||||
limitations under the License. | |||||
--> | |||||
<!-- $Id: block_basic_1.xml 627324 2008-02-13 09:35:01Z maxberger $ --> | |||||
<testcase> | |||||
<info> | |||||
<p> | |||||
This test checks the visibility trait. | |||||
</p> | |||||
</info> | |||||
<fo> | |||||
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg"> | |||||
<fo:layout-master-set> | |||||
<fo:simple-page-master master-name="normal" page-width="5in" page-height="5in"> | |||||
<fo:region-body/> | |||||
</fo:simple-page-master> | |||||
</fo:layout-master-set> | |||||
<fo:page-sequence master-reference="normal" white-space-collapse="true"> | |||||
<fo:flow flow-name="xsl-region-body"> | |||||
<fo:block>test1</fo:block> | |||||
<fo:block visibility="hidden">hidden</fo:block> | |||||
</fo:flow> | |||||
</fo:page-sequence> | |||||
</fo:root> | |||||
</fo> | |||||
<checks> | |||||
<!-- Check for first paragraph --> | |||||
<eval expected="360000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@ipd"/> | |||||
<eval expected="14400" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@bpd"/> | |||||
<eval expected="visible" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[1]/@visibility"/> | |||||
<!-- Check for second paragraph --> | |||||
<eval expected="360000" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[2]/@ipd"/> | |||||
<eval expected="14400" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[2]/@bpd"/> | |||||
<eval expected="hidden" xpath="/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[2]/@visibility"/> | |||||
<eval expected="0" xpath="count(/areaTree/pageSequence/pageViewport/page[1]/regionViewport/regionBody/mainReference/span/flow/block[2]/*)"/> | |||||
</checks> | |||||
</testcase> |