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