EN · DE · RU · FR · ES

#3183: BatikImage.java

projectforge-wicket/src/main/java/org/projectforge/web/wicket/BatikImage.java Tipo: Java · Rol: Componente · Fuente: projectforge-wicket/src/main/java/org/projectforge/web/wicket/BatikImage.java 86 líneas · 48 código · 24 comentarios · 14 en blanco
Archivo de código fuente en projectforge-wicket/src/main/java/org/projectforge/web/wicket/BatikImage.java que contiene código Java para la capa de Componente.

Estructura del código

Paquete: org.projectforge.web.wicket

Clases: BatikImage

Extiende: Image

Métodos (2): getImageResource, configureResponse

Campos (2): serialVersionUID, width

Importaciones: 8 paquetes

Código fuente (resumido)

package org.projectforge.web.wicket;

import org.apache.wicket.markup.html.image.Image;
import org.apache.wicket.request.http.WebResponse.CacheScope;
import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.DynamicImageResource;
import org.projectforge.framework.renderer.BatikImageRenderer;
import org.projectforge.framework.renderer.ImageFormat;
import org.w3c.dom.Document;

import java.time.Duration;

public class BatikImage extends Image
{
  private static final long serialVersionUID = -167624996888880342L;

  private final int width;

  private byte[] ba;

  private transient Document document;

  public BatikImage(final String id, final Document document, final int width)
  {
    super(id);
    this.document = document;
    this.width = width;
  }

  private byte[] getByteArray()
  {
    if (ba == null) {
      ba = BatikImageRenderer.getByteArray(document, width, ImageFormat.PNG);
    }
    return ba;
  }

  @SuppressWarnings("serial")
  @Override
  protected AbstractResource getImageResource()
  {
    return new DynamicImageResource() {

      @Override
      protected byte[] getImageData(final Attributes attributes)
      {
        return getByteArray();
      }

      @Override
      protected void configureResponse(final ResourceResponse response, final Attributes attributes)
      {
        super.configureResponse(response, attributes);

        // if (isCacheable() == false) {
        response.setCacheDuration(Duration.ofMillis(0));
        response.setCacheScope(CacheScope.PRIVATE);
        // }
      }
    };
  }

}

Historial de Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024 -> 2025.
57935eb50 Java 11, pero Wicket 9. Funciona más o menos (pendiente: scripts Kotlin, problemas de serialización de Wicket en WicketMenuBuilder, pruebas jupiter, ...)
b6092df09 Derechos de autor 2023 -> 2024
ab45d51fa Derechos de autor 2001-2022 -> 2001-2023.