All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.approvaltests.writers.ComponentApprovalWriter Maven / Gradle / Ivy

The newest version!
package org.approvaltests.writers;

import org.approvaltests.core.ApprovalWriter;

import javax.swing.JFrame;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;

public class ComponentApprovalWriter implements ApprovalWriter
{
  private ImageApprovalWriter image = null;
  public ComponentApprovalWriter(Component c)
  {
    BufferedImage image = drawComponent(c);
    this.image = new ImageApprovalWriter(image);
  }
  public static BufferedImage drawComponent(Component c)
  {
    validateComponent(c);
    BufferedImage image = new BufferedImage(c.getWidth(), c.getHeight(), BufferedImage.TYPE_INT_ARGB);
    Graphics g = image.createGraphics();
    c.paint(g);
    g.dispose();
    return image;
  }
  private static void validateComponent(Component c)
  {
    if (!c.isValid())
    {
      JFrame frame = new JFrame();
      frame.getContentPane().add(c);
      frame.pack();
    }
  }
  @Override
  public File writeReceivedFile(File filename)
  {
    return image.writeReceivedFile(filename);
  }
  @Override
  public String getFileExtensionWithDot()
  {
    return image.getFileExtensionWithDot();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy