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.

Java2DRendererConfig.java 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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.render.java2d;
  19. import java.util.EnumMap;
  20. import org.apache.fop.apps.FOPException;
  21. import org.apache.fop.apps.FOUserAgent;
  22. import org.apache.fop.configuration.Configuration;
  23. import org.apache.fop.fonts.DefaultFontConfig;
  24. import org.apache.fop.fonts.DefaultFontConfig.DefaultFontConfigParser;
  25. import org.apache.fop.fonts.FontEventAdapter;
  26. import org.apache.fop.render.RendererConfig;
  27. import static org.apache.fop.render.java2d.Java2DRendererOption.JAVA2D_TRANSPARENT_PAGE_BACKGROUND;
  28. /**
  29. * The Java2D renderer configuration data object.
  30. */
  31. public final class Java2DRendererConfig implements RendererConfig {
  32. private final EnumMap<Java2DRendererOption, Object> params
  33. = new EnumMap<Java2DRendererOption, Object>(Java2DRendererOption.class);
  34. private final DefaultFontConfig fontConfig;
  35. private Java2DRendererConfig(DefaultFontConfig fontConfig) {
  36. this.fontConfig = fontConfig;
  37. }
  38. public DefaultFontConfig getFontInfoConfig() {
  39. return fontConfig;
  40. }
  41. public Boolean isPageBackgroundTransparent() {
  42. return Boolean.class.cast(params.get(JAVA2D_TRANSPARENT_PAGE_BACKGROUND));
  43. }
  44. /**
  45. * The Java2D renderer configuration data parser.
  46. */
  47. public static class Java2DRendererConfigParser implements RendererConfigParser {
  48. private final String mimeType;
  49. public Java2DRendererConfigParser(String mimeType) {
  50. this.mimeType = mimeType;
  51. }
  52. /** {@inheritDoc} */
  53. public Java2DRendererConfig build(FOUserAgent userAgent, Configuration cfg)
  54. throws FOPException {
  55. Java2DRendererConfig config = new Java2DRendererConfig(new DefaultFontConfigParser()
  56. .parse(cfg, userAgent.validateStrictly(),
  57. new FontEventAdapter(userAgent.getEventBroadcaster())));
  58. boolean value = cfg.getChild(
  59. JAVA2D_TRANSPARENT_PAGE_BACKGROUND.getName(), true).getValueAsBoolean(false);
  60. config.params.put(JAVA2D_TRANSPARENT_PAGE_BACKGROUND, value);
  61. return config;
  62. }
  63. /** {@inheritDoc} */
  64. public String getMimeType() {
  65. return mimeType;
  66. }
  67. }
  68. }