tbt wrote: > > Hi > > I am using flash in my web application and currently using the example > given at > http://cwiki.apache.org/WICKET/object-container-adding-flash-to-a-wicket-application.html > > This works fine but my swf files are stored in a database and when > displayed now is converted back into a swf file and stored in a temperory > folder on the server. Then the image path is given to the swf file as > provided in the example. But I would like to make this more efficient and > like to pass the swf file stored in the db as a 'Resource'. I currently do > this with the image files stored in the database like > > BlobImageResource blobImageResource = new BlobImageResource() > { > @Override > protected Blob getBlob() > { > return images.getImageFile(); > } > }; > Image uploadImage = new Image("uploadImage",blobImageResource); > > to display the images in the webpage. > > How can I do something similar with the 'ShockWaveComponent' class so that > a 'Resource' can be passed as a constructor parameter > > Thanks > >
Hi I came up with the following flash component to display an swf file stored in a database. It is attached above. http://www.nabble.com/file/p21408684/FlashComponent.txt FlashComponent.txt The example given below was used to code this flash component http://cwiki.apache.org/WICKET/how-to-display-a-flash-movie-from-a-byte-array.html The following class was coded by Robert Mattler which reads flash data stored in a file. public class FlashComponent extends WebMarkupContainer implements IResourceListener { int width; int height; String fileName; public FlashComponent(String id, int width, int height, String fileName) { super(id); this.width = width; this.height = height; this.fileName = fileName; } public void onResourceRequested() { getRequestCycle().setRequestTarget(new IRequestTarget() { public void respond(RequestCycle requestCycle) { try { requestCycle.getResponse().getOutputStream().write(getFlashByteArray()); } catch (IOException e) { e.printStackTrace(); } } public void detach(RequestCycle requestCycle) { // TODO Auto-generated method stub } }); } protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) { StringBuffer flashBuffer = new StringBuffer(); // in the following, we will append all the necessary body tags of flash // markup flashBuffer.append(""); flashBuffer.append("<embed src=\""); flashBuffer.append(urlFor(IResourceListener.INTERFACE)); flashBuffer.append("\" width=\""); flashBuffer.append(width); flashBuffer.append("\" height=\""); flashBuffer.append(height); replaceComponentTagBody(markupStream, openTag, flashBuffer); } protected byte[] getFlashByteArray() { try { File inputFile = new File(fileName); InputStream inStream = new FileInputStream(inputFile); if (inStream != null) { ByteArrayOutputStream out = new ByteArrayOutputStream(); Streams.copy(inStream, out); return out.toByteArray(); } return new byte[0]; } catch (IOException e) { throw new WicketRuntimeException("Error while reading flash data", e); } } } additional comments and suggestions regarding these components are welcome. It would also be great to have a built in wicket flash component like 'Image' which has many constructors so that users could pass the filename, width, height or even a 'Resource' as a parameter. Thanks -- View this message in context: http://www.nabble.com/flash-with-resource-tp20698407p21408684.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org