You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BorderWidthPropertyMaker.java 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. /* $Id$ */
  18. package org.apache.fop.fo.properties;
  19. import org.apache.fop.fo.Constants;
  20. import org.apache.fop.fo.PropertyList;
  21. import org.apache.fop.fo.expr.PropertyException;
  22. /**
  23. * This subclass of LengthProperty.Maker handles the special treatment of
  24. * border width described in 7.7.20.
  25. */
  26. public class BorderWidthPropertyMaker extends LengthProperty.Maker {
  27. private int borderStyleId;
  28. /**
  29. * Create a length property which check the value of the border-*-style
  30. * property and return a length of 0 when the style is "none".
  31. * @param propId the border-*-width of the property.
  32. */
  33. public BorderWidthPropertyMaker(int propId) {
  34. super(propId);
  35. }
  36. /**
  37. * Set the propId of the style property for the same side.
  38. * @param borderStyleId the border style id
  39. */
  40. public void setBorderStyleId(int borderStyleId) {
  41. this.borderStyleId = borderStyleId;
  42. }
  43. /**
  44. * Check the value of the style property and return a length of 0 when
  45. * the style is NONE.
  46. * {@inheritDoc}
  47. */
  48. public Property get(int subpropId, PropertyList propertyList, boolean bTryInherit,
  49. boolean bTryDefault) throws PropertyException {
  50. Property p = super.get(subpropId, propertyList,
  51. bTryInherit, bTryDefault);
  52. // Calculate the values as described in 7.7.20.
  53. Property style = propertyList.get(borderStyleId);
  54. if (style.getEnum() == Constants.EN_NONE) {
  55. return FixedLength.ZERO_FIXED_LENGTH;
  56. }
  57. return p;
  58. }
  59. }