Richfaces mediaoutput

1 resposta
JMarcosR

Galera... blz

estou tentando colocar um swf pra rodar no jsf mas ta dificil

pesquisei aqui no forum e encontrei
[url]http://www.guj.com.br/posts/preList/123181/666298.java[/url]

porem a pagina que o cara pede pra ver o exemplo já não funciona
[url]http://livedemo.exadel.com/richfaces-demo/richfaces/mediaOutput.jsf?c=mediaOutput&tab=usage[/url]

queria usar o richfaces pq já ta tudo com componentes rich e pegar o icefaces só por causa do swf me pareceu estranho ...

tentando seguir o exemplo da pagina de demo do richfaces montei isso ...

teste.jsp
<ajax:mediaOutput
        codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"        
        mimeType="application/x-shockwave-flash"
        classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
                
        element="a" 
        id="swfLink" 
        style="display: none;" 
        cacheable="false" 
        session="true"
        createContent="#{mediaBean.paintFlash}" 
        value="#{mediaData}"         />

        <ajax:outputPanel layout="block" id="myFlashContent" style="width: 200px; height: 200px">
            <a href="http://www.adobe.com/go/getflashplayer">
                <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
            </a>
        </ajax:outputPanel>
		
		<ajax:loadScript src="js/clientes.js"/>	
     </ajax:outputPanel>
MediaData.java
import java.awt.Color;
import java.io.Serializable;

public class MediaData implements Serializable{

    private static final long serialVersionUID = 1L;
    Integer Width=110;
    Integer Height=50;
    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;
    }
}
MediaBean.java
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.imageio.ImageIO;

public class MediaBean {

    public void paint(OutputStream out, Object data) throws IOException{
        if (data instanceof MediaData) {

            MediaData paintData = (MediaData) data;
            BufferedImage img = new BufferedImage(paintData.getWidth(),paintData.getHeight(),BufferedImage.TYPE_INT_RGB);
            Graphics2D graphics2D = img.createGraphics();
            graphics2D.setBackground(paintData.getBackground());
            graphics2D.setColor(paintData.getDrawColor());
            graphics2D.clearRect(0,0,paintData.getWidth(),paintData.getHeight());
            graphics2D.drawLine(5,5,paintData.getWidth()-5,paintData.getHeight()-5);
            graphics2D.drawChars(new String("RichFaces").toCharArray(),0,9,40,15);
            graphics2D.drawChars(new String("mediaOutput").toCharArray(),0,11,5,45);

            ImageIO.write(img,"jpeg",out);

        }
    }

    private void copy(InputStream in, OutputStream out) throws IOException {
        byte[] buffer = new byte[2048];
        int read;
        
        while ((read = in.read(buffer)) != -1) {
            out.write(buffer, 0, read);
        }
    }
    
    public void paintFlash(OutputStream out, Object data) throws IOException {
        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        if (loader == null) {
            loader = getClass().getClassLoader();
        }
        
        InputStream stream = loader.getResourceAsStream("c:/projetos/flash/WebContent/images/clientes_novo.swf");
        if (stream != null) {
            try {
                copy(stream, out);
            } finally {
                stream.close();
            }
        }
    }
}
faces-config.xml
<managed-bean>
		<managed-bean-name>mediaBean</managed-bean-name>
		<managed-bean-class>MediaBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	<managed-bean>
		<managed-bean-name>mediaData</managed-bean-name>
		<managed-bean-class>MediaData</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>

sera´que tem algo errado ? alguem pode me ajudar ... ainda não entendo muito bem isso...

Obrigado
joão rueda
www.inpacktu.com.br

1 Resposta

JMarcosR

Desisti de tentar no richfaces … joguei o icefaces e funcionou tudo … logico que deu trabalho para trocar todos os objetos …

mas me atendeu. Q lixo!

Criado 27 de novembro de 2009
Ultima resposta 1 de dez. de 2009
Respostas 1
Participantes 1