EN · DE · RU · FR · ES

#3183: BatikImage.java

projectforge-wicket/src/main/java/org/projectforge/web/wicket/BatikImage.java Typ: Java · Rolle: Komponente · Quelle: projectforge-wicket/src/main/java/org/projectforge/web/wicket/BatikImage.java 86 Zeilen · 48 Code · 24 Kommentare · 14 leer
Quellcodedatei unter projectforge-wicket/src/main/java/org/projectforge/web/wicket/BatikImage.java, die Java-Code für die Komponentenschicht enthält.

Codestruktur

Paket: org.projectforge.web.wicket

Klassen: BatikImage

Erweitert: Image

Methoden (2): getImageResource, configureResponse

Felder (2): serialVersionUID, width

Importe: 8 Pakete

Quellcode (gekürzt)

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);
        // }
      }
    };
  }

}

Git-Verlauf

868d6abb7 2025 -> 2026
63081666f Quellcodedatei-Header: 2024 -> 2025.
57935eb50 Java 11, aber Wicket 9. Läuft mehr oder weniger (tbd: Kotlin-Skripte, Wicket-Serialisierungsprobleme bei WicketMenuBuilder, JUnit-Tests, ...)
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.