public class LaszloSwfPanel extends Panel { private static final long serialVersionUID = 1L; public enum SWFCompileVersion { SWF7, SWF8 } public LaszloSwfPanel( String id, String laszlopath, SWFCompileVersion version, Dimension appsize, boolean debug, String laszloparams ) { super(id); IModel pathModel = new LaszloPathModel(laszlopath, version, debug, laszloparams); WebMarkupContainer laszloobject = new WebMarkupContainer("laszloobject"); laszloobject.add(new AttributeModifier("data", true, pathModel)); laszloobject.add(new AttributeModifier("height", true, new Model(appsize.height))); laszloobject.add(new AttributeModifier("width", true, new Model(appsize.width))); laszloobject.setEscapeModelStrings(false); WebMarkupContainer laszlomovie = new WebMarkupContainer("laslzlomovie"); laszlomovie.add(new AttributeModifier("value", true, pathModel)); laszlomovie.setEscapeModelStrings(false); laszloobject.add(laszlomovie); add(laszloobject); } private class LaszloPathModel implements IModel { private static final long serialVersionUID = 1L; private boolean debug; private String laszlopath; private String laszloparams; private SWFCompileVersion version; LaszloPathModel( String laszlopath, SWFCompileVersion version, boolean debug, String laszloparams ) { super(); this.debug = debug; this.laszloparams = laszloparams; this.laszlopath = laszlopath; this.version = version; } // Example ../l2aa/l2aa.lzx?lzt=swf&lzr=swf8&debug=false public Object getObject() { StringBuilder sb = new StringBuilder(laszlopath); sb.append("?lzt="); sb.append("swf"); if (version != null) { sb.append("&lzr="); sb.append(version.toString().toLowerCase()); } sb.append("&debug="); sb.append(Boolean.valueOf(debug).toString().toLowerCase()); // Append any special params if (laszloparams != null && laszloparams.length() > 0) { sb.append('&').append(laszloparams); } return sb.toString(); } /** Not implemented */ public void setObject(Object object) {} /** Not implemented */ public void detach() {} } }