1 Reply Latest reply on Sep 16, 2009 5:39 AM by Nick Belaevski

    mediaoutput sample not working

    Sascha Janz Master

      i try to use the mediaoutput sample but can't get it work. mediadata is always null

      my page is

      <?xml version="1.0" encoding="ISO-8859-1"?>
      <ui:composition xmlns="http://www.w3.org/1999/xhtml"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:rich="http://richfaces.org/rich"
       xmlns:a4j="http://richfaces.org/a4j"
       xmlns:s="http://jboss.com/products/seam/taglib">
      <h:panelGrid columns="2" >
      <h:panelGroup id="thumbs">
      </h:panelGroup>
       <a4j:mediaOutput element="img" cacheable="false" session="false"
       createContent="#{PDFImaging.paintpage}" value="#{mediaData}" mimeType="image/png" />
      
      </h:panelGrid>
      </ui:composition>
      
      


      java cbeans

      public class MediaData implements Serializable{
      
       private static final long serialVersionUID = 1L;
       Integer Width=50;
       Integer Height=110;
       Color Background=new Color(0,0,0);
       Color DrawColor=new Color(255,255,255);
       public MediaData() {
       }
       public Color getBackground() {
       return Background;
       }
       public void setBackground(Color background) {
       Background = background;
       }
       public Color getDrawColor() {
       return DrawColor;
       }
       public void setDrawColor(Color drawColor) {
       DrawColor = drawColor;
       }
       public Integer getHeight() {
       return Height;
       }
       public void setHeight(Integer height) {
       Height = height;
       }
       public Integer getWidth() {
       return Width;
       }
       public void setWidth(Integer width) {
       Width = width;
       }
      }
      
      
      
      @Name("PDFImaging")
      @Scope(ScopeType.PAGE)
      public class PDFImaging {
      
      
       String pdfsource;
       String currentimage;
       ArrayList<MediaBean> thumbs = new ArrayList<MediaBean>();
      
       boolean lbinit =false;
      
       public void init() {
       int count=0;
       File dir= new File("D:/seampages");
       for(File f : dir.listFiles()) {
       if (f.isDirectory() == false) {
       MediaBean mb = new MediaBean();
       mb.setImagefile(f.getAbsolutePath());
       System.out.println("Adding " + f.getAbsolutePath());
       thumbs.add(mb );
       count++;
       }
       if ( count > 20 ) break;
       }
       lbinit = true;
       }
      
       public void paintpage(OutputStream out, Object data) throws IOException{
       System.out.println("Paint page " );
       if ( data != null) System.out.println(data.getClass().getName());
       else System.out.println("is null!!!!");
       try {
       if (data instanceof MediaData) {
      
       MediaData paintData = (MediaData) data;
       BufferedImage img = new BufferedImage(paintData.getWidth(),paintData.getHeight(),BufferedImage.TYPE_INT_RGB);
       img = ImageIO.read(new File("D:/seampages/1.png"));
      
      
       ImageIO.write(img,"jpeg",out);
      
       }
       } catch (Exception e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
       }
       }
      
       public String getPdfsource() {
       return pdfsource;
       }
       public void setPdfsource(String pdfsource) {
       this.pdfsource = pdfsource;
       }
       public String getCurrentimage() {
       return currentimage;
       }
       public void setCurrentimage(String currentimage) {
       this.currentimage = currentimage;
       }
       public ArrayList<MediaBean> getThumbs() {
       if ( lbinit == false ) init();
       return thumbs;
       }
       public void setThumbs(ArrayList<MediaBean> thumbs) {
       this.thumbs = thumbs;
       }
      
      
      }